arikajs 0.10.2 → 0.10.4

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.
Files changed (76) hide show
  1. package/dist/Application.d.ts +1 -1
  2. package/dist/Application.d.ts.map +1 -1
  3. package/dist/Application.js +15 -1
  4. package/dist/Application.js.map +1 -1
  5. package/dist/facades/Schedule.d.ts +8 -0
  6. package/dist/facades/Schedule.d.ts.map +1 -0
  7. package/dist/facades/Schedule.js +25 -0
  8. package/dist/facades/Schedule.js.map +1 -0
  9. package/dist/helpers.d.ts +17 -1
  10. package/dist/helpers.d.ts.map +1 -1
  11. package/dist/helpers.js +44 -2
  12. package/dist/helpers.js.map +1 -1
  13. package/dist/http/Handler.d.ts +4 -0
  14. package/dist/http/Handler.d.ts.map +1 -1
  15. package/dist/http/Handler.js +348 -1
  16. package/dist/http/Handler.js.map +1 -1
  17. package/dist/http/Kernel.d.ts.map +1 -1
  18. package/dist/http/Kernel.js +15 -13
  19. package/dist/http/Kernel.js.map +1 -1
  20. package/dist/http/Middleware/ViewMiddleware.d.ts.map +1 -1
  21. package/dist/http/Middleware/ViewMiddleware.js +31 -5
  22. package/dist/http/Middleware/ViewMiddleware.js.map +1 -1
  23. package/dist/index.d.ts +9 -3
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +19 -3
  26. package/dist/index.js.map +1 -1
  27. package/dist/providers/FrameworkServiceProvider.d.ts.map +1 -1
  28. package/dist/providers/FrameworkServiceProvider.js +2 -0
  29. package/dist/providers/FrameworkServiceProvider.js.map +1 -1
  30. package/dist/providers/QueueServiceProvider.d.ts.map +1 -1
  31. package/dist/providers/QueueServiceProvider.js +2 -7
  32. package/dist/providers/QueueServiceProvider.js.map +1 -1
  33. package/dist/providers/StorageServiceProvider.d.ts +12 -0
  34. package/dist/providers/StorageServiceProvider.d.ts.map +1 -0
  35. package/dist/providers/StorageServiceProvider.js +41 -0
  36. package/dist/providers/StorageServiceProvider.js.map +1 -0
  37. package/dist/providers/ViewServiceProvider.d.ts.map +1 -1
  38. package/dist/providers/ViewServiceProvider.js +4 -0
  39. package/dist/providers/ViewServiceProvider.js.map +1 -1
  40. package/package.json +27 -22
  41. package/CHANGELOG.md +0 -124
  42. package/src/Application.ts +0 -236
  43. package/src/Contracts/Application.ts +0 -24
  44. package/src/createApp.ts +0 -9
  45. package/src/helpers.ts +0 -106
  46. package/src/http/Handler.ts +0 -184
  47. package/src/http/Kernel.ts +0 -108
  48. package/src/http/Middleware/RequestLoggingMiddleware.ts +0 -17
  49. package/src/http/Middleware/ServeStaticMiddleware.ts +0 -34
  50. package/src/http/Middleware/ValidateRequestMiddleware.ts +0 -35
  51. package/src/http/Middleware/VerifyCsrfToken.ts +0 -101
  52. package/src/http/Middleware/ViewMiddleware.ts +0 -24
  53. package/src/http/views/errors/401.ark.html +0 -57
  54. package/src/http/views/errors/403.ark.html +0 -54
  55. package/src/http/views/errors/404.ark.html +0 -179
  56. package/src/http/views/errors/419.ark.html +0 -54
  57. package/src/http/views/errors/429.ark.html +0 -54
  58. package/src/http/views/errors/500.ark.html +0 -54
  59. package/src/http/views/errors/503.ark.html +0 -49
  60. package/src/index.ts +0 -75
  61. package/src/providers/AuthServiceProvider.ts +0 -28
  62. package/src/providers/CacheServiceProvider.ts +0 -29
  63. package/src/providers/DatabaseServiceProvider.ts +0 -46
  64. package/src/providers/EventsServiceProvider.ts +0 -19
  65. package/src/providers/FrameworkServiceProvider.ts +0 -44
  66. package/src/providers/HttpServiceProvider.ts +0 -37
  67. package/src/providers/LoggingServiceProvider.ts +0 -17
  68. package/src/providers/MailServiceProvider.ts +0 -33
  69. package/src/providers/QueueServiceProvider.ts +0 -36
  70. package/src/providers/SchedulerServiceProvider.ts +0 -18
  71. package/src/providers/SessionServiceProvider.ts +0 -68
  72. package/src/providers/TranslationServiceProvider.ts +0 -51
  73. package/src/providers/ValidationServiceProvider.ts +0 -24
  74. package/src/providers/ViewServiceProvider.ts +0 -46
  75. package/tests/Framework.test.ts +0 -140
  76. package/tsconfig.json +0 -25
@@ -2,7 +2,7 @@ import { Application as FoundationApplication } from '@arikajs/foundation';
2
2
  import { Router } from '@arikajs/router';
3
3
  import { Application as ApplicationContract } from './Contracts/Application';
4
4
  export declare class Application extends FoundationApplication implements ApplicationContract {
5
- static readonly VERSION = "0.0.5";
5
+ static get VERSION(): string;
6
6
  protected router: Router;
7
7
  protected server?: any;
8
8
  protected isTerminating: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAS,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG7E,qBAAa,WAAY,SAAQ,qBAAsB,YAAW,mBAAmB;IACjF,gBAAuB,OAAO,WAAW;IAEzC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IACvB,SAAS,CAAC,aAAa,EAAE,OAAO,CAAS;gBAE7B,QAAQ,GAAE,MAAsB;IAc/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,OAAO,IAAI,MAAM;IAIxB;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAIrC;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAItC;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAI9B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAIvC;;OAEG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAIjC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAIlC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAI1D;;OAEG;IACU,MAAM,CAAC,IAAI,GAAE,MAAa;IA4BvC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM;IAgBpC;;OAEG;IACI,WAAW,KAmBN,KAAK,GAAG,EAAE,KAAK,GAAG;IAwB9B;;OAEG;IACU,SAAS;IAuDtB;;OAEG;IACI,SAAS,IAAI,MAAM;CAG7B"}
1
+ {"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAS,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG7E,qBAAa,WAAY,SAAQ,qBAAsB,YAAW,mBAAmB;IACjF,WAAkB,OAAO,IAAI,MAAM,CAYlC;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IACvB,SAAS,CAAC,aAAa,EAAE,OAAO,CAAS;gBAE7B,QAAQ,GAAE,MAAsB;IAc/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,OAAO,IAAI,MAAM;IAIxB;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAIrC;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAItC;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAI9B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAIvC;;OAEG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAIjC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAIlC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAI1D;;OAEG;IACU,MAAM,CAAC,IAAI,GAAE,MAAa;IA4BvC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM;IAgBpC;;OAEG;IACI,WAAW,KAmBN,KAAK,GAAG,EAAE,KAAK,GAAG;IAwB9B;;OAEG;IACU,SAAS;IAuDtB;;OAEG;IACI,SAAS,IAAI,MAAM;CAG7B"}
@@ -40,6 +40,21 @@ const FrameworkServiceProvider_1 = require("./providers/FrameworkServiceProvider
40
40
  const logging_1 = require("@arikajs/logging");
41
41
  const helpers_1 = require("./helpers");
42
42
  class Application extends foundation_1.Application {
43
+ static get VERSION() {
44
+ try {
45
+ // Find the version from the local package.json
46
+ return require('../package.json').version;
47
+ }
48
+ catch (e) {
49
+ try {
50
+ // Fallback if running in a different environment
51
+ return require('../../package.json').version;
52
+ }
53
+ catch (e) {
54
+ return 'unknown';
55
+ }
56
+ }
57
+ }
43
58
  constructor(basePath = process.cwd()) {
44
59
  super(basePath);
45
60
  this.isTerminating = false;
@@ -228,5 +243,4 @@ class Application extends foundation_1.Application {
228
243
  }
229
244
  }
230
245
  exports.Application = Application;
231
- Application.VERSION = '0.0.5';
232
246
  //# sourceMappingURL=Application.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Schedule as BaseSchedule } from '@arikajs/scheduler';
2
+ /**
3
+ * The amazing Laravel-like static Schedule Facade.
4
+ * This completely eliminates the need for developers to manually resolve
5
+ * the Scheduler from the container or wrap their events in `.define()`!
6
+ */
7
+ export declare const Schedule: BaseSchedule;
8
+ //# sourceMappingURL=Schedule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schedule.d.ts","sourceRoot":"","sources":["../../src/facades/Schedule.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,QAAQ,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,cAiBnB,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Schedule = void 0;
4
+ const helpers_js_1 = require("../helpers.js");
5
+ const scheduler_1 = require("@arikajs/scheduler");
6
+ /**
7
+ * The amazing Laravel-like static Schedule Facade.
8
+ * This completely eliminates the need for developers to manually resolve
9
+ * the Scheduler from the container or wrap their events in `.define()`!
10
+ */
11
+ exports.Schedule = new Proxy({}, {
12
+ get(target, prop) {
13
+ // Automatically inject and resolve the underlying Scheduler singleton on demand
14
+ const scheduler = (0, helpers_js_1.app)().make(scheduler_1.Scheduler);
15
+ // Expose the raw schedule builder instance
16
+ const underlyingSchedule = scheduler.schedule;
17
+ const value = underlyingSchedule[prop];
18
+ // If it's a builder method (like .call() or .command()), bind it perfectly
19
+ if (typeof value === 'function') {
20
+ return value.bind(underlyingSchedule);
21
+ }
22
+ return value;
23
+ }
24
+ });
25
+ //# sourceMappingURL=Schedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schedule.js","sourceRoot":"","sources":["../../src/facades/Schedule.ts"],"names":[],"mappings":";;;AAAA,8CAAoC;AACpC,kDAAyE;AAEzE;;;;GAIG;AACU,QAAA,QAAQ,GAAG,IAAI,KAAK,CAAC,EAAkB,EAAE;IAClD,GAAG,CAAC,MAAM,EAAE,IAAI;QACZ,gFAAgF;QAChF,MAAM,SAAS,GAAG,IAAA,gBAAG,GAAE,CAAC,IAAI,CAAC,qBAAS,CAAc,CAAC;QAErD,2CAA2C;QAC3C,MAAM,kBAAkB,GAAI,SAAiB,CAAC,QAAwB,CAAC;QAEvE,MAAM,KAAK,GAAI,kBAA0B,CAAC,IAAI,CAAC,CAAC;QAEhD,2EAA2E;QAC3E,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAC,CAAC"}
package/dist/helpers.d.ts CHANGED
@@ -35,13 +35,29 @@ export declare function route(name: string, params?: any): string;
35
35
  export declare function lang(key: string, replace?: Record<string, any>, locale?: string | null): string;
36
36
  export declare const trans: typeof lang;
37
37
  export declare const __: typeof lang;
38
+ /**
39
+ * Get the current request instance.
40
+ */
41
+ export declare function request(): any;
42
+ /**
43
+ * Get the current auth context or manager.
44
+ */
45
+ export declare function auth(): any;
38
46
  /**
39
47
  * Render a view template or get the view engine.
40
48
  */
41
- export declare function view(template?: string, data?: any): any;
49
+ export declare function view(template?: string, data?: any): Promise<any>;
42
50
  export declare namespace view {
43
51
  var render: (template: string, data?: any) => any;
44
52
  var share: (key: string, value: any) => any;
45
53
  var composer: (template: string, callback: any) => any;
46
54
  }
55
+ /**
56
+ * Create a new Carbon instance for date manipulation.
57
+ */
58
+ export declare function carbon(date?: any): any;
59
+ /**
60
+ * Format the given date.
61
+ */
62
+ export declare function date(date?: any, format?: string): string;
47
63
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAW5C,wBAAgB,MAAM,CAAC,GAAG,EAAE,WAAW,QAEtC;AAED,wBAAgB,GAAG,IAAI,WAAW,CAKjC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,GAAE,CAAe,GAAG,CAAC,CAI9E;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAE7D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,QAEtD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,QAEvD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,QAEzD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,QAEvD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,GAAQ,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,MAAM,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM,CAEzG;AAGD,eAAO,MAAM,KAAK,aAAO,CAAC;AAC1B,eAAO,MAAM,EAAE,aAAO,CAAC;AAEvB;;GAEG;AACH,wBAAgB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,GAAG,GAAG,CAI3D;yBAJe,IAAI;2BAOK,MAAM,SAAQ,GAAG;qBAIvB,MAAM,SAAS,GAAG;6BAIV,MAAM,YAAY,GAAG"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAY5C,wBAAgB,MAAM,CAAC,GAAG,EAAE,WAAW,QAEtC;AAED,wBAAgB,GAAG,IAAI,WAAW,CAKjC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,GAAE,CAAe,GAAG,CAAC,CAI9E;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAE7D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,QAEtD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,QAEvD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,QAEzD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,QAEvD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,GAAQ,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,MAAM,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM,CAEzG;AAGD,eAAO,MAAM,KAAK,aAAO,CAAC;AAC1B,eAAO,MAAM,EAAE,aAAO,CAAC;AAEvB;;GAEG;AACH,wBAAgB,OAAO,IAAI,GAAG,CAE7B;AAED;;GAEG;AACH,wBAAgB,IAAI,IAAI,GAAG,CAM1B;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAe1E;yBAfqB,IAAI;2BAgCD,MAAM,SAAQ,GAAG;qBAIvB,MAAM,SAAS,GAAG;6BAIV,MAAM,YAAY,GAAG;;AAvBhD;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAEtC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,SAAU,GAAG,MAAM,CAEzD"}
package/dist/helpers.js CHANGED
@@ -11,10 +11,15 @@ exports.warning = warning;
11
11
  exports.debug = debug;
12
12
  exports.route = route;
13
13
  exports.lang = lang;
14
+ exports.request = request;
15
+ exports.auth = auth;
14
16
  exports.view = view;
17
+ exports.carbon = carbon;
18
+ exports.date = date;
15
19
  const logging_1 = require("@arikajs/logging");
16
20
  const localization_1 = require("@arikajs/localization");
17
21
  const config_1 = require("@arikajs/config");
22
+ const carbon_1 = require("@arikajs/carbon");
18
23
  /**
19
24
  * Get the application instance.
20
25
  */
@@ -82,14 +87,51 @@ function lang(key, replace = {}, locale = null) {
82
87
  // Alias for common patterns
83
88
  exports.trans = lang;
84
89
  exports.__ = lang;
90
+ /**
91
+ * Get the current request instance.
92
+ */
93
+ function request() {
94
+ return app().currentRequest;
95
+ }
96
+ /**
97
+ * Get the current auth context or manager.
98
+ */
99
+ function auth() {
100
+ const req = request();
101
+ if (req && req.auth) {
102
+ return req.auth;
103
+ }
104
+ return app().make('auth');
105
+ }
85
106
  /**
86
107
  * Render a view template or get the view engine.
87
108
  */
88
- function view(template, data = {}) {
109
+ async function view(template, data = {}) {
110
+ const req = request();
111
+ // 1. If we are in a request context and req.view.render exists, use it!
112
+ // This is the preferred way as it handles session errors, CSRF, etc. correctly
113
+ if (req && req.view && typeof req.view.render === 'function') {
114
+ if (template === undefined)
115
+ return req.view;
116
+ return await req.view.render(template, data);
117
+ }
118
+ // 2. Fallback to global view engine
89
119
  const engine = app().make('view');
90
120
  if (template === undefined)
91
121
  return engine;
92
- return engine.render(template, data);
122
+ return await engine.render(template, data);
123
+ }
124
+ /**
125
+ * Create a new Carbon instance for date manipulation.
126
+ */
127
+ function carbon(date) {
128
+ return (0, carbon_1.carbon)(date);
129
+ }
130
+ /**
131
+ * Format the given date.
132
+ */
133
+ function date(date, format = 'Y-m-d') {
134
+ return carbon(date).format(format);
93
135
  }
94
136
  // Add properties to support view.render() and view.share() as seen in the README
95
137
  view.render = (template, data = {}) => {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,10 @@ export declare class Handler {
33
33
  * Override in the application Handler to show custom error views.
34
34
  */
35
35
  protected renderForBrowser(request: Request, status: number, error: any, response: Response): Promise<Response>;
36
+ /**
37
+ * Render a pretty stack trace for development mode.
38
+ */
39
+ protected renderStackTrace(error: any, status: number): Promise<string>;
36
40
  /**
37
41
  * Set the exceptions that should not be reported.
38
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../src/http/Handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AAGjE,qBAAa,OAAO;IAChB;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,CAAM;IAEjC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAa;IAE1G;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAU/B;;OAEG;IACU,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkDxF;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI3C;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAQrD;;;OAGG;cACa,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyCrH;;OAEG;IACI,oBAAoB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAKpD;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI;IAKrG;;OAEG;IACI,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI;IAI5G;;OAEG;IACI,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;CAMjC"}
1
+ {"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../src/http/Handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AAGjE,qBAAa,OAAO;IAChB;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,CAAM;IAEjC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAa;IAE1G;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAU/B;;OAEG;IACU,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkDxF;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI3C;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAQrD;;;OAGG;cACa,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqErH;;OAEG;cACa,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqU7E;;OAEG;IACI,oBAAoB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAKpD;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI;IAKrG;;OAEG;IACI,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI;IAI5G;;OAEG;IACI,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;CAMjC"}
@@ -134,6 +134,9 @@ class Handler {
134
134
  * Override in the application Handler to show custom error views.
135
135
  */
136
136
  async renderForBrowser(request, status, error, response) {
137
+ if (this.shouldDisplayStackTrace()) {
138
+ return response.status(status).send(await this.renderStackTrace(error, status));
139
+ }
137
140
  const supportedErrors = [401, 403, 404, 419, 429, 500, 503];
138
141
  if (supportedErrors.includes(status)) {
139
142
  const fs = await Promise.resolve().then(() => __importStar(require('fs')));
@@ -168,7 +171,351 @@ class Handler {
168
171
  if (frameworkHtmlDist)
169
172
  return response.status(status).send(frameworkHtmlDist);
170
173
  }
171
- return response.status(status).send(`<!DOCTYPE html><html><head><title>${status} Error</title></head><body style="font-family:sans-serif;text-align:center;padding:4rem"><h1 style="font-size:4rem;color:#8b5cf6">${status}</h1><p style="color:#64748b">${error.message || 'An error occurred'}</p><a href="/" style="color:#8b5cf6">Return Home</a></body></html>`);
174
+ return response.status(status).send(`
175
+ <!DOCTYPE html>
176
+ <html lang="en">
177
+ <head>
178
+ <meta charset="UTF-8">
179
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
180
+ <title>${status} - ${error.message || 'An error occurred'}</title>
181
+ <link rel="preconnect" href="https://fonts.googleapis.com">
182
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
183
+ <link href="https://fonts.googleapis.com/css2?family=Outfit:wght@400;600;700&display=swap" rel="stylesheet">
184
+ <style>
185
+ body { font-family: 'Outfit', sans-serif; background: #f8fafc; color: #1e293b; margin: 0; display: flex; align-items: center; justify-content: center; min-height: 100vh; text-align: center; }
186
+ .container { max-width: 28rem; padding: 2.5rem; }
187
+ h1 { font-size: 6rem; font-weight: 800; color: #8b5cf6; margin: 0; line-height: 1; }
188
+ p { font-size: 1.25rem; color: #64748b; margin: 1.5rem 0 2rem; }
189
+ .btn { display: inline-block; background: #8b5cf6; color: white; padding: 0.75rem 2rem; border-radius: 9999px; text-decoration: none; font-weight: 600; transition: background 0.2s; box-shadow: 0 10px 15px -3px rgba(139, 92, 246, 0.3); }
190
+ .btn:hover { background: #7c3aed; }
191
+ </style>
192
+ </head>
193
+ <body>
194
+ <div class="container">
195
+ <h1>${status}</h1>
196
+ <p>${error.message || 'Something went wrong on our end.'}</p>
197
+ <a href="/" class="btn">Return Home</a>
198
+ </div>
199
+ </body>
200
+ </html>
201
+ `);
202
+ }
203
+ /**
204
+ * Render a pretty stack trace for development mode.
205
+ */
206
+ async renderStackTrace(error, status) {
207
+ const message = error.message || 'An error occurred';
208
+ const name = error.name || 'Error';
209
+ const rawStack = error.stack || '';
210
+ // Process stack tracks into structured data
211
+ const frames = rawStack.split('\n')
212
+ .filter((line) => line.includes('at '))
213
+ .map((line) => {
214
+ // Regex to extract Method, File, Line, Column
215
+ const match = line.match(/at (?:(.+)\s+\()?(?:(.+):(\d+):(\d+))\)?/);
216
+ if (match) {
217
+ const file = match[2];
218
+ const isApp = file.includes('/app/') || (!file.includes('node_modules') && !file.includes('packages/'));
219
+ return {
220
+ method: (match[1] || 'anonymous').replace('async ', ''),
221
+ file: file,
222
+ line: parseInt(match[3]),
223
+ column: parseInt(match[4]),
224
+ isApp: isApp,
225
+ shortFile: file.split('/').slice(-3).join('/')
226
+ };
227
+ }
228
+ return { raw: line.trim(), isApp: false };
229
+ });
230
+ // 🔍 Attempt to get code snippet for the first application frame (or first frame)
231
+ let codeSnippet = '';
232
+ let snippetFile = '';
233
+ let snippetLine = 0;
234
+ const mainFrame = frames.find((f) => f.isApp) || frames[0];
235
+ if (mainFrame && mainFrame.file && mainFrame.file.startsWith('/') && !mainFrame.raw) {
236
+ try {
237
+ const fs = await Promise.resolve().then(() => __importStar(require('fs')));
238
+ const content = await fs.promises.readFile(mainFrame.file, 'utf8');
239
+ const lines = content.split('\n');
240
+ const start = Math.max(0, mainFrame.line - 6);
241
+ const end = Math.min(lines.length, mainFrame.line + 4);
242
+ snippetFile = mainFrame.file;
243
+ snippetLine = mainFrame.line;
244
+ codeSnippet = lines.slice(start, end).map((code, index) => {
245
+ const currentLine = start + index + 1;
246
+ const isErrorLine = currentLine === mainFrame.line;
247
+ // Basic syntax highlighting for the preview
248
+ let highlighted = code
249
+ .replace(/&/g, '&amp;')
250
+ .replace(/</g, '&lt;')
251
+ .replace(/>/g, '&gt;')
252
+ .replace(/(static|public|protected|private|async|await|class|interface|export|import|from|const|let|var|return|if|else|for|while|await|async|try|catch|new|this|throw|new)/g, '<span style="color:#0ea5e9">$1</span>')
253
+ .replace(/('[^']*')/g, '<span style="color:#d946ef">$1</span>')
254
+ .replace(/("[^"]*")/g, '<span style="color:#d946ef">$1</span>')
255
+ .replace(/(`[^`]*`)/g, '<span style="color:#d946ef">$1</span>')
256
+ .replace(/(\/\/.+)/g, '<span style="color:#94a3b8">$1</span>');
257
+ return `
258
+ <div style="display:flex; background:${isErrorLine ? '#fef2f2' : 'transparent'}; border-left: 3px solid ${isErrorLine ? '#ef4444' : 'transparent'}">
259
+ <span style="width:40px; text-align:right; padding-right:15px; color:#94a3b8; user-select:none; font-size:12px;">${currentLine}</span>
260
+ <pre style="margin:0; font-family:'JetBrains Mono', monospace; font-size:13px; color:${isErrorLine ? '#b91c1c' : '#475569'}">${highlighted || ' '}</pre>
261
+ </div>
262
+ `;
263
+ }).join('');
264
+ }
265
+ catch (e) {
266
+ // Silently fail if file can't be read
267
+ }
268
+ }
269
+ // Adjust heading size for long messages
270
+ const headingSize = message.length > 100 ? '1.5rem' : '2.5rem';
271
+ return `
272
+ <!DOCTYPE html>
273
+ <html lang="en">
274
+ <head>
275
+ <meta charset="UTF-8">
276
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
277
+ <title>${name}: ${message}</title>
278
+ <link rel="preconnect" href="https://fonts.googleapis.com">
279
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
280
+ <link href="https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
281
+ <style>
282
+ :root {
283
+ --bg: #f8fafc;
284
+ --surface: #ffffff;
285
+ --primary: #0ea5e9;
286
+ --primary-dark: #0369a1;
287
+ --text: #0f172a;
288
+ --text-muted: #64748b;
289
+ --border: #e2e8f0;
290
+ --danger: #ef4444;
291
+ }
292
+
293
+ * { box-sizing: border-box; }
294
+ body {
295
+ font-family: 'Outfit', sans-serif;
296
+ background: var(--bg);
297
+ color: var(--text);
298
+ margin: 0;
299
+ line-height: 1.6;
300
+ min-height: 100vh;
301
+ display: flex;
302
+ flex-direction: column;
303
+ }
304
+
305
+ header {
306
+ padding: 5rem 2rem 4rem;
307
+ background: white;
308
+ border-bottom: 1px solid var(--border);
309
+ text-align: left;
310
+ }
311
+
312
+ .container { max-width: 1200px; margin: 0 auto; width: 100%; }
313
+
314
+ .status-badge {
315
+ display: inline-block;
316
+ padding: 0.25rem 0.75rem;
317
+ background: #fee2e2;
318
+ color: #ef4444;
319
+ border-radius: 6px;
320
+ font-weight: 700;
321
+ font-size: 0.7rem;
322
+ text-transform: uppercase;
323
+ letter-spacing: 0.05em;
324
+ margin-bottom: 1rem;
325
+ }
326
+
327
+ h1 {
328
+ font-size: ${headingSize};
329
+ margin: 0;
330
+ font-weight: 700;
331
+ color: var(--text);
332
+ line-height: 1.3;
333
+ word-break: break-all;
334
+ overflow-wrap: anywhere;
335
+ }
336
+
337
+ .subtitle {
338
+ margin-top: 1rem;
339
+ font-size: 0.9rem;
340
+ color: var(--text-muted);
341
+ font-weight: 500;
342
+ }
343
+
344
+ main {
345
+ padding: 3rem 2rem;
346
+ flex-grow: 1;
347
+ }
348
+
349
+ .card {
350
+ background: var(--surface);
351
+ border: 1px solid var(--border);
352
+ border-radius: 12px;
353
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
354
+ overflow: hidden;
355
+ margin-bottom: 2rem;
356
+ }
357
+
358
+ .card-header {
359
+ padding: 1rem 1.5rem;
360
+ background: #f8fafc;
361
+ border-bottom: 1px solid var(--border);
362
+ display: flex;
363
+ justify-content: space-between;
364
+ align-items: center;
365
+ }
366
+
367
+ .card-title {
368
+ font-weight: 700;
369
+ color: #475569;
370
+ font-size: 0.85rem;
371
+ text-transform: uppercase;
372
+ letter-spacing: 0.025em;
373
+ }
374
+
375
+ .snippet-container {
376
+ padding: 1.5rem 0;
377
+ background: #ffffff;
378
+ }
379
+
380
+ .snippet-meta {
381
+ padding: 0 1.5rem 1rem;
382
+ font-size: 0.75rem;
383
+ color: var(--text-muted);
384
+ font-family: 'JetBrains Mono', monospace;
385
+ }
386
+
387
+ .snippet-meta strong { color: var(--text); }
388
+
389
+ .frames { background: white; }
390
+
391
+ .frame {
392
+ padding: 1rem 1.5rem;
393
+ border-bottom: 1px solid var(--border);
394
+ transition: all 0.1s;
395
+ display: flex;
396
+ flex-direction: column;
397
+ gap: 0.25rem;
398
+ cursor: pointer;
399
+ }
400
+
401
+ .frame.is-app {
402
+ border-left: 3px solid var(--primary);
403
+ }
404
+
405
+ .frame:last-child { border-bottom: none; }
406
+
407
+ .frame:hover { background: #f1f5f966; }
408
+
409
+ .frame-method {
410
+ font-family: 'JetBrains Mono', monospace;
411
+ font-weight: 600;
412
+ color: var(--text);
413
+ font-size: 0.9rem;
414
+ }
415
+
416
+ .frame-is-app-tag {
417
+ font-size: 0.6rem;
418
+ background: #e0f2fe;
419
+ color: #0369a1;
420
+ padding: 0.1rem 0.4rem;
421
+ border-radius: 4px;
422
+ text-transform: uppercase;
423
+ font-weight: 700;
424
+ margin-left: 0.5rem;
425
+ vertical-align: middle;
426
+ }
427
+
428
+ .frame-location {
429
+ color: var(--text-muted);
430
+ font-size: 0.8rem;
431
+ }
432
+
433
+ .frame-file { color: #64748b; }
434
+ .frame-line { color: var(--danger); font-weight: 600; }
435
+
436
+ .frame-full-path {
437
+ font-size: 0.7rem;
438
+ color: #cbd5e1;
439
+ margin-top: 2px;
440
+ word-break: break-all;
441
+ }
442
+
443
+ footer {
444
+ padding: 3rem;
445
+ text-align: center;
446
+ color: var(--text-muted);
447
+ font-size: 0.8rem;
448
+ font-weight: 500;
449
+ }
450
+
451
+ .arikajs-link {
452
+ color: var(--primary);
453
+ font-weight: 700;
454
+ text-decoration: none;
455
+ }
456
+ </style>
457
+ </head>
458
+ <body>
459
+ <header>
460
+ <div class="container">
461
+ <span class="status-badge">${name}</span>
462
+ <h1>${message.replace(/(\/.+?\/)/g, '<span style="color:#64748b; font-weight:400">$1</span>')}</h1>
463
+ <div class="subtitle">ArikaJS Exception Handler • HTTP ${status}</div>
464
+ </div>
465
+ </header>
466
+
467
+ <main>
468
+ <div class="container">
469
+ ${codeSnippet ? `
470
+ <div class="card">
471
+ <div class="card-header">
472
+ <span class="card-title">Code Preview</span>
473
+ </div>
474
+ <div class="snippet-container">
475
+ <div class="snippet-meta">
476
+ <strong>${snippetFile}</strong> : ${snippetLine}
477
+ </div>
478
+ ${codeSnippet}
479
+ </div>
480
+ </div>
481
+ ` : ''}
482
+
483
+ <div class="card">
484
+ <div class="card-header">
485
+ <span class="card-title">Stack Trace</span>
486
+ </div>
487
+ <div class="frames">
488
+ ${frames.map((frame) => {
489
+ if (frame.raw) {
490
+ return `<div class="frame"><div class="frame-location" style="opacity:0.5">${frame.raw}</div></div>`;
491
+ }
492
+ return `
493
+ <div class="frame ${frame.isApp ? 'is-app' : ''}">
494
+ <div>
495
+ <span class="frame-method">${frame.method}</span>
496
+ ${frame.isApp ? '<span class="frame-is-app-tag">Application</span>' : ''}
497
+ </div>
498
+ <div class="frame-location">
499
+ in <span class="frame-file">${frame.shortFile}</span>
500
+ at line <span class="frame-line">${frame.line}</span>
501
+ </div>
502
+ <div class="frame-full-path">${frame.file}</div>
503
+ </div>
504
+ `;
505
+ }).join('')}
506
+ </div>
507
+ </div>
508
+ </div>
509
+ </main>
510
+
511
+ <footer>
512
+ <div class="container">
513
+ <p>Debugging enabled. Powered by <a href="#" class="arikajs-link">ArikaJS</a> Exception Handler.</p>
514
+ </div>
515
+ </footer>
516
+ </body>
517
+ </html>
518
+ `;
172
519
  }
173
520
  /**
174
521
  * Set the exceptions that should not be reported.