fragment-ts 1.0.21 → 1.0.22

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.
@@ -9,5 +9,6 @@ export declare class InitCommand {
9
9
  private static generateExampleService;
10
10
  private static generateExampleEntity;
11
11
  private static generateAuthFiles;
12
+ private static generateDefaultTest;
12
13
  }
13
14
  //# sourceMappingURL=init.command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;WAe1B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;mBAsF/C,wBAAwB;mBAyCxB,iBAAiB;mBAmGjB,gBAAgB;mBA+BhB,yBAAyB;mBAoBzB,sBAAsB;mBAmBtB,qBAAqB;mBA2BrB,iBAAiB;CA8CvC"}
1
+ {"version":3,"file":"init.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;WAe1B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;mBAsF/C,wBAAwB;mBA6CxB,iBAAiB;mBA8FjB,gBAAgB;mBA+BhB,yBAAyB;mBAoBzB,sBAAsB;mBAmBtB,qBAAqB;mBA2BrB,iBAAiB;mBA+CjB,mBAAmB;CA8BzC"}
@@ -81,7 +81,7 @@ class InitCommand {
81
81
  name: "features",
82
82
  message: "Select features:",
83
83
  choices: [
84
- { name: "Authentication", value: "auth", checked: true },
84
+ { name: "Authentication", value: "auth", checked: false },
85
85
  { name: "Database (TypeORM)", value: "database", checked: true },
86
86
  { name: "AI Integration", value: "ai", checked: false },
87
87
  { name: "Testing", value: "testing", checked: true },
@@ -146,7 +146,7 @@ class InitCommand {
146
146
  dirs.push("src/seeds");
147
147
  }
148
148
  if (config.features.includes("testing")) {
149
- dirs.push("test");
149
+ dirs.push("src/test"); // moved test inside src
150
150
  }
151
151
  for (const dir of dirs) {
152
152
  await fs.ensureDir(path.join(projectPath, dir));
@@ -160,6 +160,9 @@ class InitCommand {
160
160
  if (config.features.includes("auth")) {
161
161
  await this.generateAuthFiles(projectPath);
162
162
  }
163
+ if (config.features.includes("testing")) {
164
+ await this.generateDefaultTest(projectPath);
165
+ }
163
166
  }
164
167
  static async createConfigFiles(projectPath, projectName, features) {
165
168
  const packageJson = {
@@ -177,7 +180,7 @@ class InitCommand {
177
180
  "migrate:revert": "fragment migrate:revert",
178
181
  },
179
182
  dependencies: {
180
- "fragment-ts": "^1.0.21",
183
+ "fragment-ts": "^1.0.22",
181
184
  "reflect-metadata": "^0.1.13",
182
185
  },
183
186
  devDependencies: {
@@ -211,7 +214,6 @@ class InitCommand {
211
214
  });
212
215
  const fragmentConfig = {};
213
216
  if (features.includes("database")) {
214
- // Default SQLite config with env interpolation
215
217
  const isProd = process.env.NODE_ENV === "production";
216
218
  fragmentConfig.database = {
217
219
  type: "sqlite",
@@ -225,43 +227,39 @@ class InitCommand {
225
227
  subscribers: [],
226
228
  };
227
229
  }
228
- // Write fragment.json
229
230
  await fs.writeJSON(path.join(projectPath, "fragment.json"), fragmentConfig, { spaces: 2 });
230
- // .env file with defaults
231
231
  const envContent = `NODE_ENV=development
232
- PORT=3000
233
- JWT_SECRET=${process.env.JWT_SECRET ?? "your-secret-key-change-this"}
234
- ${features.includes("database") ? "DATABASE_FILE=database.sqlite" : ""}
235
- `;
232
+ PORT=3000
233
+ JWT_SECRET=${process.env.JWT_SECRET ?? "your-secret-key-change-this"}
234
+ ${features.includes("database") ? "DATABASE_FILE=database.sqlite" : ""}
235
+ `;
236
236
  await fs.writeFile(path.join(projectPath, ".env"), envContent);
237
- // .gitignore
238
237
  await fs.writeFile(path.join(projectPath, ".gitignore"), "node_modules/\ndist/\n.env\n*.sqlite\n");
239
238
  }
240
- // In the generateMainFile method, update to:
241
239
  static async generateMainFile(projectPath, config) {
242
240
  const content = `import 'reflect-metadata';
243
- import { FragmentApplication } from 'fragment-ts';
244
- import { FragmentWebApplication } from 'fragment-ts';
245
- import { AppController } from './controllers/app.controller';
241
+ import { FragmentApplication } from 'fragment-ts';
242
+ import { FragmentWebApplication } from 'fragment-ts';
243
+ import { AppController } from './controllers/app.controller';
246
244
 
247
- @FragmentApplication({
248
- port: 3000,
249
- autoScan: true
250
- })
251
- class Application {
252
- constructor() {
253
- console.log('Fragment application initialized');
254
- }
245
+ @FragmentApplication({
246
+ port: 3000,
247
+ autoScan: true
248
+ })
249
+ class Application {
250
+ constructor() {
251
+ console.log('Fragment application initialized');
255
252
  }
253
+ }
256
254
 
257
- async function bootstrap() {
258
- console.log('Starting Fragment application...');
259
- const app = new FragmentWebApplication();
260
- await app.bootstrap(Application);
261
- }
255
+ async function bootstrap() {
256
+ console.log('Starting Fragment application...');
257
+ const app = new FragmentWebApplication();
258
+ await app.bootstrap(Application);
259
+ }
262
260
 
263
- bootstrap().catch(console.error);
264
- `;
261
+ bootstrap().catch(console.error);
262
+ `;
265
263
  await fs.writeFile(path.join(projectPath, "src", "main.ts"), content);
266
264
  }
267
265
  static async generateExampleController(projectPath) {
@@ -347,6 +345,34 @@ export class AuthService {
347
345
  await fs.writeFile(path.join(projectPath, "src", "controllers", "auth.controller.ts"), controllerContent);
348
346
  await fs.writeFile(path.join(projectPath, "src", "services", "auth.service.ts"), serviceContent);
349
347
  }
348
+ static async generateDefaultTest(projectPath) {
349
+ const testContent = `import { AppService } from '../services/app.service';
350
+ import { DIContainer } from 'fragment-ts';
351
+
352
+ describe('AppService', () => {
353
+ let service: AppService;
354
+ let container: DIContainer;
355
+
356
+ beforeEach(() => {
357
+ container = DIContainer.getInstance();
358
+ container.reset();
359
+ service = container.resolve(AppService);
360
+ });
361
+
362
+ it('should return welcome message', () => {
363
+ const message = service.getMessage();
364
+
365
+ expect(message).toBe('Welcome to Fragment Framework!');
366
+ expect(message).toBeTruthy();
367
+ expect(message).toContain('Fragment');
368
+ // expect(message).toHaveLength(28);
369
+ });
370
+ });
371
+ `;
372
+ const testDir = path.join(projectPath, "src", "test");
373
+ await fs.ensureDir(testDir);
374
+ await fs.writeFile(path.join(testDir, "app.spec.ts"), testContent);
375
+ }
350
376
  }
351
377
  exports.InitCommand = InitCommand;
352
378
  //# sourceMappingURL=init.command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,14 @@
8
8
  "name": "blog-api",
9
9
  "version": "1.0.0",
10
10
  "dependencies": {
11
- "fragment-ts": "^1.0.1",
11
+ "fragment-ts": "^1.0.21",
12
+ "mysql2": "^3.16.0",
12
13
  "reflect-metadata": "^0.1.13"
13
14
  },
14
15
  "devDependencies": {
15
16
  "@types/node": "^20.10.5",
17
+ "ts-node": "^10.9.2",
18
+ "tsconfig-paths": "^4.2.0",
16
19
  "typescript": "^5.3.3"
17
20
  }
18
21
  },
@@ -20,6 +23,7 @@
20
23
  "version": "0.8.1",
21
24
  "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
22
25
  "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
26
+ "devOptional": true,
23
27
  "license": "MIT",
24
28
  "dependencies": {
25
29
  "@jridgewell/trace-mapping": "0.3.9"
@@ -174,6 +178,7 @@
174
178
  "version": "3.1.2",
175
179
  "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
176
180
  "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
181
+ "devOptional": true,
177
182
  "license": "MIT",
178
183
  "engines": {
179
184
  "node": ">=6.0.0"
@@ -183,12 +188,14 @@
183
188
  "version": "1.5.5",
184
189
  "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
185
190
  "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
191
+ "devOptional": true,
186
192
  "license": "MIT"
187
193
  },
188
194
  "node_modules/@jridgewell/trace-mapping": {
189
195
  "version": "0.3.9",
190
196
  "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
191
197
  "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
198
+ "devOptional": true,
192
199
  "license": "MIT",
193
200
  "dependencies": {
194
201
  "@jridgewell/resolve-uri": "^3.0.3",
@@ -215,24 +222,28 @@
215
222
  "version": "1.0.12",
216
223
  "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz",
217
224
  "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==",
225
+ "devOptional": true,
218
226
  "license": "MIT"
219
227
  },
220
228
  "node_modules/@tsconfig/node12": {
221
229
  "version": "1.0.11",
222
230
  "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
223
231
  "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
232
+ "devOptional": true,
224
233
  "license": "MIT"
225
234
  },
226
235
  "node_modules/@tsconfig/node14": {
227
236
  "version": "1.0.3",
228
237
  "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
229
238
  "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
239
+ "devOptional": true,
230
240
  "license": "MIT"
231
241
  },
232
242
  "node_modules/@tsconfig/node16": {
233
243
  "version": "1.0.4",
234
244
  "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
235
245
  "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
246
+ "devOptional": true,
236
247
  "license": "MIT"
237
248
  },
238
249
  "node_modules/@types/node": {
@@ -298,6 +309,7 @@
298
309
  "version": "8.15.0",
299
310
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
300
311
  "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
312
+ "devOptional": true,
301
313
  "license": "MIT",
302
314
  "bin": {
303
315
  "acorn": "bin/acorn"
@@ -310,6 +322,7 @@
310
322
  "version": "8.3.4",
311
323
  "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
312
324
  "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
325
+ "devOptional": true,
313
326
  "license": "MIT",
314
327
  "dependencies": {
315
328
  "acorn": "^8.11.0"
@@ -404,6 +417,7 @@
404
417
  "version": "4.1.3",
405
418
  "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
406
419
  "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
420
+ "devOptional": true,
407
421
  "license": "MIT"
408
422
  },
409
423
  "node_modules/array-flatten": {
@@ -439,6 +453,15 @@
439
453
  "url": "https://github.com/sponsors/ljharb"
440
454
  }
441
455
  },
456
+ "node_modules/aws-ssl-profiles": {
457
+ "version": "1.1.2",
458
+ "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz",
459
+ "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==",
460
+ "license": "MIT",
461
+ "engines": {
462
+ "node": ">= 6.0.0"
463
+ }
464
+ },
442
465
  "node_modules/axios": {
443
466
  "version": "1.13.2",
444
467
  "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz",
@@ -894,6 +917,7 @@
894
917
  "version": "1.1.1",
895
918
  "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
896
919
  "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
920
+ "devOptional": true,
897
921
  "license": "MIT"
898
922
  },
899
923
  "node_modules/cross-spawn": {
@@ -977,6 +1001,15 @@
977
1001
  "node": ">=0.4.0"
978
1002
  }
979
1003
  },
1004
+ "node_modules/denque": {
1005
+ "version": "2.1.0",
1006
+ "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
1007
+ "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
1008
+ "license": "Apache-2.0",
1009
+ "engines": {
1010
+ "node": ">=0.10"
1011
+ }
1012
+ },
980
1013
  "node_modules/depd": {
981
1014
  "version": "2.0.0",
982
1015
  "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -1000,6 +1033,7 @@
1000
1033
  "version": "4.0.2",
1001
1034
  "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
1002
1035
  "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
1036
+ "devOptional": true,
1003
1037
  "license": "BSD-3-Clause",
1004
1038
  "engines": {
1005
1039
  "node": ">=0.3.1"
@@ -1392,9 +1426,9 @@
1392
1426
  }
1393
1427
  },
1394
1428
  "node_modules/fragment-ts": {
1395
- "version": "1.0.1",
1396
- "resolved": "https://registry.npmjs.org/fragment-ts/-/fragment-ts-1.0.1.tgz",
1397
- "integrity": "sha512-s1dc7vYySQboS5Pq+wmuTpXDe8y8Pj1CDPXy2xdTZSKTi9Dau2Ql3XBIyo4u9ReEFDKB53jTdet2qTS16uDg8Q==",
1429
+ "version": "1.0.21",
1430
+ "resolved": "https://registry.npmjs.org/fragment-ts/-/fragment-ts-1.0.21.tgz",
1431
+ "integrity": "sha512-RrKnnwCYmNzc0Ihp7Ik8sswAXbJvcZSEtLWl+RW/rXBW856Xj88blNP6OsB93bD9v4EeMz8a680e5lZZOwG25g==",
1398
1432
  "license": "MIT",
1399
1433
  "dependencies": {
1400
1434
  "axios": "^1.6.2",
@@ -1406,7 +1440,7 @@
1406
1440
  "commander": "^11.1.0",
1407
1441
  "compression": "^1.7.4",
1408
1442
  "cors": "^2.8.5",
1409
- "dotenv": "^16.3.1",
1443
+ "dotenv": "^16.6.1",
1410
1444
  "ejs": "^3.1.9",
1411
1445
  "express": "^4.18.2",
1412
1446
  "express-rate-limit": "^7.1.5",
@@ -1419,7 +1453,6 @@
1419
1453
  "openai": "^4.20.1",
1420
1454
  "ora": "^5.4.1",
1421
1455
  "reflect-metadata": "^0.1.13",
1422
- "ts-node": "^10.9.2",
1423
1456
  "typeorm": "^0.3.17"
1424
1457
  },
1425
1458
  "bin": {
@@ -1476,6 +1509,15 @@
1476
1509
  "url": "https://github.com/sponsors/ljharb"
1477
1510
  }
1478
1511
  },
1512
+ "node_modules/generate-function": {
1513
+ "version": "2.3.1",
1514
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
1515
+ "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==",
1516
+ "license": "MIT",
1517
+ "dependencies": {
1518
+ "is-property": "^1.0.2"
1519
+ }
1520
+ },
1479
1521
  "node_modules/get-caller-file": {
1480
1522
  "version": "2.0.5",
1481
1523
  "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -1812,6 +1854,12 @@
1812
1854
  "node": ">=0.12.0"
1813
1855
  }
1814
1856
  },
1857
+ "node_modules/is-property": {
1858
+ "version": "1.0.2",
1859
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
1860
+ "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==",
1861
+ "license": "MIT"
1862
+ },
1815
1863
  "node_modules/is-typed-array": {
1816
1864
  "version": "1.1.15",
1817
1865
  "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
@@ -1883,6 +1931,19 @@
1883
1931
  "node": ">=10"
1884
1932
  }
1885
1933
  },
1934
+ "node_modules/json5": {
1935
+ "version": "2.2.3",
1936
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
1937
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
1938
+ "dev": true,
1939
+ "license": "MIT",
1940
+ "bin": {
1941
+ "json5": "lib/cli.js"
1942
+ },
1943
+ "engines": {
1944
+ "node": ">=6"
1945
+ }
1946
+ },
1886
1947
  "node_modules/jsonfile": {
1887
1948
  "version": "6.2.0",
1888
1949
  "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz",
@@ -2008,16 +2069,38 @@
2008
2069
  "url": "https://github.com/sponsors/sindresorhus"
2009
2070
  }
2010
2071
  },
2072
+ "node_modules/long": {
2073
+ "version": "5.3.2",
2074
+ "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
2075
+ "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
2076
+ "license": "Apache-2.0"
2077
+ },
2011
2078
  "node_modules/lru-cache": {
2012
2079
  "version": "10.4.3",
2013
2080
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
2014
2081
  "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
2015
2082
  "license": "ISC"
2016
2083
  },
2084
+ "node_modules/lru.min": {
2085
+ "version": "1.1.3",
2086
+ "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.3.tgz",
2087
+ "integrity": "sha512-Lkk/vx6ak3rYkRR0Nhu4lFUT2VDnQSxBe8Hbl7f36358p6ow8Bnvr8lrLt98H8J1aGxfhbX4Fs5tYg2+FTwr5Q==",
2088
+ "license": "MIT",
2089
+ "engines": {
2090
+ "bun": ">=1.0.0",
2091
+ "deno": ">=1.30.0",
2092
+ "node": ">=8.0.0"
2093
+ },
2094
+ "funding": {
2095
+ "type": "github",
2096
+ "url": "https://github.com/sponsors/wellwelwel"
2097
+ }
2098
+ },
2017
2099
  "node_modules/make-error": {
2018
2100
  "version": "1.3.6",
2019
2101
  "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
2020
2102
  "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
2103
+ "devOptional": true,
2021
2104
  "license": "ISC"
2022
2105
  },
2023
2106
  "node_modules/math-intrinsics": {
@@ -2122,6 +2205,16 @@
2122
2205
  "url": "https://github.com/sponsors/isaacs"
2123
2206
  }
2124
2207
  },
2208
+ "node_modules/minimist": {
2209
+ "version": "1.2.8",
2210
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
2211
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
2212
+ "dev": true,
2213
+ "license": "MIT",
2214
+ "funding": {
2215
+ "url": "https://github.com/sponsors/ljharb"
2216
+ }
2217
+ },
2125
2218
  "node_modules/minipass": {
2126
2219
  "version": "7.1.2",
2127
2220
  "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
@@ -2146,6 +2239,54 @@
2146
2239
  "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
2147
2240
  }
2148
2241
  },
2242
+ "node_modules/mysql2": {
2243
+ "version": "3.16.0",
2244
+ "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.16.0.tgz",
2245
+ "integrity": "sha512-AEGW7QLLSuSnjCS4pk3EIqOmogegmze9h8EyrndavUQnIUcfkVal/sK7QznE+a3bc6rzPbAiui9Jcb+96tPwYA==",
2246
+ "license": "MIT",
2247
+ "dependencies": {
2248
+ "aws-ssl-profiles": "^1.1.1",
2249
+ "denque": "^2.1.0",
2250
+ "generate-function": "^2.3.1",
2251
+ "iconv-lite": "^0.7.0",
2252
+ "long": "^5.2.1",
2253
+ "lru.min": "^1.0.0",
2254
+ "named-placeholders": "^1.1.3",
2255
+ "seq-queue": "^0.0.5",
2256
+ "sqlstring": "^2.3.2"
2257
+ },
2258
+ "engines": {
2259
+ "node": ">= 8.0"
2260
+ }
2261
+ },
2262
+ "node_modules/mysql2/node_modules/iconv-lite": {
2263
+ "version": "0.7.1",
2264
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.1.tgz",
2265
+ "integrity": "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==",
2266
+ "license": "MIT",
2267
+ "dependencies": {
2268
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
2269
+ },
2270
+ "engines": {
2271
+ "node": ">=0.10.0"
2272
+ },
2273
+ "funding": {
2274
+ "type": "opencollective",
2275
+ "url": "https://opencollective.com/express"
2276
+ }
2277
+ },
2278
+ "node_modules/named-placeholders": {
2279
+ "version": "1.1.6",
2280
+ "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.6.tgz",
2281
+ "integrity": "sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==",
2282
+ "license": "MIT",
2283
+ "dependencies": {
2284
+ "lru.min": "^1.1.0"
2285
+ },
2286
+ "engines": {
2287
+ "node": ">=8.0.0"
2288
+ }
2289
+ },
2149
2290
  "node_modules/negotiator": {
2150
2291
  "version": "0.6.4",
2151
2292
  "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
@@ -2606,6 +2747,11 @@
2606
2747
  "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
2607
2748
  "license": "MIT"
2608
2749
  },
2750
+ "node_modules/seq-queue": {
2751
+ "version": "0.0.5",
2752
+ "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz",
2753
+ "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q=="
2754
+ },
2609
2755
  "node_modules/serve-static": {
2610
2756
  "version": "1.16.3",
2611
2757
  "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
@@ -2785,6 +2931,15 @@
2785
2931
  "node": ">=14"
2786
2932
  }
2787
2933
  },
2934
+ "node_modules/sqlstring": {
2935
+ "version": "2.3.3",
2936
+ "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz",
2937
+ "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==",
2938
+ "license": "MIT",
2939
+ "engines": {
2940
+ "node": ">= 0.6"
2941
+ }
2942
+ },
2788
2943
  "node_modules/statuses": {
2789
2944
  "version": "2.0.2",
2790
2945
  "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
@@ -2857,6 +3012,16 @@
2857
3012
  "node": ">=8"
2858
3013
  }
2859
3014
  },
3015
+ "node_modules/strip-bom": {
3016
+ "version": "3.0.0",
3017
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
3018
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
3019
+ "dev": true,
3020
+ "license": "MIT",
3021
+ "engines": {
3022
+ "node": ">=4"
3023
+ }
3024
+ },
2860
3025
  "node_modules/supports-color": {
2861
3026
  "version": "7.2.0",
2862
3027
  "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -2914,6 +3079,7 @@
2914
3079
  "version": "10.9.2",
2915
3080
  "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
2916
3081
  "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
3082
+ "devOptional": true,
2917
3083
  "license": "MIT",
2918
3084
  "dependencies": {
2919
3085
  "@cspotcode/source-map-support": "^0.8.0",
@@ -2953,6 +3119,21 @@
2953
3119
  }
2954
3120
  }
2955
3121
  },
3122
+ "node_modules/tsconfig-paths": {
3123
+ "version": "4.2.0",
3124
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
3125
+ "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
3126
+ "dev": true,
3127
+ "license": "MIT",
3128
+ "dependencies": {
3129
+ "json5": "^2.2.2",
3130
+ "minimist": "^1.2.6",
3131
+ "strip-bom": "^3.0.0"
3132
+ },
3133
+ "engines": {
3134
+ "node": ">=6"
3135
+ }
3136
+ },
2956
3137
  "node_modules/tslib": {
2957
3138
  "version": "2.8.1",
2958
3139
  "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
@@ -3157,6 +3338,7 @@
3157
3338
  "version": "5.9.3",
3158
3339
  "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
3159
3340
  "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
3341
+ "devOptional": true,
3160
3342
  "license": "Apache-2.0",
3161
3343
  "bin": {
3162
3344
  "tsc": "bin/tsc",
@@ -3222,6 +3404,7 @@
3222
3404
  "version": "3.0.1",
3223
3405
  "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
3224
3406
  "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
3407
+ "devOptional": true,
3225
3408
  "license": "MIT"
3226
3409
  },
3227
3410
  "node_modules/validator": {
@@ -3384,6 +3567,7 @@
3384
3567
  "version": "3.1.1",
3385
3568
  "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
3386
3569
  "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
3570
+ "devOptional": true,
3387
3571
  "license": "MIT",
3388
3572
  "engines": {
3389
3573
  "node": ">=6"
@@ -9,11 +9,14 @@
9
9
  "test": "fragment test"
10
10
  },
11
11
  "dependencies": {
12
- "fragment-ts": "^1.0.1",
12
+ "fragment-ts": "^1.0.21",
13
+ "mysql2": "^3.16.0",
13
14
  "reflect-metadata": "^0.1.13"
14
15
  },
15
16
  "devDependencies": {
16
- "typescript": "^5.3.3",
17
- "@types/node": "^20.10.5"
17
+ "@types/node": "^20.10.5",
18
+ "ts-node": "^10.9.2",
19
+ "tsconfig-paths": "^4.2.0",
20
+ "typescript": "^5.3.3"
18
21
  }
19
22
  }
@@ -1,8 +1,8 @@
1
- import { Service } from 'fragment-ts';
1
+ import { Service } from "fragment-ts";
2
2
 
3
3
  @Service()
4
4
  export class AppService {
5
5
  getMessage(): string {
6
- return 'Welcome to Fragment Framework!';
6
+ return "Welcome to Fragment Framework!";
7
7
  }
8
8
  }
@@ -0,0 +1,23 @@
1
+ import "reflect-metadata";
2
+ import { describe, it, beforeEach, expect, DIContainer } from "fragment-ts";
3
+ import { AppService } from "../services/app.service";
4
+
5
+ describe("AppService", () => {
6
+ let service: AppService;
7
+ let container: DIContainer;
8
+
9
+ beforeEach(() => {
10
+ container = DIContainer.getInstance();
11
+ container.reset();
12
+ service = container.resolve(AppService);
13
+ });
14
+
15
+ it("should return welcome message", () => {
16
+ const message = service.getMessage();
17
+
18
+ expect(message).toBe("Welcome to Fragment Framework!");
19
+ expect(message).toBeTruthy();
20
+ expect(message).toContain("Fragment");
21
+ // expect(message).toHaveLength(28);
22
+ });
23
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fragment-ts",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "description": "Spring Boot-style framework for TypeScript with Express and TypeORM",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -51,7 +51,7 @@ export class InitCommand {
51
51
  name: "features",
52
52
  message: "Select features:",
53
53
  choices: [
54
- { name: "Authentication", value: "auth", checked: true },
54
+ { name: "Authentication", value: "auth", checked: false },
55
55
  { name: "Database (TypeORM)", value: "database", checked: true },
56
56
  { name: "AI Integration", value: "ai", checked: false },
57
57
  { name: "Testing", value: "testing", checked: true },
@@ -129,7 +129,7 @@ export class InitCommand {
129
129
  }
130
130
 
131
131
  if (config.features.includes("testing")) {
132
- dirs.push("test");
132
+ dirs.push("src/test"); // moved test inside src
133
133
  }
134
134
 
135
135
  for (const dir of dirs) {
@@ -147,6 +147,10 @@ export class InitCommand {
147
147
  if (config.features.includes("auth")) {
148
148
  await this.generateAuthFiles(projectPath);
149
149
  }
150
+
151
+ if (config.features.includes("testing")) {
152
+ await this.generateDefaultTest(projectPath);
153
+ }
150
154
  }
151
155
 
152
156
  private static async createConfigFiles(
@@ -169,7 +173,7 @@ export class InitCommand {
169
173
  "migrate:revert": "fragment migrate:revert",
170
174
  },
171
175
  dependencies: {
172
- "fragment-ts": "^1.0.21",
176
+ "fragment-ts": "^1.0.22",
173
177
  "reflect-metadata": "^0.1.13",
174
178
  },
175
179
  devDependencies: {
@@ -208,7 +212,6 @@ export class InitCommand {
208
212
  const fragmentConfig: any = {};
209
213
 
210
214
  if (features.includes("database")) {
211
- // Default SQLite config with env interpolation
212
215
  const isProd = process.env.NODE_ENV === "production";
213
216
 
214
217
  fragmentConfig.database = {
@@ -224,57 +227,53 @@ export class InitCommand {
224
227
  };
225
228
  }
226
229
 
227
- // Write fragment.json
228
230
  await fs.writeJSON(
229
231
  path.join(projectPath, "fragment.json"),
230
232
  fragmentConfig,
231
233
  { spaces: 2 },
232
234
  );
233
235
 
234
- // .env file with defaults
235
236
  const envContent = `NODE_ENV=development
236
- PORT=3000
237
- JWT_SECRET=${process.env.JWT_SECRET ?? "your-secret-key-change-this"}
238
- ${features.includes("database") ? "DATABASE_FILE=database.sqlite" : ""}
239
- `;
237
+ PORT=3000
238
+ JWT_SECRET=${process.env.JWT_SECRET ?? "your-secret-key-change-this"}
239
+ ${features.includes("database") ? "DATABASE_FILE=database.sqlite" : ""}
240
+ `;
240
241
 
241
242
  await fs.writeFile(path.join(projectPath, ".env"), envContent);
242
243
 
243
- // .gitignore
244
244
  await fs.writeFile(
245
245
  path.join(projectPath, ".gitignore"),
246
246
  "node_modules/\ndist/\n.env\n*.sqlite\n",
247
247
  );
248
248
  }
249
249
 
250
- // In the generateMainFile method, update to:
251
250
  private static async generateMainFile(
252
251
  projectPath: string,
253
252
  config: any,
254
253
  ): Promise<void> {
255
254
  const content = `import 'reflect-metadata';
256
- import { FragmentApplication } from 'fragment-ts';
257
- import { FragmentWebApplication } from 'fragment-ts';
258
- import { AppController } from './controllers/app.controller';
259
-
260
- @FragmentApplication({
261
- port: 3000,
262
- autoScan: true
263
- })
264
- class Application {
265
- constructor() {
266
- console.log('Fragment application initialized');
267
- }
255
+ import { FragmentApplication } from 'fragment-ts';
256
+ import { FragmentWebApplication } from 'fragment-ts';
257
+ import { AppController } from './controllers/app.controller';
258
+
259
+ @FragmentApplication({
260
+ port: 3000,
261
+ autoScan: true
262
+ })
263
+ class Application {
264
+ constructor() {
265
+ console.log('Fragment application initialized');
268
266
  }
267
+ }
269
268
 
270
- async function bootstrap() {
271
- console.log('Starting Fragment application...');
272
- const app = new FragmentWebApplication();
273
- await app.bootstrap(Application);
274
- }
269
+ async function bootstrap() {
270
+ console.log('Starting Fragment application...');
271
+ const app = new FragmentWebApplication();
272
+ await app.bootstrap(Application);
273
+ }
275
274
 
276
- bootstrap().catch(console.error);
277
- `;
275
+ bootstrap().catch(console.error);
276
+ `;
278
277
 
279
278
  await fs.writeFile(path.join(projectPath, "src", "main.ts"), content);
280
279
  }
@@ -391,4 +390,35 @@ export class AuthService {
391
390
  serviceContent,
392
391
  );
393
392
  }
393
+
394
+ private static async generateDefaultTest(projectPath: string) {
395
+ const testContent = `import { AppService } from '../services/app.service';
396
+ import { DIContainer } from 'fragment-ts';
397
+
398
+ describe('AppService', () => {
399
+ let service: AppService;
400
+ let container: DIContainer;
401
+
402
+ beforeEach(() => {
403
+ container = DIContainer.getInstance();
404
+ container.reset();
405
+ service = container.resolve(AppService);
406
+ });
407
+
408
+ it('should return welcome message', () => {
409
+ const message = service.getMessage();
410
+
411
+ expect(message).toBe('Welcome to Fragment Framework!');
412
+ expect(message).toBeTruthy();
413
+ expect(message).toContain('Fragment');
414
+ // expect(message).toHaveLength(28);
415
+ });
416
+ });
417
+ `;
418
+
419
+ const testDir = path.join(projectPath, "src", "test");
420
+ await fs.ensureDir(testDir);
421
+
422
+ await fs.writeFile(path.join(testDir, "app.spec.ts"), testContent);
423
+ }
394
424
  }