Initial commit

This commit is contained in:
Rutra
2026-02-25 00:34:39 +01:00
commit 54b0fc3485
178 changed files with 12761 additions and 0 deletions

19
config/app.js Normal file
View File

@@ -0,0 +1,19 @@
import env from '#start/env';
import app from '@adonisjs/core/services/app';
import { Secret } from '@adonisjs/core/helpers';
import { defineConfig } from '@adonisjs/core/http';
export const appKey = new Secret(env.get('APP_KEY'));
export const http = defineConfig({
generateRequestId: true,
allowMethodSpoofing: true,
useAsyncLocalStorage: false,
cookie: {
domain: '',
path: '/',
maxAge: '2h',
httpOnly: true,
secure: app.inProduction,
sameSite: 'lax',
},
});
//# sourceMappingURL=app.js.map

1
config/app.js.map Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../config/app.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAA;AAC5B,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AASlD,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;AAKpD,MAAM,CAAC,MAAM,IAAI,GAAG,YAAY,CAAC;IAC/B,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;IAMzB,oBAAoB,EAAE,KAAK;IAM3B,MAAM,EAAE;QACN,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,YAAY;QACxB,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC,CAAA"}

15
config/auth.js Normal file
View File

@@ -0,0 +1,15 @@
import { defineConfig } from '@adonisjs/auth';
import { sessionGuard, sessionUserProvider } from '@adonisjs/auth/session';
const authConfig = defineConfig({
default: 'web',
guards: {
web: sessionGuard({
useRememberMeTokens: false,
provider: sessionUserProvider({
model: () => import('#models/user')
}),
}),
},
});
export default authConfig;
//# sourceMappingURL=auth.js.map

1
config/auth.js.map Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../config/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAG1E,MAAM,UAAU,GAAG,YAAY,CAAC;IAC9B,OAAO,EAAE,KAAK;IACd,MAAM,EAAE;QACN,GAAG,EAAE,YAAY,CAAC;YAChB,mBAAmB,EAAE,KAAK;YAC1B,QAAQ,EAAE,mBAAmB,CAAC;gBAC5B,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;aACpC,CAAC;SACH,CAAC;KACH;CACF,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}

26
config/bodyparser.js Normal file
View File

@@ -0,0 +1,26 @@
import { defineConfig } from '@adonisjs/core/bodyparser';
const bodyParserConfig = defineConfig({
allowedMethods: ['POST', 'PUT', 'PATCH', 'DELETE'],
form: {
convertEmptyStringsToNull: true,
types: ['application/x-www-form-urlencoded'],
},
json: {
convertEmptyStringsToNull: true,
types: [
'application/json',
'application/json-patch+json',
'application/vnd.api+json',
'application/csp-report',
],
},
multipart: {
autoProcess: true,
convertEmptyStringsToNull: true,
processManually: [],
limit: '20mb',
types: ['multipart/form-data'],
},
});
export default bodyParserConfig;
//# sourceMappingURL=bodyparser.js.map

1
config/bodyparser.js.map Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"bodyparser.js","sourceRoot":"","sources":["../../config/bodyparser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,gBAAgB,GAAG,YAAY,CAAC;IAKpC,cAAc,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;IAMlD,IAAI,EAAE;QACJ,yBAAyB,EAAE,IAAI;QAC/B,KAAK,EAAE,CAAC,mCAAmC,CAAC;KAC7C;IAKD,IAAI,EAAE;QACJ,yBAAyB,EAAE,IAAI;QAC/B,KAAK,EAAE;YACL,kBAAkB;YAClB,6BAA6B;YAC7B,0BAA0B;YAC1B,wBAAwB;SACzB;KACF;IAMD,SAAS,EAAE;QAMT,WAAW,EAAE,IAAI;QACjB,yBAAyB,EAAE,IAAI;QAC/B,eAAe,EAAE,EAAE;QAMnB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,CAAC,qBAAqB,CAAC;KAC/B;CACF,CAAC,CAAA;AAEF,eAAe,gBAAgB,CAAA"}

12
config/cors.js Normal file
View File

@@ -0,0 +1,12 @@
import { defineConfig } from '@adonisjs/cors';
const corsConfig = defineConfig({
enabled: true,
origin: ['http://localhost:4200', 'http://127.0.0.1:4200', 'https://portfolio.nucleus-ludus.fr', 'https://www.portfolio.nucleus-ludus.fr'],
methods: ['GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
headers: true,
exposeHeaders: [],
credentials: true,
maxAge: 90,
});
export default corsConfig;
//# sourceMappingURL=cors.js.map

1
config/cors.js.map Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../config/cors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,UAAU,GAAG,YAAY,CAAC;IAI9B,OAAO,EAAE,IAAI;IAMb,MAAM,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,EAAE,oCAAoC,EAAE,wCAAwC,CAAC;IAK1I,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;IAMrE,OAAO,EAAE,IAAI;IAKb,aAAa,EAAE,EAAE;IAKjB,WAAW,EAAE,IAAI;IAKjB,MAAM,EAAE,EAAE;CACX,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}

20
config/database.js Normal file
View File

@@ -0,0 +1,20 @@
import app from '@adonisjs/core/services/app';
import { defineConfig } from '@adonisjs/lucid';
const dbConfig = defineConfig({
connection: 'sqlite',
connections: {
sqlite: {
client: 'better-sqlite3',
connection: {
filename: app.makePath('database/db.sqlite3')
},
useNullAsDefault: true,
migrations: {
naturalSort: true,
paths: ['database/migrations'],
},
},
},
});
export default dbConfig;
//# sourceMappingURL=database.js.map

1
config/database.js.map Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../config/database.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,MAAM,QAAQ,GAAG,YAAY,CAAC;IAC5B,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE;QACX,MAAM,EAAE;YACN,MAAM,EAAE,gBAAgB;YACxB,UAAU,EAAE;gBACV,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;aAC9C;YACD,gBAAgB,EAAE,IAAI;YACtB,UAAU,EAAE;gBACV,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,CAAC,qBAAqB,CAAC;aAC/B;SACF;KACF;CACF,CAAC,CAAA;AAEF,eAAe,QAAQ,CAAA"}

14
config/hash.js Normal file
View File

@@ -0,0 +1,14 @@
import { defineConfig, drivers } from '@adonisjs/core/hash';
const hashConfig = defineConfig({
default: 'scrypt',
list: {
scrypt: drivers.scrypt({
cost: 16384,
blockSize: 8,
parallelization: 1,
maxMemory: 33554432,
}),
},
});
export default hashConfig;
//# sourceMappingURL=hash.js.map

1
config/hash.js.map Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../config/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE3D,MAAM,UAAU,GAAG,YAAY,CAAC;IAC9B,OAAO,EAAE,QAAQ;IAEjB,IAAI,EAAE;QACJ,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,eAAe,EAAE,CAAC;YAClB,SAAS,EAAE,QAAQ;SACpB,CAAC;KACH;CACF,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}

21
config/logger.js Normal file
View File

@@ -0,0 +1,21 @@
import env from '#start/env';
import app from '@adonisjs/core/services/app';
import { defineConfig, targets } from '@adonisjs/core/logger';
const loggerConfig = defineConfig({
default: 'app',
loggers: {
app: {
enabled: true,
name: env.get('APP_NAME'),
level: env.get('LOG_LEVEL'),
transport: {
targets: targets()
.pushIf(!app.inProduction, targets.pretty())
.pushIf(app.inProduction, targets.file({ destination: 1 }))
.toArray(),
},
},
},
});
export default loggerConfig;
//# sourceMappingURL=logger.js.map

1
config/logger.js.map Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../config/logger.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAA;AAC5B,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAE7D,MAAM,YAAY,GAAG,YAAY,CAAC;IAChC,OAAO,EAAE,KAAK;IAMd,OAAO,EAAE;QACP,GAAG,EAAE;YACH,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;YACzB,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;YAC3B,SAAS,EAAE;gBACT,OAAO,EAAE,OAAO,EAAE;qBACf,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;qBAC3C,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;qBAC1D,OAAO,EAAE;aACb;SACF;KACF;CACF,CAAC,CAAA;AAEF,eAAe,YAAY,CAAA"}

21
config/session.js Normal file
View File

@@ -0,0 +1,21 @@
import env from '#start/env';
import app from '@adonisjs/core/services/app';
import { defineConfig, stores } from '@adonisjs/session';
const sessionConfig = defineConfig({
enabled: true,
cookieName: 'adonis-session',
clearWithBrowser: false,
age: '2h',
cookie: {
path: '/',
httpOnly: true,
secure: app.inProduction,
sameSite: 'lax',
},
store: env.get('SESSION_DRIVER'),
stores: {
cookie: stores.cookie(),
},
});
export default sessionConfig;
//# sourceMappingURL=session.js.map

1
config/session.js.map Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../config/session.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAA;AAC5B,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAExD,MAAM,aAAa,GAAG,YAAY,CAAC;IACjC,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,gBAAgB;IAM5B,gBAAgB,EAAE,KAAK;IAMvB,GAAG,EAAE,IAAI;IAMT,MAAM,EAAE;QACN,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,YAAY;QACxB,QAAQ,EAAE,KAAK;KAChB;IAOD,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAMhC,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;KACxB;CACF,CAAC,CAAA;AAEF,eAAe,aAAa,CAAA"}

30
config/shield.js Normal file
View File

@@ -0,0 +1,30 @@
import { defineConfig } from '@adonisjs/shield';
const shieldConfig = defineConfig({
csp: {
enabled: false,
directives: {},
reportOnly: false,
},
csrf: {
enabled: true,
exceptRoutes: (ctx) => {
const p = ctx.route?.pattern ?? '';
return p.startsWith('/api') || p.startsWith('/admin');
},
enableXsrfCookie: false,
methods: ['POST', 'PUT', 'PATCH', 'DELETE'],
},
xFrame: {
enabled: true,
action: 'DENY',
},
hsts: {
enabled: true,
maxAge: '180 days',
},
contentTypeSniffing: {
enabled: true,
},
});
export default shieldConfig;
//# sourceMappingURL=shield.js.map

1
config/shield.js.map Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"shield.js","sourceRoot":"","sources":["../../config/shield.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,MAAM,YAAY,GAAG,YAAY,CAAC;IAKhC,GAAG,EAAE;QACH,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,KAAK;KAClB;IAMD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YACpB,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAA;YAClC,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QACvD,CAAC;QACD,gBAAgB,EAAE,KAAK;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;KAC5C;IAMD,MAAM,EAAE;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,MAAM;KACf;IAKD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,UAAU;KACnB;IAMD,mBAAmB,EAAE;QACnB,OAAO,EAAE,IAAI;KACd;CACF,CAAC,CAAA;AAEF,eAAe,YAAY,CAAA"}

9
config/static.js Normal file
View File

@@ -0,0 +1,9 @@
import { defineConfig } from '@adonisjs/static';
const staticServerConfig = defineConfig({
enabled: true,
etag: true,
lastModified: true,
dotFiles: 'ignore',
});
export default staticServerConfig;
//# sourceMappingURL=static.js.map

1
config/static.js.map Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"static.js","sourceRoot":"","sources":["../../config/static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAS/C,MAAM,kBAAkB,GAAG,YAAY,CAAC;IACtC,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAA;AAEF,eAAe,kBAAkB,CAAA"}

11
config/vite.js Normal file
View File

@@ -0,0 +1,11 @@
import { defineConfig } from '@adonisjs/vite';
const viteBackendConfig = defineConfig({
buildDirectory: 'public/assets',
manifestFile: 'public/assets/.vite/manifest.json',
assetsUrl: '/assets',
scriptAttributes: {
defer: true,
},
});
export default viteBackendConfig;
//# sourceMappingURL=vite.js.map

1
config/vite.js.map Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"vite.js","sourceRoot":"","sources":["../../config/vite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,iBAAiB,GAAG,YAAY,CAAC;IAMrC,cAAc,EAAE,eAAe;IAM/B,YAAY,EAAE,mCAAmC;IAMjD,SAAS,EAAE,SAAS;IAEpB,gBAAgB,EAAE;QAChB,KAAK,EAAE,IAAI;KACZ;CACF,CAAC,CAAA;AAEF,eAAe,iBAAiB,CAAA"}