@h3ravel/database 11.3.0 → 11.3.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 +4 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -7
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/dist/index.cjs
CHANGED
|
@@ -428,11 +428,10 @@ var MakeCommand = class extends __h3ravel_core.ConsoleCommand {
|
|
|
428
428
|
table = guessed[0];
|
|
429
429
|
create = !!guessed[1];
|
|
430
430
|
}
|
|
431
|
-
|
|
431
|
+
let stub = await (0, node_fs_promises.readFile)(node_path.default.join(dbPkgPath, this.getStubName("migration", type, {
|
|
432
432
|
table,
|
|
433
433
|
create
|
|
434
|
-
}));
|
|
435
|
-
let stub = await (0, node_fs_promises.readFile)(stubPath, "utf-8");
|
|
434
|
+
})), "utf-8");
|
|
436
435
|
if (table !== null) stub = stub.replace(/DummyTable|{{\s*table\s*}}/g, table);
|
|
437
436
|
__h3ravel_shared.Logger.info("INFO: Creating Migration");
|
|
438
437
|
await this.kernel.ensureDirectoryExists(node_path.default.dirname(path$1));
|
|
@@ -456,8 +455,7 @@ var MakeCommand = class extends __h3ravel_core.ConsoleCommand {
|
|
|
456
455
|
/** Check if the model already exists */
|
|
457
456
|
if (!force && await __h3ravel_shared.FileSystem.fileExists(path$1)) __h3ravel_shared.Logger.error(`ERORR: ${name} already exists`);
|
|
458
457
|
const dbPkgPath = __h3ravel_shared.FileSystem.findModulePkg("@h3ravel/database", this.kernel.cwd) ?? "";
|
|
459
|
-
|
|
460
|
-
let stub = await (0, node_fs_promises.readFile)(stubPath, "utf-8");
|
|
458
|
+
let stub = await (0, node_fs_promises.readFile)(node_path.default.join(dbPkgPath, this.getStubName("seeder", type)), "utf-8");
|
|
461
459
|
stub = stub.replace(/{{ name }}/g, name);
|
|
462
460
|
await (0, node_fs_promises.writeFile)(path$1, stub);
|
|
463
461
|
__h3ravel_shared.Logger.info(`INFO: Seeder ${__h3ravel_shared.Logger.log(`[${node_path.default.relative(process.cwd(), path$1)}]`, "bold", false)} created successfully.`);
|
|
@@ -475,8 +473,7 @@ var MakeCommand = class extends __h3ravel_core.ConsoleCommand {
|
|
|
475
473
|
/** Check if the model already exists */
|
|
476
474
|
if (!force && await __h3ravel_shared.FileSystem.fileExists(path$1)) __h3ravel_shared.Logger.error(`ERORR: ${name} model already exists`);
|
|
477
475
|
const dbPkgPath = __h3ravel_shared.FileSystem.findModulePkg("@h3ravel/database", this.kernel.cwd) ?? "";
|
|
478
|
-
|
|
479
|
-
let stub = await (0, node_fs_promises.readFile)(stubPath, "utf-8");
|
|
476
|
+
let stub = await (0, node_fs_promises.readFile)(node_path.default.join(dbPkgPath, `dist/stubs/model-${type}.stub`), "utf-8");
|
|
480
477
|
stub = stub.replace(/{{ name }}/g, name);
|
|
481
478
|
await (0, node_fs_promises.writeFile)(path$1, stub);
|
|
482
479
|
__h3ravel_shared.Logger.info(`INFO: Model ${__h3ravel_shared.Logger.log(`[${node_path.default.relative(process.cwd(), path$1)}]`, "bold", false)} created successfully.`);
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 { 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.}\n {install : Create the migration repository.}\n {refresh : Reset and re-run all migrations.}\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 {^--s|seed : Seed the database}\n {^--c|connection=mysql : The database connection to use}\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 command = (this.dictionary.name ?? this.dictionary.baseCommand) as never\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 } 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 } 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 * 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 } 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","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 console.log('')\n\n if (env('APP_ENV') === 'production' && !force) {\n Logger.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 Logger.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 Logger.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 Logger.info('INFO: Seeding database.')\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.commands([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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"}
|
|
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 { 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.}\n {install : Create the migration repository.}\n {refresh : Reset and re-run all migrations.}\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 {^--s|seed : Seed the database}\n {^--c|connection=mysql : The database connection to use}\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 command = (this.dictionary.name ?? this.dictionary.baseCommand) as never\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 } 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 } 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 * 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 } 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","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 console.log('')\n\n if (env('APP_ENV') === 'production' && !force) {\n Logger.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 Logger.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 Logger.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 Logger.info('INFO: Seeding database.')\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.commands([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
CHANGED
|
@@ -422,11 +422,10 @@ var MakeCommand = class extends ConsoleCommand {
|
|
|
422
422
|
table = guessed[0];
|
|
423
423
|
create = !!guessed[1];
|
|
424
424
|
}
|
|
425
|
-
|
|
425
|
+
let stub = await readFile(npath.join(dbPkgPath, this.getStubName("migration", type, {
|
|
426
426
|
table,
|
|
427
427
|
create
|
|
428
|
-
}));
|
|
429
|
-
let stub = await readFile(stubPath, "utf-8");
|
|
428
|
+
})), "utf-8");
|
|
430
429
|
if (table !== null) stub = stub.replace(/DummyTable|{{\s*table\s*}}/g, table);
|
|
431
430
|
Logger.info("INFO: Creating Migration");
|
|
432
431
|
await this.kernel.ensureDirectoryExists(npath.dirname(path));
|
|
@@ -450,8 +449,7 @@ var MakeCommand = class extends ConsoleCommand {
|
|
|
450
449
|
/** Check if the model already exists */
|
|
451
450
|
if (!force && await FileSystem.fileExists(path)) Logger.error(`ERORR: ${name} already exists`);
|
|
452
451
|
const dbPkgPath = FileSystem.findModulePkg("@h3ravel/database", this.kernel.cwd) ?? "";
|
|
453
|
-
|
|
454
|
-
let stub = await readFile(stubPath, "utf-8");
|
|
452
|
+
let stub = await readFile(npath.join(dbPkgPath, this.getStubName("seeder", type)), "utf-8");
|
|
455
453
|
stub = stub.replace(/{{ name }}/g, name);
|
|
456
454
|
await writeFile(path, stub);
|
|
457
455
|
Logger.info(`INFO: Seeder ${Logger.log(`[${npath.relative(process.cwd(), path)}]`, "bold", false)} created successfully.`);
|
|
@@ -469,8 +467,7 @@ var MakeCommand = class extends ConsoleCommand {
|
|
|
469
467
|
/** Check if the model already exists */
|
|
470
468
|
if (!force && await FileSystem.fileExists(path)) Logger.error(`ERORR: ${name} model already exists`);
|
|
471
469
|
const dbPkgPath = FileSystem.findModulePkg("@h3ravel/database", this.kernel.cwd) ?? "";
|
|
472
|
-
|
|
473
|
-
let stub = await readFile(stubPath, "utf-8");
|
|
470
|
+
let stub = await readFile(npath.join(dbPkgPath, `dist/stubs/model-${type}.stub`), "utf-8");
|
|
474
471
|
stub = stub.replace(/{{ name }}/g, name);
|
|
475
472
|
await writeFile(path, stub);
|
|
476
473
|
Logger.info(`INFO: Model ${Logger.log(`[${npath.relative(process.cwd(), path)}]`, "bold", false)} created successfully.`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 { 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.}\n {install : Create the migration repository.}\n {refresh : Reset and re-run all migrations.}\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 {^--s|seed : Seed the database}\n {^--c|connection=mysql : The database connection to use}\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 command = (this.dictionary.name ?? this.dictionary.baseCommand) as never\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 } 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 } 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 * 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 } 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","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 console.log('')\n\n if (env('APP_ENV') === 'production' && !force) {\n Logger.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 Logger.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 Logger.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 Logger.info('INFO: Seeding database.')\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.commands([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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"}
|
|
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 { 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.}\n {install : Create the migration repository.}\n {refresh : Reset and re-run all migrations.}\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 {^--s|seed : Seed the database}\n {^--c|connection=mysql : The database connection to use}\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 command = (this.dictionary.name ?? this.dictionary.baseCommand) as never\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 } 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 } 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 * 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 } 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","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 console.log('')\n\n if (env('APP_ENV') === 'production' && !force) {\n Logger.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 Logger.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 Logger.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 Logger.info('INFO: Seeding database.')\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.commands([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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@h3ravel/database",
|
|
3
|
-
"version": "11.3.
|
|
3
|
+
"version": "11.3.2",
|
|
4
4
|
"description": "Modeling data and migration system for H3ravel.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
"laravel"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@h3ravel/arquebus": "^0.6.
|
|
39
|
+
"@h3ravel/arquebus": "^0.6.6",
|
|
40
40
|
"sqlite3": "^5.1.7"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
|
-
"@h3ravel/
|
|
44
|
-
"@h3ravel/
|
|
45
|
-
"@h3ravel/
|
|
46
|
-
"@h3ravel/
|
|
43
|
+
"@h3ravel/support": "^0.14.0",
|
|
44
|
+
"@h3ravel/core": "^1.15.0",
|
|
45
|
+
"@h3ravel/filesystem": "^0.4.2",
|
|
46
|
+
"@h3ravel/shared": "^0.22.1"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"typescript": "^5.9.2"
|