@h3ravel/database 11.4.0 → 11.4.2

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.cjs CHANGED
@@ -28,8 +28,8 @@ let __h3ravel_shared = require("@h3ravel/shared");
28
28
  __h3ravel_shared = __toESM(__h3ravel_shared);
29
29
  let node_fs_promises = require("node:fs/promises");
30
30
  node_fs_promises = __toESM(node_fs_promises);
31
- let __h3ravel_core = require("@h3ravel/core");
32
- __h3ravel_core = __toESM(__h3ravel_core);
31
+ let __h3ravel_musket = require("@h3ravel/musket");
32
+ __h3ravel_musket = __toESM(__h3ravel_musket);
33
33
  let __h3ravel_support = require("@h3ravel/support");
34
34
  __h3ravel_support = __toESM(__h3ravel_support);
35
35
  let node_path = require("node:path");
@@ -38,6 +38,8 @@ let __h3ravel_arquebus_migrations = require("@h3ravel/arquebus/migrations");
38
38
  __h3ravel_arquebus_migrations = __toESM(__h3ravel_arquebus_migrations);
39
39
  let __h3ravel_arquebus = require("@h3ravel/arquebus");
40
40
  __h3ravel_arquebus = __toESM(__h3ravel_arquebus);
41
+ let __h3ravel_core = require("@h3ravel/core");
42
+ __h3ravel_core = __toESM(__h3ravel_core);
41
43
 
42
44
  //#region src/Utils/TableGuesser.ts
43
45
  var TableGuesser = class TableGuesser {
@@ -357,7 +359,7 @@ var require_dayjs_min = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/d
357
359
  //#endregion
358
360
  //#region src/Commands/MakeCommand.ts
359
361
  var import_dayjs_min = /* @__PURE__ */ __toESM(require_dayjs_min(), 1);
360
- var MakeCommand = class extends __h3ravel_core.ConsoleCommand {
362
+ var MakeCommand = class extends __h3ravel_musket.Command {
361
363
  /**
362
364
  * The name and signature of the console command.
363
365
  *
@@ -499,7 +501,7 @@ var MakeCommand = class extends __h3ravel_core.ConsoleCommand {
499
501
 
500
502
  //#endregion
501
503
  //#region src/Commands/MigrateCommand.ts
502
- var MigrateCommand = class extends __h3ravel_core.ConsoleCommand {
504
+ var MigrateCommand = class extends __h3ravel_musket.Command {
503
505
  /**
504
506
  * The current database connection
505
507
  */
@@ -690,7 +692,7 @@ var MigrateCommand = class extends __h3ravel_core.ConsoleCommand {
690
692
 
691
693
  //#endregion
692
694
  //#region src/Commands/SeedCommand.ts
693
- var SeedCommand = class extends __h3ravel_core.ConsoleCommand {
695
+ var SeedCommand = class extends __h3ravel_musket.Command {
694
696
  /**
695
697
  * The current query builder instance
696
698
  */
@@ -966,5 +968,4 @@ exports.Model = Model;
966
968
  exports.SeedCommand = SeedCommand;
967
969
  exports.Seeder = Seeder;
968
970
  exports.TableGuesser = TableGuesser;
969
- exports.arquebusConfig = arquebusConfig;
970
- //# sourceMappingURL=index.cjs.map
971
+ exports.arquebusConfig = arquebusConfig;
package/dist/index.d.cts CHANGED
@@ -1,13 +1,14 @@
1
1
  /// <reference path="./app.globals.d.ts" />
2
- import { Application, ConsoleCommand, ServiceProvider } from "@h3ravel/core";
2
+ import { Command } from "@h3ravel/musket";
3
3
  import * as _h3ravel_arquebus0 from "@h3ravel/arquebus";
4
4
  import { Model as Model$1, QueryBuilder, Seeder as Seeder$1 } from "@h3ravel/arquebus";
5
5
  import * as knex0 from "knex";
6
6
  import { Knex } from "knex";
7
+ import { Application, ServiceProvider } from "@h3ravel/core";
7
8
  import { IQueryBuilder } from "@h3ravel/arquebus/types";
8
9
 
9
10
  //#region src/Commands/MakeCommand.d.ts
10
- declare class MakeCommand extends ConsoleCommand {
11
+ declare class MakeCommand extends Command {
11
12
  /**
12
13
  * The name and signature of the console command.
13
14
  *
@@ -55,7 +56,7 @@ declare class MakeCommand extends ConsoleCommand {
55
56
  }
56
57
  //#endregion
57
58
  //#region src/Commands/MigrateCommand.d.ts
58
- declare class MigrateCommand extends ConsoleCommand {
59
+ declare class MigrateCommand extends Command {
59
60
  /**
60
61
  * The current database connection
61
62
  */
@@ -119,7 +120,7 @@ declare class MigrateCommand extends ConsoleCommand {
119
120
  }
120
121
  //#endregion
121
122
  //#region src/Commands/SeedCommand.d.ts
122
- declare class SeedCommand extends ConsoleCommand {
123
+ declare class SeedCommand extends Command {
123
124
  /**
124
125
  * The current query builder instance
125
126
  */
@@ -314,5 +315,4 @@ declare class TableGuesser {
314
315
  static guess(migration: string): (string | boolean)[];
315
316
  }
316
317
  //#endregion
317
- export { DB, DatabaseServiceProvider, MakeCommand, MigrateCommand, Model, SeedCommand, Seeder, TBaseConfig, TConfig, TField, TableGuesser, arquebusConfig };
318
- //# sourceMappingURL=index.d.cts.map
318
+ export { DB, DatabaseServiceProvider, MakeCommand, MigrateCommand, Model, SeedCommand, Seeder, TBaseConfig, TConfig, TField, TableGuesser, arquebusConfig };
package/dist/index.d.ts CHANGED
@@ -1,13 +1,14 @@
1
1
  /// <reference path="./app.globals.d.ts" />
2
- import { Application, ConsoleCommand, ServiceProvider } from "@h3ravel/core";
2
+ import { Command } from "@h3ravel/musket";
3
3
  import * as _h3ravel_arquebus0 from "@h3ravel/arquebus";
4
4
  import { Model as Model$1, QueryBuilder, Seeder as Seeder$1 } from "@h3ravel/arquebus";
5
+ import { Application, ServiceProvider } from "@h3ravel/core";
5
6
  import * as knex0 from "knex";
6
7
  import { Knex } from "knex";
7
8
  import { IQueryBuilder } from "@h3ravel/arquebus/types";
8
9
 
9
10
  //#region src/Commands/MakeCommand.d.ts
10
- declare class MakeCommand extends ConsoleCommand {
11
+ declare class MakeCommand extends Command {
11
12
  /**
12
13
  * The name and signature of the console command.
13
14
  *
@@ -55,7 +56,7 @@ declare class MakeCommand extends ConsoleCommand {
55
56
  }
56
57
  //#endregion
57
58
  //#region src/Commands/MigrateCommand.d.ts
58
- declare class MigrateCommand extends ConsoleCommand {
59
+ declare class MigrateCommand extends Command {
59
60
  /**
60
61
  * The current database connection
61
62
  */
@@ -119,7 +120,7 @@ declare class MigrateCommand extends ConsoleCommand {
119
120
  }
120
121
  //#endregion
121
122
  //#region src/Commands/SeedCommand.d.ts
122
- declare class SeedCommand extends ConsoleCommand {
123
+ declare class SeedCommand extends Command {
123
124
  /**
124
125
  * The current query builder instance
125
126
  */
@@ -314,5 +315,4 @@ declare class TableGuesser {
314
315
  static guess(migration: string): (string | boolean)[];
315
316
  }
316
317
  //#endregion
317
- export { DB, DatabaseServiceProvider, MakeCommand, MigrateCommand, Model, SeedCommand, Seeder, TBaseConfig, TConfig, TField, TableGuesser, arquebusConfig };
318
- //# sourceMappingURL=index.d.ts.map
318
+ export { DB, DatabaseServiceProvider, MakeCommand, MigrateCommand, Model, SeedCommand, Seeder, TBaseConfig, TConfig, TField, TableGuesser, arquebusConfig };
package/dist/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  import "node:module";
2
2
  import { FileSystem, Logger, Resolver, TaskManager } from "@h3ravel/shared";
3
3
  import { mkdir, readFile, writeFile } from "node:fs/promises";
4
- import { ConsoleCommand, ServiceProvider } from "@h3ravel/core";
4
+ import { Command } from "@h3ravel/musket";
5
5
  import { Arr, Str } from "@h3ravel/support";
6
6
  import npath from "node:path";
7
7
  import { Migrate, MigrationCreator } from "@h3ravel/arquebus/migrations";
8
8
  import { Model as Model$1, Seeder as Seeder$1, arquebus } from "@h3ravel/arquebus";
9
+ import { ServiceProvider } from "@h3ravel/core";
9
10
 
10
11
  //#region rolldown:runtime
11
12
  var __create = Object.create;
@@ -351,7 +352,7 @@ var require_dayjs_min = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/d
351
352
  //#endregion
352
353
  //#region src/Commands/MakeCommand.ts
353
354
  var import_dayjs_min = /* @__PURE__ */ __toESM(require_dayjs_min(), 1);
354
- var MakeCommand = class extends ConsoleCommand {
355
+ var MakeCommand = class extends Command {
355
356
  /**
356
357
  * The name and signature of the console command.
357
358
  *
@@ -493,7 +494,7 @@ var MakeCommand = class extends ConsoleCommand {
493
494
 
494
495
  //#endregion
495
496
  //#region src/Commands/MigrateCommand.ts
496
- var MigrateCommand = class extends ConsoleCommand {
497
+ var MigrateCommand = class extends Command {
497
498
  /**
498
499
  * The current database connection
499
500
  */
@@ -684,7 +685,7 @@ var MigrateCommand = class extends ConsoleCommand {
684
685
 
685
686
  //#endregion
686
687
  //#region src/Commands/SeedCommand.ts
687
- var SeedCommand = class extends ConsoleCommand {
688
+ var SeedCommand = class extends Command {
688
689
  /**
689
690
  * The current query builder instance
690
691
  */
@@ -952,5 +953,4 @@ var Seeder = class Seeder extends Seeder$1 {
952
953
  };
953
954
 
954
955
  //#endregion
955
- export { DB, DatabaseServiceProvider, MakeCommand, MigrateCommand, Model, SeedCommand, Seeder, TableGuesser, arquebusConfig };
956
- //# sourceMappingURL=index.js.map
956
+ export { DB, DatabaseServiceProvider, MakeCommand, MigrateCommand, Model, SeedCommand, Seeder, TableGuesser, arquebusConfig };
@@ -1,13 +1,10 @@
1
- import type { QueryBuilder } from '@h3ravel/arquebus'
2
1
  import { Seeder } from '@h3ravel/database'
3
2
 
4
3
  export default class {{ name }} extends Seeder {
5
4
  /**
6
5
  * Run the database seeds.
7
- *
8
- * @param {(import('@h3ravel/arquebus').QueryBuilder)} conn The current database connection
9
6
  */
10
- async run (conn: QueryBuilder) {
7
+ async run () {
11
8
  //
12
9
  }
13
10
  }
@@ -1,13 +1,10 @@
1
- import type { QueryBuilder } from '@h3ravel/arquebus'
2
1
  import { Seeder } from '@h3ravel/database'
3
2
 
4
3
  export default class {{ name }} extends Seeder {
5
4
  /**
6
5
  * Run the database seeds.
7
- *
8
- * @param conn The current database connection
9
6
  */
10
- async run (conn: QueryBuilder) {
7
+ async run () {
11
8
  //
12
9
  }
13
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@h3ravel/database",
3
- "version": "11.4.0",
3
+ "version": "11.4.2",
4
4
  "description": "Modeling data and migration system for H3ravel.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -42,13 +42,14 @@
42
42
  ],
43
43
  "dependencies": {
44
44
  "@h3ravel/arquebus": "^0.6.6",
45
+ "@h3ravel/musket": "^0.1.8",
45
46
  "sqlite3": "^5.1.7"
46
47
  },
47
48
  "peerDependencies": {
48
- "@h3ravel/core": "^1.16.0",
49
- "@h3ravel/support": "^0.14.1",
50
- "@h3ravel/filesystem": "^0.4.3",
51
- "@h3ravel/shared": "^0.22.2"
49
+ "@h3ravel/shared": "^0.22.3",
50
+ "@h3ravel/filesystem": "^0.4.4",
51
+ "@h3ravel/support": "^0.14.2",
52
+ "@h3ravel/core": "^1.17.0"
52
53
  },
53
54
  "devDependencies": {
54
55
  "typescript": "^5.9.2"
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","names":["e","n","t","r","i","s","u","a","M","m","f","l","$","y","v","g","D","o","d","c","h","ConsoleCommand","path","FileSystem","npath","Logger","Str","stub: string","ConsoleCommand","Migrate","Logger","FileSystem","path","MigrationCreator","Resolver","ConsoleCommand","path","npath","FileSystem","Str","Logger","config","BaseModel","ServiceProvider","config","arquebus","BaseSeeder","app: Application","command?: SeedCommand","Arr","TaskManager"],"sources":["../src/Utils/TableGuesser.ts","../../../node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/dayjs.min.js","../src/Commands/MakeCommand.ts","../src/Commands/MigrateCommand.ts","../src/Commands/SeedCommand.ts","../src/Configuration.ts","../src/Model.ts","../src/Providers/DatabaseServiceProvider.ts","../src/Query/DB.ts","../src/Seeder.ts"],"sourcesContent":["export class TableGuesser {\n static CREATE_PATTERNS = [\n /^create_(\\w+)_table$/,\n /^create_(\\w+)$/\n ]\n static CHANGE_PATTERNS = [\n /.+_(to|from|in)_(\\w+)_table$/,\n /.+_(to|from|in)_(\\w+)$/\n ]\n static guess (migration: string) {\n for (const pattern of TableGuesser.CREATE_PATTERNS) {\n const matches = migration.match(pattern)\n if (matches) {\n return [matches[1], true]\n }\n }\n for (const pattern of TableGuesser.CHANGE_PATTERNS) {\n const matches = migration.match(pattern)\n if (matches) {\n return [matches[2], false]\n }\n }\n return []\n }\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import { FileSystem, Logger } from '@h3ravel/shared'\nimport { mkdir, readFile, writeFile } from 'node:fs/promises'\n\nimport { ConsoleCommand } from '@h3ravel/core'\nimport { Str } from '@h3ravel/support'\nimport { TableGuesser } from '../Utils/TableGuesser'\nimport dayjs from 'dayjs'\nimport npath from 'node:path'\n\nexport class MakeCommand extends ConsoleCommand {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `#make:\n {migration : Generates a new database migration class. \n | {--t|table : The table to migrate} \n | {--c|create : The table to be created} \n | {--l|type=ts : The file type to generate} \n } \n {factory : Create a new model factory.\n | {--force : Create the factory even if it already exists}\n | {--l|type=ts : The file type to generate}\n }\n {seeder : Create a new seeder class.\n | {--force : Create the seeder even if it already exists}\n | {--l|type=ts : The file type to generate}\n }\n {model : Create a new Eloquent model class. \n | {--api : Indicates if the generated controller should be an API resource controller} \n | {--c|controller : Create a new controller for the model} \n | {--f|factory : Create a new factory for the model} \n | {--m|migration : Create a new migration file for the model} \n | {--r|resource : Indicates if the generated controller should be a resource controller} \n | {--a|all : Generate a migration, seeder, factory, policy, resource controller, and form request classes for the model} \n | {--s|seed : Create a new seeder for the model}\n | {--l|type=ts : The file type to generate}\n | {--force : Create the model even if it already exists}\n } \n {^name : The name of the [name] to generate}\n `\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Generate component classes'\n\n public async handle (this: any) {\n const command = (this.dictionary.baseCommand ?? this.dictionary.name) as never\n\n if (!this.argument('name')) {\n this.program.error('Please provide a valid name for the ' + command)\n }\n\n const methods = {\n migration: 'makeMigration', // ✓\n factory: 'makeFactory',\n seeder: 'makeSeeder', // ✓\n model: 'makeModel', // ✓\n } as const\n\n console.log('')\n\n await this[methods[command]]()\n }\n\n /**\n * Generate a new database migration class\n */\n protected async makeMigration () {\n const type = this.option('type', 'ts')\n const name = this.argument('name')\n const datePrefix = dayjs().format('YYYY_MM_DD_HHmmss')\n const path = database_path(`migrations/${datePrefix}_${name}.${type}`)\n\n const dbPkgPath = FileSystem.findModulePkg('@h3ravel/database', this.kernel.cwd) ?? ''\n\n let create = this.option('create', false)\n let table = this.option('table')\n if (!table && typeof create === 'string') {\n table = create\n create = true\n }\n\n if (!table) {\n const guessed = TableGuesser.guess(name)\n table = guessed[0]\n create = !!guessed[1]\n }\n\n const stubPath = npath.join(dbPkgPath, this.getStubName('migration', type, { table, create }))\n let stub = await readFile(stubPath, 'utf-8')\n\n if (table !== null) {\n stub = stub.replace(/DummyTable|{{\\s*table\\s*}}/g, table)\n }\n\n Logger.info('INFO: Creating Migration')\n\n await this.kernel.ensureDirectoryExists(npath.dirname(path))\n await writeFile(path, stub)\n\n Logger.split('INFO: Migration Created', Logger.log(npath.basename(path), 'gray', false))\n }\n\n /**\n * Create a new model factory\n */\n protected makeFactory () {\n Logger.success('Factory support is not yet available')\n }\n\n /**\n * Create a new seeder class\n */\n protected async makeSeeder () {\n const type = this.option('type', 'ts')\n const name = this.argument('name')\n const force = this.option('force')\n const path = database_path(`seeders/${Str.snake(name)}.${type}`)\n\n /** Check if the model already exists */\n if (!force && await FileSystem.fileExists(path)) {\n Logger.error(`ERORR: ${name} already exists`)\n }\n\n const dbPkgPath = FileSystem.findModulePkg('@h3ravel/database', this.kernel.cwd) ?? ''\n const stubPath = npath.join(dbPkgPath, this.getStubName('seeder', type))\n\n let stub = await readFile(stubPath, 'utf-8')\n stub = stub.replace(/{{ name }}/g, name)\n\n await writeFile(path, stub)\n\n Logger.info(\n `INFO: Seeder ${Logger.log(`[${npath.relative(process.cwd(), path)}]`, 'bold', false)} created successfully.`\n )\n }\n\n /**\n * Generate a new Arquebus model class\n */\n protected async makeModel () {\n const type = this.option('type', 'ts')\n const name = this.argument('name')\n const force = this.option('force')\n\n const path = app_path(`Models/${Str.lower(name)}.${type}`)\n\n /** The model is scoped to a path make sure to create the associated directories */\n if (name.includes('/')) {\n await mkdir(Str.beforeLast(path, '/'), { recursive: true })\n }\n\n /** Check if the model already exists */\n if (!force && await FileSystem.fileExists(path)) {\n Logger.error(`ERORR: ${name} model already exists`)\n }\n\n const dbPkgPath = FileSystem.findModulePkg('@h3ravel/database', this.kernel.cwd) ?? ''\n const stubPath = npath.join(dbPkgPath, `dist/stubs/model-${type}.stub`)\n\n let stub = await readFile(stubPath, 'utf-8')\n stub = stub.replace(/{{ name }}/g, name)\n\n await writeFile(path, stub)\n\n Logger.info(\n `INFO: Model ${Logger.log(`[${npath.relative(process.cwd(), path)}]`, 'bold', false)} created successfully.`\n )\n }\n\n /**\n * Ge the database migration file name\n * \n * @param table \n * @param create \n * @param type \n * @returns \n */\n getStubName (\n type: 'migration' | 'seeder' | 'model' | 'factory',\n ext: 'ts' | 'js' = 'ts',\n { table, create }: { table?: string, create?: boolean } = {}\n ) {\n let stub: string\n if (type === 'migration') {\n if (!table) {\n stub = `migration-${ext}.stub`\n }\n else if (create) {\n stub = `migration.create-${ext}.stub`\n }\n else {\n stub = `migration.update-${ext}.stub`\n }\n return 'dist/stubs/' + stub\n } else {\n return `dist/stubs/${type}-${ext}.stub`\n }\n }\n}\n","import { FileSystem, Logger, Resolver } from '@h3ravel/shared'\nimport { Migrate, MigrationCreator } from '@h3ravel/arquebus/migrations'\nimport { SeedCommand, TBaseConfig, arquebusConfig } from '..'\n\nimport { ConsoleCommand } from '@h3ravel/core'\nimport path from 'node:path'\n\nexport class MigrateCommand extends ConsoleCommand {\n /**\n * The current database connection\n */\n private connection!: TBaseConfig\n\n /** \n * The base path for all database operations\n */\n private databasePath: string = database_path()\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `migrate:\n {fresh : Drop all tables and re-run all migrations. | {--seed : Indicates if the seed task should be re-run} | {--seeder : The file name of the root seeder}}\n {install : Create the migration repository.}\n {refresh : Reset and re-run all migrations. | {--seed : Indicates if the seed task should be re-run} | {--seeder : The file name of the root seeder}}\n {reset : Rollback all database migrations.}\n {rollback : Rollback the last database migration.}\n {status : Show the status of each migration.}\n {publish : Publish any migration files from installed packages. | {package : The package to publish migrations from}}\n {^--c|connection=mysql : The database connection to use : [mysql, sqlite, mariadb, pgsql]}\n {--seed : Seed the database}\n {--seeder : The file name of the root seeder}\n {^--force : Force the operation to run when in production}\n `\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Run all pending migrations.'\n\n /**\n * Execute the console command.\n */\n public async handle (this: any) {\n const force = this.option('force')\n const command = (this.dictionary.name ?? this.dictionary.baseCommand) as never\n\n if (env('APP_ENV') === 'production' && !force) {\n this.error('INFO: Unable to run migration, your app is currently in production.')\n }\n\n this.connection = Object.entries(arquebusConfig(config('database')))\n .find(([client]) => client === config('database.default'))\n ?.at(1)\n\n this.connection.migrations = {\n path: 'migrations',\n table: 'migrations',\n }\n\n const methods = {\n migrate: 'migrateRun',\n fresh: 'migrateFresh',\n install: 'migrateInstall',\n refresh: 'migrateRefresh',\n reset: 'migrateReset',\n rollback: 'migrateRollback',\n status: 'migrateStatus',\n publish: 'migratePublish',\n } as const\n\n await this[methods[command]]()\n }\n\n /**\n * Run all pending migrations.\n */\n protected async migrateRun () {\n try {\n await new Migrate(this.databasePath).run(this.connection, this.options(), true)\n\n if (this.option('seed')) {\n await this.runSeeders()\n }\n } catch (e) {\n Logger.error('ERROR: ' + e)\n }\n }\n\n /**\n * Drop all tables and re-run all migrations.\n */\n protected async migrateFresh () {\n try {\n await new Migrate(this.databasePath).fresh(this.connection, this.options(), true)\n\n if (this.option('seed')) {\n await this.runSeeders()\n }\n } catch (e) {\n Logger.error('ERROR: ' + e)\n }\n }\n\n /**\n * Reset and re-run all migrations.\n */\n protected async migrateRefresh () {\n try {\n await new Migrate(this.databasePath).refresh(this.connection, this.options(), true)\n\n if (this.option('seed')) {\n await this.runSeeders()\n }\n } catch (e) {\n Logger.error('ERROR: ' + e)\n }\n }\n\n /**\n * Create the migration repository.\n */\n protected async migrateInstall () {\n try {\n const migrate = new Migrate(this.databasePath)\n const { migrator } = await migrate.setupConnection(this.connection)\n await migrate.prepareDatabase(migrator)\n\n Logger.success('Migration repository installed.')\n } catch (e) {\n Logger.error('ERROR: ' + e)\n }\n }\n\n /**\n * Rollback all database migrations.\n */\n protected async migrateReset () {\n try {\n await new Migrate(this.databasePath).reset(this.connection, this.options(), true)\n } catch (e) {\n Logger.error('ERROR: ' + e)\n }\n }\n\n /**\n * Rollback the last database migration.\n */\n protected async migrateRollback () {\n try {\n await new Migrate(this.databasePath).rollback(this.connection, this.options(), true)\n } catch (e) {\n Logger.error('ERROR: ' + e)\n }\n }\n\n /**\n * Show the status of each migration.\n */\n protected async migrateStatus () {\n const migrations = await new Migrate(this.databasePath, undefined, (msg, sts) => {\n const hint = Logger.parse([\n [' Did you forget to run', 'white'],\n ['`musket migrate:install`?', 'grey']\n ], ' ', false)\n\n if (sts) Logger[sts](msg + hint, sts === 'error', true)\n }).status(this.connection, this.options(), true)\n\n try {\n if (migrations.length > 0) {\n Logger.twoColumnDetail('Migration name', 'Batch / Status')\n\n migrations.forEach(migration => {\n const status = migration.ran\n ? Logger.parse([[`[${migration.batch}]`, 'white'], ['Ran', 'green']], ' ', false)\n : Logger.parse([['Pending', 'yellow']], '', false)\n Logger.twoColumnDetail(migration.name, status)\n })\n }\n else {\n Logger.info('No migrations found')\n }\n } catch (e) {\n Logger.error(['ERROR: ' + e, 'Did you run musket migrate:install'])\n }\n }\n\n\n\n /**\n * Publish any migration files from installed packages.\n */\n protected async migratePublish () {\n const name = this.argument('package')\n\n try {\n /** Find the requested package */\n const packagePath = FileSystem.findModulePkg(name) ?? null\n if (!packagePath) throw new Error('Package not found')\n\n /** Get the package,json and instanciate the migration creator */\n const pkgJson = (await import(path.join(packagePath, 'package.json')))\n const creator = new MigrationCreator(path.join(packagePath, pkgJson.migrations ?? 'migrations'))\n\n const info = Logger.parse([\n [' Publishing migrations from', 'white'],\n [`${pkgJson.name}@${pkgJson.version}`, ['italic', 'gray']]\n ], ' ', false)\n\n Logger.info(`INFO: ${info}`)\n\n try {\n /** Publish any existing migrations */\n await creator.publish(this.databasePath, (fileName) => {\n Logger.twoColumnDetail(fileName, Logger.parse([['PUBLISHED', 'green']], '', false))\n })\n } catch {\n Logger.error([`ERROR: ${name} has no publishable migrations.`])\n }\n } catch (e) {\n const hint = Logger.parse([\n [' Did you forget to run', 'white'],\n [`\\`${await Resolver.getPakageInstallCommand(name)}\\``, 'grey']\n ], ' ', false)\n\n const error = Logger.parse([\n ['Package `', 'white'],\n [name, 'grey'],\n ['` not found', 'white']\n ], '', false)\n\n Logger.error(['ERROR: ' + error, hint + '?', String(e)])\n }\n }\n\n /**\n * Run database seeders\n */\n private async runSeeders () {\n await new SeedCommand(this.app, this.kernel)\n .setInput(\n { class: this.option('seeder', 'DatabaseSeeder'), force: this.option('force') },\n [],\n [],\n {},\n this.program\n )\n .handle()\n }\n}\n","import { FileSystem, Logger } from '@h3ravel/shared'\n\nimport { ConsoleCommand } from '@h3ravel/core'\nimport { DB } from '..'\nimport type { QueryBuilder } from '@h3ravel/arquebus'\nimport { Str } from '@h3ravel/support'\nimport npath from 'node:path'\n\nexport class SeedCommand extends ConsoleCommand {\n /**\n * The current query builder instance\n */\n public queryBuilder!: QueryBuilder\n\n /**\n * The current database connection name\n */\n private connection!: string\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `db:seed\n {--class=DatabaseSeeder : The file name of the root seeder}\n {--d|database? : The database connection to use}\n {--force : Force the operation to run when in production}\n `\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Seed the database with records.'\n\n /**\n * Execute the console command.\n */\n public async handle () {\n const file = this.option('class')\n const force = this.option('force')\n const database = this.option('database')\n\n this.newLine()\n\n if (env('APP_ENV') === 'production' && !force) {\n this.error('INFO: Unable to run seeders, your app is currently in production.')\n }\n\n this.connection = database ?? config('database.default')\n this.queryBuilder = DB.instance(this.connection)\n\n if (!this.connection) {\n this.error('ERROR: Unknown database connection.')\n }\n\n let path = npath.join(process.cwd(), file)\n\n const [f1, f2] = [\n FileSystem.resolveFileUp(Str.snake(file), ['js', 'ts'], database_path('seeders')),\n FileSystem.resolveFileUp(Str.studly(file), ['js', 'ts'], database_path('seeders')),\n ]\n\n if (!f1 && !f2) {\n /**\n * Try to find the path assuming it's relative to cwd\n */\n if (!await FileSystem.fileExists(path)) {\n path = database_path(npath.join('seeders', file))\n }\n\n /**\n * Now try to find the path knowing it's relative to database_path\n */\n if (!await FileSystem.fileExists(path)) {\n this.error(`ERROR: Seeder ${Logger.log(`[${file}]`, 'bold', false)} not found.`)\n }\n } else {\n path = String(f1 ?? f2)\n }\n\n const { default: seeder } = (await import(path))\n\n if (seeder) {\n this.info('INFO: Seeding database.')\n this.newLine()\n\n await new seeder(this.app, this).run(this.queryBuilder)\n }\n }\n}\n","/// <reference path=\"../../core/src/app.globals.d.ts\" />\nimport { Knex } from 'knex'\n\ntype TFunction = (...args: any[]) => any\n\nexport interface TField {\n type: 'VAR_STRING' | 'BLOB' | 'DATETIME' | 'TIMESTAMP' | 'LONG' | 'JSON'\n length: number\n db: string\n table: string\n name: string\n string: TFunction,\n buffer: TFunction\n geometry: TFunction\n}\n\nexport interface TBaseConfig {\n client: 'mysql' | 'mysql2' | 'sqlite3' | 'oracle' | 'mariadb' | 'pg'\n connection: {\n typeCast?(field: TField, next: TFunction): any\n dateStrings?: boolean\n }\n pool?: {\n afterCreate: (connection: TConfig, callback: (val: any, con: any) => void) => Promise<any>\n } | undefined\n connections?: Record<string, TConfig>\n migrations?: {\n table: string\n path: string\n },\n factories?: {\n path: string\n },\n seeders?: {\n path: string\n },\n models?: {\n path: string\n }\n}\n\nexport type TConfig = TBaseConfig & ({\n client: 'pg'\n connection: Knex.PgConnectionConfig\n} | {\n client: 'oracle'\n connection: Knex.OracleDbConnectionConfig\n} | {\n client: 'mysql2'\n connection: Knex.MySql2ConnectionConfig\n} | {\n client: 'mysql'\n connection: Knex.MySqlConnectionConfig\n} | {\n client: 'sqlite3'\n connection: Knex.Sqlite3ConnectionConfig\n useNullAsDefault?: boolean\n} | {\n client: 'mariadb'\n connection: Knex.MariaSqlConnectionConfig\n useNullAsDefault?: boolean\n})\n\nexport const arquebusConfig = (config: any) => {\n return {\n sqlite: {\n client: config.connections.sqlite.driver,\n connection: <Knex.Sqlite3ConnectionConfig>{\n filename: database_path(config.connections.sqlite.database),\n debug: config.connections.sqlite.debug,\n flags: config.connections.sqlite.flags,\n options: config.connections.sqlite.options,\n expirationChecker: config.connections.sqlite.expirationChecker\n },\n useNullAsDefault: config.connections.sqlite.useNullAsDefault,\n },\n mysql: {\n client: config.connections.mysql.driver,\n connection: <Knex.MySql2ConnectionConfig>{\n host: config.connections.mysql.host ?? 'localhost',\n port: config.connections.mysql.port ?? 3306,\n user: config.connections.mysql.username ?? 'root',\n password: config.connections.mysql.password,\n database: config.connections.mysql.database,\n charset: config.connections.mysql.charset,\n socketPath: config.connections.mysql.unix_socket,\n localAddress: config.connections.mysql.url,\n },\n },\n mariadb: {\n client: config.connections.mariadb.driver,\n connection: <Knex.MariaSqlConnectionConfig>{\n host: config.connections.mariadb.host ?? 'localhost',\n port: config.connections.mariadb.port ?? 3306,\n user: config.connections.mariadb.username ?? 'root',\n password: config.connections.mariadb.password,\n database: config.connections.mariadb.database,\n charset: config.connections.mariadb.charset,\n socketPath: config.connections.mariadb.unix_socket,\n localAddress: config.connections.mariadb.url,\n expirationChecker: config.connections.mariadb.expirationChecker\n },\n },\n pgsql: {\n client: 'pg',\n connection: <Knex.PgConnectionConfig>{\n host: config.connections.pgsql.host ?? 'localhost',\n port: config.connections.pgsql.port ?? 3306,\n user: config.connections.pgsql.username ?? 'root',\n password: config.connections.pgsql.password,\n database: config.connections.pgsql.database,\n charset: config.connections.mysql.charset,\n connectionString: config.connections.pgsql.url,\n expirationChecker: config.connections.pgsql.expirationChecker\n },\n }\n } as unknown as TBaseConfig\n}\n","import { Model as BaseModel } from '@h3ravel/arquebus'\n\nexport class Model<M extends BaseModel = any> extends BaseModel {\n /**\n * Retrieve the model for a bound value.\n * \n * @param {any} value \n * @param {String|null} field \n * @returns \n */\n public resolveRouteBinding (value: any, field: undefined | string | null = null): Promise<M> {\n return this.newQuery().where(field ?? 'ids', value).firstOrFail()! as Promise<M>\n }\n}\n","import { MakeCommand } from '../Commands/MakeCommand'\nimport { MigrateCommand } from '../Commands/MigrateCommand'\nimport { SeedCommand } from '../Commands/SeedCommand'\nimport { ServiceProvider } from '@h3ravel/core'\nimport { arquebus } from '@h3ravel/arquebus'\nimport { arquebusConfig } from '../Configuration'\n\n/**\n * Database connection, ORM, migrations.\n * \n * Register DatabaseManager and QueryBuilder if required.\n * Set up ORM models and relationships.\n * Register migration and seeder commands.\n * \n */\nexport class DatabaseServiceProvider extends ServiceProvider {\n public static priority = 994\n\n register () {\n const config = this.app.make('config')\n\n const connection = Object.entries(arquebusConfig(config.get('database')))\n .find(([client]) => client === config.get('database.default'))\n ?.at(1)\n\n if (connection) {\n arquebus.addConnection(connection)\n }\n\n /** Register Musket Commands */\n this.registerCommands([MigrateCommand, MakeCommand, SeedCommand])\n }\n}\n","import { IQueryBuilder } from '@h3ravel/arquebus/types'\nimport { arquebus } from '@h3ravel/arquebus'\n\nexport class DB {\n connection?: string\n\n constructor(connection?: string) {\n if (connection) {\n this.connection = connection\n }\n }\n\n /**\n * New instance\n */\n public static table (name: string): IQueryBuilder {\n return new DB().builder().table(name)\n }\n\n /**\n * Builder table instance\n */\n public static instance (connection?: string) {\n return new DB(connection).builder()\n }\n\n /**\n * Builder transaction instance\n */\n public static transaction<C> (callback: (...args: C[]) => any) {\n return new DB().builder().transaction(callback)\n }\n\n private builder () {\n return arquebus.getInstance().connection(this.connection)\n }\n}\n","import { Application } from '@h3ravel/core'\nimport { Arr } from '@h3ravel/support'\nimport { Seeder as BaseSeeder } from '@h3ravel/arquebus'\nimport { SeedCommand } from './Commands/SeedCommand'\nimport { TaskManager } from '@h3ravel/shared'\n\nexport class Seeder extends BaseSeeder {\n /**\n * Seeders that have been called at least one time.\n */\n static called: Seeder[] = []\n\n constructor(public app: Application, public command?: SeedCommand) {\n super()\n }\n\n async run (_conn?: SeedCommand['queryBuilder'], ..._args: any[]) { };\n\n /**\n * Run the given seeder class.\n *\n * @param className\n * @param silent\n * @param parameters\n * \n * @return this\n */\n public async call (className: typeof Seeder | typeof Seeder[], silent = false, parameters: any[] = []) {\n const classes = Arr.wrap(className)\n\n for (let i = 0; i < classes.length; i++) {\n const instance = this.resolve(classes[i])\n const name = instance.constructor.name\n\n if (silent === false) {\n await TaskManager.advancedTaskRunner(\n [[name, 'RUNNING'], [name, 'DONE']],\n async () => await instance.run(this.command!.queryBuilder, ...parameters)\n )\n } else {\n await instance.run(this.command!.queryBuilder, ...parameters)\n }\n\n Seeder.called.push(instance)\n }\n\n return this\n }\n\n /**\n * Resolve an instance of the given seeder class.\n *\n * @param className\n * \n * @return Seeder\n */\n protected resolve (className: typeof Seeder) {\n const instance = new (className as { new(app: any): Seeder })(this.app)\n\n if (this.command) {\n instance.setCommand(this.command)\n }\n\n return instance\n }\n\n /**\n * Run the given seeder class.\n *\n * @param className\n * @param silent\n * @param parameters\n * \n * @return void\n */\n public async callWith (className: typeof Seeder | typeof Seeder[], parameters: any[]) {\n await this.call(className, false, parameters)\n }\n\n /**\n * Silently run the given seeder class.\n *\n * @param className\n * @param parameters\n * \n * @return void\n */\n public async callSilent (className: typeof Seeder | typeof Seeder[], parameters: any[] = []) {\n await this.call(className, true, parameters)\n }\n\n /**\n * Set the console command instance.\n *\n * @param command\n * \n * @return this\n */\n public setCommand (command: SeedCommand) {\n this.command = command\n\n return this\n }\n}\n"],"x_google_ignoreList":[1],"mappings":"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"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["e","n","t","r","i","s","u","a","M","m","f","l","$","y","v","g","D","o","d","c","h","stub: string","path","config","BaseModel","config","BaseSeeder","app: Application","command?: SeedCommand"],"sources":["../src/Utils/TableGuesser.ts","../../../node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/dayjs.min.js","../src/Commands/MakeCommand.ts","../src/Commands/MigrateCommand.ts","../src/Commands/SeedCommand.ts","../src/Configuration.ts","../src/Model.ts","../src/Providers/DatabaseServiceProvider.ts","../src/Query/DB.ts","../src/Seeder.ts"],"sourcesContent":["export class TableGuesser {\n static CREATE_PATTERNS = [\n /^create_(\\w+)_table$/,\n /^create_(\\w+)$/\n ]\n static CHANGE_PATTERNS = [\n /.+_(to|from|in)_(\\w+)_table$/,\n /.+_(to|from|in)_(\\w+)$/\n ]\n static guess (migration: string) {\n for (const pattern of TableGuesser.CREATE_PATTERNS) {\n const matches = migration.match(pattern)\n if (matches) {\n return [matches[1], true]\n }\n }\n for (const pattern of TableGuesser.CHANGE_PATTERNS) {\n const matches = migration.match(pattern)\n if (matches) {\n return [matches[2], false]\n }\n }\n return []\n }\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import { FileSystem, Logger } from '@h3ravel/shared'\nimport { mkdir, readFile, writeFile } from 'node:fs/promises'\n\nimport { ConsoleCommand } from '@h3ravel/core'\nimport { Str } from '@h3ravel/support'\nimport { TableGuesser } from '../Utils/TableGuesser'\nimport dayjs from 'dayjs'\nimport npath from 'node:path'\n\nexport class MakeCommand extends ConsoleCommand {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `#make:\n {migration : Generates a new database migration class. \n | {--t|table : The table to migrate} \n | {--c|create : The table to be created} \n | {--l|type=ts : The file type to generate} \n } \n {factory : Create a new model factory.\n | {--force : Create the factory even if it already exists}\n | {--l|type=ts : The file type to generate}\n }\n {seeder : Create a new seeder class.\n | {--force : Create the seeder even if it already exists}\n | {--l|type=ts : The file type to generate}\n }\n {model : Create a new Eloquent model class. \n | {--api : Indicates if the generated controller should be an API resource controller} \n | {--c|controller : Create a new controller for the model} \n | {--f|factory : Create a new factory for the model} \n | {--m|migration : Create a new migration file for the model} \n | {--r|resource : Indicates if the generated controller should be a resource controller} \n | {--a|all : Generate a migration, seeder, factory, policy, resource controller, and form request classes for the model} \n | {--s|seed : Create a new seeder for the model}\n | {--l|type=ts : The file type to generate}\n | {--force : Create the model even if it already exists}\n } \n {^name : The name of the [name] to generate}\n `\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Generate component classes'\n\n public async handle (this: any) {\n const command = (this.dictionary.baseCommand ?? this.dictionary.name) as never\n\n if (!this.argument('name')) {\n this.program.error('Please provide a valid name for the ' + command)\n }\n\n const methods = {\n migration: 'makeMigration', // ✓\n factory: 'makeFactory',\n seeder: 'makeSeeder', // ✓\n model: 'makeModel', // ✓\n } as const\n\n console.log('')\n\n await this[methods[command]]()\n }\n\n /**\n * Generate a new database migration class\n */\n protected async makeMigration () {\n const type = this.option('type', 'ts')\n const name = this.argument('name')\n const datePrefix = dayjs().format('YYYY_MM_DD_HHmmss')\n const path = database_path(`migrations/${datePrefix}_${name}.${type}`)\n\n const dbPkgPath = FileSystem.findModulePkg('@h3ravel/database', this.kernel.cwd) ?? ''\n\n let create = this.option('create', false)\n let table = this.option('table')\n if (!table && typeof create === 'string') {\n table = create\n create = true\n }\n\n if (!table) {\n const guessed = TableGuesser.guess(name)\n table = guessed[0]\n create = !!guessed[1]\n }\n\n const stubPath = npath.join(dbPkgPath, this.getStubName('migration', type, { table, create }))\n let stub = await readFile(stubPath, 'utf-8')\n\n if (table !== null) {\n stub = stub.replace(/DummyTable|{{\\s*table\\s*}}/g, table)\n }\n\n Logger.info('INFO: Creating Migration')\n\n await this.kernel.ensureDirectoryExists(npath.dirname(path))\n await writeFile(path, stub)\n\n Logger.split('INFO: Migration Created', Logger.log(npath.basename(path), 'gray', false))\n }\n\n /**\n * Create a new model factory\n */\n protected makeFactory () {\n Logger.success('Factory support is not yet available')\n }\n\n /**\n * Create a new seeder class\n */\n protected async makeSeeder () {\n const type = this.option('type', 'ts')\n const name = this.argument('name')\n const force = this.option('force')\n const path = database_path(`seeders/${Str.snake(name)}.${type}`)\n\n /** Check if the model already exists */\n if (!force && await FileSystem.fileExists(path)) {\n Logger.error(`ERORR: ${name} already exists`)\n }\n\n const dbPkgPath = FileSystem.findModulePkg('@h3ravel/database', this.kernel.cwd) ?? ''\n const stubPath = npath.join(dbPkgPath, this.getStubName('seeder', type))\n\n let stub = await readFile(stubPath, 'utf-8')\n stub = stub.replace(/{{ name }}/g, name)\n\n await writeFile(path, stub)\n\n Logger.info(\n `INFO: Seeder ${Logger.log(`[${npath.relative(process.cwd(), path)}]`, 'bold', false)} created successfully.`\n )\n }\n\n /**\n * Generate a new Arquebus model class\n */\n protected async makeModel () {\n const type = this.option('type', 'ts')\n const name = this.argument('name')\n const force = this.option('force')\n\n const path = app_path(`Models/${Str.lower(name)}.${type}`)\n\n /** The model is scoped to a path make sure to create the associated directories */\n if (name.includes('/')) {\n await mkdir(Str.beforeLast(path, '/'), { recursive: true })\n }\n\n /** Check if the model already exists */\n if (!force && await FileSystem.fileExists(path)) {\n Logger.error(`ERORR: ${name} model already exists`)\n }\n\n const dbPkgPath = FileSystem.findModulePkg('@h3ravel/database', this.kernel.cwd) ?? ''\n const stubPath = npath.join(dbPkgPath, `dist/stubs/model-${type}.stub`)\n\n let stub = await readFile(stubPath, 'utf-8')\n stub = stub.replace(/{{ name }}/g, name)\n\n await writeFile(path, stub)\n\n Logger.info(\n `INFO: Model ${Logger.log(`[${npath.relative(process.cwd(), path)}]`, 'bold', false)} created successfully.`\n )\n }\n\n /**\n * Ge the database migration file name\n * \n * @param table \n * @param create \n * @param type \n * @returns \n */\n getStubName (\n type: 'migration' | 'seeder' | 'model' | 'factory',\n ext: 'ts' | 'js' = 'ts',\n { table, create }: { table?: string, create?: boolean } = {}\n ) {\n let stub: string\n if (type === 'migration') {\n if (!table) {\n stub = `migration-${ext}.stub`\n }\n else if (create) {\n stub = `migration.create-${ext}.stub`\n }\n else {\n stub = `migration.update-${ext}.stub`\n }\n return 'dist/stubs/' + stub\n } else {\n return `dist/stubs/${type}-${ext}.stub`\n }\n }\n}\n","import { FileSystem, Logger, Resolver } from '@h3ravel/shared'\nimport { Migrate, MigrationCreator } from '@h3ravel/arquebus/migrations'\nimport { SeedCommand, TBaseConfig, arquebusConfig } from '..'\n\nimport { ConsoleCommand } from '@h3ravel/core'\nimport path from 'node:path'\n\nexport class MigrateCommand extends ConsoleCommand {\n /**\n * The current database connection\n */\n private connection!: TBaseConfig\n\n /** \n * The base path for all database operations\n */\n private databasePath: string = database_path()\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `migrate:\n {fresh : Drop all tables and re-run all migrations. | {--seed : Indicates if the seed task should be re-run} | {--seeder : The file name of the root seeder}}\n {install : Create the migration repository.}\n {refresh : Reset and re-run all migrations. | {--seed : Indicates if the seed task should be re-run} | {--seeder : The file name of the root seeder}}\n {reset : Rollback all database migrations.}\n {rollback : Rollback the last database migration.}\n {status : Show the status of each migration.}\n {publish : Publish any migration files from installed packages. | {package : The package to publish migrations from}}\n {^--c|connection=mysql : The database connection to use : [mysql, sqlite, mariadb, pgsql]}\n {--seed : Seed the database}\n {--seeder : The file name of the root seeder}\n {^--force : Force the operation to run when in production}\n `\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Run all pending migrations.'\n\n /**\n * Execute the console command.\n */\n public async handle (this: any) {\n const force = this.option('force')\n const command = (this.dictionary.name ?? this.dictionary.baseCommand) as never\n\n if (env('APP_ENV') === 'production' && !force) {\n this.error('INFO: Unable to run migration, your app is currently in production.')\n }\n\n this.connection = Object.entries(arquebusConfig(config('database')))\n .find(([client]) => client === config('database.default'))\n ?.at(1)\n\n this.connection.migrations = {\n path: 'migrations',\n table: 'migrations',\n }\n\n const methods = {\n migrate: 'migrateRun',\n fresh: 'migrateFresh',\n install: 'migrateInstall',\n refresh: 'migrateRefresh',\n reset: 'migrateReset',\n rollback: 'migrateRollback',\n status: 'migrateStatus',\n publish: 'migratePublish',\n } as const\n\n await this[methods[command]]()\n }\n\n /**\n * Run all pending migrations.\n */\n protected async migrateRun () {\n try {\n await new Migrate(this.databasePath).run(this.connection, this.options(), true)\n\n if (this.option('seed')) {\n await this.runSeeders()\n }\n } catch (e) {\n Logger.error('ERROR: ' + e)\n }\n }\n\n /**\n * Drop all tables and re-run all migrations.\n */\n protected async migrateFresh () {\n try {\n await new Migrate(this.databasePath).fresh(this.connection, this.options(), true)\n\n if (this.option('seed')) {\n await this.runSeeders()\n }\n } catch (e) {\n Logger.error('ERROR: ' + e)\n }\n }\n\n /**\n * Reset and re-run all migrations.\n */\n protected async migrateRefresh () {\n try {\n await new Migrate(this.databasePath).refresh(this.connection, this.options(), true)\n\n if (this.option('seed')) {\n await this.runSeeders()\n }\n } catch (e) {\n Logger.error('ERROR: ' + e)\n }\n }\n\n /**\n * Create the migration repository.\n */\n protected async migrateInstall () {\n try {\n const migrate = new Migrate(this.databasePath)\n const { migrator } = await migrate.setupConnection(this.connection)\n await migrate.prepareDatabase(migrator)\n\n Logger.success('Migration repository installed.')\n } catch (e) {\n Logger.error('ERROR: ' + e)\n }\n }\n\n /**\n * Rollback all database migrations.\n */\n protected async migrateReset () {\n try {\n await new Migrate(this.databasePath).reset(this.connection, this.options(), true)\n } catch (e) {\n Logger.error('ERROR: ' + e)\n }\n }\n\n /**\n * Rollback the last database migration.\n */\n protected async migrateRollback () {\n try {\n await new Migrate(this.databasePath).rollback(this.connection, this.options(), true)\n } catch (e) {\n Logger.error('ERROR: ' + e)\n }\n }\n\n /**\n * Show the status of each migration.\n */\n protected async migrateStatus () {\n const migrations = await new Migrate(this.databasePath, undefined, (msg, sts) => {\n const hint = Logger.parse([\n [' Did you forget to run', 'white'],\n ['`musket migrate:install`?', 'grey']\n ], ' ', false)\n\n if (sts) Logger[sts](msg + hint, sts === 'error', true)\n }).status(this.connection, this.options(), true)\n\n try {\n if (migrations.length > 0) {\n Logger.twoColumnDetail('Migration name', 'Batch / Status')\n\n migrations.forEach(migration => {\n const status = migration.ran\n ? Logger.parse([[`[${migration.batch}]`, 'white'], ['Ran', 'green']], ' ', false)\n : Logger.parse([['Pending', 'yellow']], '', false)\n Logger.twoColumnDetail(migration.name, status)\n })\n }\n else {\n Logger.info('No migrations found')\n }\n } catch (e) {\n Logger.error(['ERROR: ' + e, 'Did you run musket migrate:install'])\n }\n }\n\n\n\n /**\n * Publish any migration files from installed packages.\n */\n protected async migratePublish () {\n const name = this.argument('package')\n\n try {\n /** Find the requested package */\n const packagePath = FileSystem.findModulePkg(name) ?? null\n if (!packagePath) throw new Error('Package not found')\n\n /** Get the package,json and instanciate the migration creator */\n const pkgJson = (await import(path.join(packagePath, 'package.json')))\n const creator = new MigrationCreator(path.join(packagePath, pkgJson.migrations ?? 'migrations'))\n\n const info = Logger.parse([\n [' Publishing migrations from', 'white'],\n [`${pkgJson.name}@${pkgJson.version}`, ['italic', 'gray']]\n ], ' ', false)\n\n Logger.info(`INFO: ${info}`)\n\n try {\n /** Publish any existing migrations */\n await creator.publish(this.databasePath, (fileName) => {\n Logger.twoColumnDetail(fileName, Logger.parse([['PUBLISHED', 'green']], '', false))\n })\n } catch {\n Logger.error([`ERROR: ${name} has no publishable migrations.`])\n }\n } catch (e) {\n const hint = Logger.parse([\n [' Did you forget to run', 'white'],\n [`\\`${await Resolver.getPakageInstallCommand(name)}\\``, 'grey']\n ], ' ', false)\n\n const error = Logger.parse([\n ['Package `', 'white'],\n [name, 'grey'],\n ['` not found', 'white']\n ], '', false)\n\n Logger.error(['ERROR: ' + error, hint + '?', String(e)])\n }\n }\n\n /**\n * Run database seeders\n */\n private async runSeeders () {\n await new SeedCommand(this.app, this.kernel)\n .setInput(\n { class: this.option('seeder', 'DatabaseSeeder'), force: this.option('force') },\n [],\n [],\n {},\n this.program\n )\n .handle()\n }\n}\n","import { FileSystem, Logger } from '@h3ravel/shared'\n\nimport { ConsoleCommand } from '@h3ravel/core'\nimport { DB } from '..'\nimport type { QueryBuilder } from '@h3ravel/arquebus'\nimport { Str } from '@h3ravel/support'\nimport npath from 'node:path'\n\nexport class SeedCommand extends ConsoleCommand {\n /**\n * The current query builder instance\n */\n public queryBuilder!: QueryBuilder\n\n /**\n * The current database connection name\n */\n private connection!: string\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `db:seed\n {--class=DatabaseSeeder : The file name of the root seeder}\n {--d|database? : The database connection to use}\n {--force : Force the operation to run when in production}\n `\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Seed the database with records.'\n\n /**\n * Execute the console command.\n */\n public async handle () {\n const file = this.option('class')\n const force = this.option('force')\n const database = this.option('database')\n\n this.newLine()\n\n if (env('APP_ENV') === 'production' && !force) {\n this.error('INFO: Unable to run seeders, your app is currently in production.')\n }\n\n this.connection = database ?? config('database.default')\n this.queryBuilder = DB.instance(this.connection)\n\n if (!this.connection) {\n this.error('ERROR: Unknown database connection.')\n }\n\n let path = npath.join(process.cwd(), file)\n\n const [f1, f2] = [\n FileSystem.resolveFileUp(Str.snake(file), ['js', 'ts'], database_path('seeders')),\n FileSystem.resolveFileUp(Str.studly(file), ['js', 'ts'], database_path('seeders')),\n ]\n\n if (!f1 && !f2) {\n /**\n * Try to find the path assuming it's relative to cwd\n */\n if (!await FileSystem.fileExists(path)) {\n path = database_path(npath.join('seeders', file))\n }\n\n /**\n * Now try to find the path knowing it's relative to database_path\n */\n if (!await FileSystem.fileExists(path)) {\n this.error(`ERROR: Seeder ${Logger.log(`[${file}]`, 'bold', false)} not found.`)\n }\n } else {\n path = String(f1 ?? f2)\n }\n\n const { default: seeder } = (await import(path))\n\n if (seeder) {\n this.info('INFO: Seeding database.')\n this.newLine()\n\n await new seeder(this.app, this).run(this.queryBuilder)\n }\n }\n}\n","/// <reference path=\"../../core/src/app.globals.d.ts\" />\nimport { Knex } from 'knex'\n\ntype TFunction = (...args: any[]) => any\n\nexport interface TField {\n type: 'VAR_STRING' | 'BLOB' | 'DATETIME' | 'TIMESTAMP' | 'LONG' | 'JSON'\n length: number\n db: string\n table: string\n name: string\n string: TFunction,\n buffer: TFunction\n geometry: TFunction\n}\n\nexport interface TBaseConfig {\n client: 'mysql' | 'mysql2' | 'sqlite3' | 'oracle' | 'mariadb' | 'pg'\n connection: {\n typeCast?(field: TField, next: TFunction): any\n dateStrings?: boolean\n }\n pool?: {\n afterCreate: (connection: TConfig, callback: (val: any, con: any) => void) => Promise<any>\n } | undefined\n connections?: Record<string, TConfig>\n migrations?: {\n table: string\n path: string\n },\n factories?: {\n path: string\n },\n seeders?: {\n path: string\n },\n models?: {\n path: string\n }\n}\n\nexport type TConfig = TBaseConfig & ({\n client: 'pg'\n connection: Knex.PgConnectionConfig\n} | {\n client: 'oracle'\n connection: Knex.OracleDbConnectionConfig\n} | {\n client: 'mysql2'\n connection: Knex.MySql2ConnectionConfig\n} | {\n client: 'mysql'\n connection: Knex.MySqlConnectionConfig\n} | {\n client: 'sqlite3'\n connection: Knex.Sqlite3ConnectionConfig\n useNullAsDefault?: boolean\n} | {\n client: 'mariadb'\n connection: Knex.MariaSqlConnectionConfig\n useNullAsDefault?: boolean\n})\n\nexport const arquebusConfig = (config: any) => {\n return {\n sqlite: {\n client: config.connections.sqlite.driver,\n connection: <Knex.Sqlite3ConnectionConfig>{\n filename: database_path(config.connections.sqlite.database),\n debug: config.connections.sqlite.debug,\n flags: config.connections.sqlite.flags,\n options: config.connections.sqlite.options,\n expirationChecker: config.connections.sqlite.expirationChecker\n },\n useNullAsDefault: config.connections.sqlite.useNullAsDefault,\n },\n mysql: {\n client: config.connections.mysql.driver,\n connection: <Knex.MySql2ConnectionConfig>{\n host: config.connections.mysql.host ?? 'localhost',\n port: config.connections.mysql.port ?? 3306,\n user: config.connections.mysql.username ?? 'root',\n password: config.connections.mysql.password,\n database: config.connections.mysql.database,\n charset: config.connections.mysql.charset,\n socketPath: config.connections.mysql.unix_socket,\n localAddress: config.connections.mysql.url,\n },\n },\n mariadb: {\n client: config.connections.mariadb.driver,\n connection: <Knex.MariaSqlConnectionConfig>{\n host: config.connections.mariadb.host ?? 'localhost',\n port: config.connections.mariadb.port ?? 3306,\n user: config.connections.mariadb.username ?? 'root',\n password: config.connections.mariadb.password,\n database: config.connections.mariadb.database,\n charset: config.connections.mariadb.charset,\n socketPath: config.connections.mariadb.unix_socket,\n localAddress: config.connections.mariadb.url,\n expirationChecker: config.connections.mariadb.expirationChecker\n },\n },\n pgsql: {\n client: 'pg',\n connection: <Knex.PgConnectionConfig>{\n host: config.connections.pgsql.host ?? 'localhost',\n port: config.connections.pgsql.port ?? 3306,\n user: config.connections.pgsql.username ?? 'root',\n password: config.connections.pgsql.password,\n database: config.connections.pgsql.database,\n charset: config.connections.mysql.charset,\n connectionString: config.connections.pgsql.url,\n expirationChecker: config.connections.pgsql.expirationChecker\n },\n }\n } as unknown as TBaseConfig\n}\n","import { Model as BaseModel } from '@h3ravel/arquebus'\n\nexport class Model<M extends BaseModel = any> extends BaseModel {\n /**\n * Retrieve the model for a bound value.\n * \n * @param {any} value \n * @param {String|null} field \n * @returns \n */\n public resolveRouteBinding (value: any, field: undefined | string | null = null): Promise<M> {\n return this.newQuery().where(field ?? 'ids', value).firstOrFail()! as Promise<M>\n }\n}\n","import { MakeCommand } from '../Commands/MakeCommand'\nimport { MigrateCommand } from '../Commands/MigrateCommand'\nimport { SeedCommand } from '../Commands/SeedCommand'\nimport { ServiceProvider } from '@h3ravel/core'\nimport { arquebus } from '@h3ravel/arquebus'\nimport { arquebusConfig } from '../Configuration'\n\n/**\n * Database connection, ORM, migrations.\n * \n * Register DatabaseManager and QueryBuilder if required.\n * Set up ORM models and relationships.\n * Register migration and seeder commands.\n * \n */\nexport class DatabaseServiceProvider extends ServiceProvider {\n public static priority = 994\n\n register () {\n const config = this.app.make('config')\n\n const connection = Object.entries(arquebusConfig(config.get('database')))\n .find(([client]) => client === config.get('database.default'))\n ?.at(1)\n\n if (connection) {\n arquebus.addConnection(connection)\n }\n\n /** Register Musket Commands */\n this.registerCommands([MigrateCommand, MakeCommand, SeedCommand])\n }\n}\n","import { IQueryBuilder } from '@h3ravel/arquebus/types'\nimport { arquebus } from '@h3ravel/arquebus'\n\nexport class DB {\n connection?: string\n\n constructor(connection?: string) {\n if (connection) {\n this.connection = connection\n }\n }\n\n /**\n * New instance\n */\n public static table (name: string): IQueryBuilder {\n return new DB().builder().table(name)\n }\n\n /**\n * Builder table instance\n */\n public static instance (connection?: string) {\n return new DB(connection).builder()\n }\n\n /**\n * Builder transaction instance\n */\n public static transaction<C> (callback: (...args: C[]) => any) {\n return new DB().builder().transaction(callback)\n }\n\n private builder () {\n return arquebus.getInstance().connection(this.connection)\n }\n}\n","import { Application } from '@h3ravel/core'\nimport { Arr } from '@h3ravel/support'\nimport { Seeder as BaseSeeder } from '@h3ravel/arquebus'\nimport { SeedCommand } from './Commands/SeedCommand'\nimport { TaskManager } from '@h3ravel/shared'\n\nexport class Seeder extends BaseSeeder {\n /**\n * Seeders that have been called at least one time.\n */\n static called: Seeder[] = []\n\n constructor(public app: Application, public command?: SeedCommand) {\n super()\n }\n\n async run (_conn?: SeedCommand['queryBuilder'], ..._args: any[]) { };\n\n /**\n * Run the given seeder class.\n *\n * @param className\n * @param silent\n * @param parameters\n * \n * @return this\n */\n public async call (className: typeof Seeder | typeof Seeder[], silent = false, parameters: any[] = []) {\n const classes = Arr.wrap(className)\n\n for (let i = 0; i < classes.length; i++) {\n const instance = this.resolve(classes[i])\n const name = instance.constructor.name\n\n if (silent === false) {\n await TaskManager.advancedTaskRunner(\n [[name, 'RUNNING'], [name, 'DONE']],\n async () => await instance.run(this.command!.queryBuilder, ...parameters)\n )\n } else {\n await instance.run(this.command!.queryBuilder, ...parameters)\n }\n\n Seeder.called.push(instance)\n }\n\n return this\n }\n\n /**\n * Resolve an instance of the given seeder class.\n *\n * @param className\n * \n * @return Seeder\n */\n protected resolve (className: typeof Seeder) {\n const instance = new (className as { new(app: any): Seeder })(this.app)\n\n if (this.command) {\n instance.setCommand(this.command)\n }\n\n return instance\n }\n\n /**\n * Run the given seeder class.\n *\n * @param className\n * @param silent\n * @param parameters\n * \n * @return void\n */\n public async callWith (className: typeof Seeder | typeof Seeder[], parameters: any[]) {\n await this.call(className, false, parameters)\n }\n\n /**\n * Silently run the given seeder class.\n *\n * @param className\n * @param parameters\n * \n * @return void\n */\n public async callSilent (className: typeof Seeder | typeof Seeder[], parameters: any[] = []) {\n await this.call(className, true, parameters)\n }\n\n /**\n * Set the console command instance.\n *\n * @param command\n * \n * @return this\n */\n public setCommand (command: SeedCommand) {\n this.command = command\n\n return this\n }\n}\n"],"x_google_ignoreList":[1],"mappings":"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"}