@typetron/framework 0.3.18 → 0.4.0-rc2

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 (235) hide show
  1. package/Cache/Stores/DatabaseStore.js +0 -104
  2. package/Cache/Stores/DatabaseStore.js.map +1 -1
  3. package/Cache/Stores/FileStore.js +1 -1
  4. package/Cache/Stores/FileStore.js.map +1 -1
  5. package/Container/ClassResolver.d.ts.map +1 -1
  6. package/Container/ClassResolver.js +4 -1
  7. package/Container/ClassResolver.js.map +1 -1
  8. package/Container/Container.d.ts.map +1 -1
  9. package/Container/Container.js +3 -2
  10. package/Container/Container.js.map +1 -1
  11. package/Container/Decorators.js +1 -1
  12. package/Container/Decorators.js.map +1 -1
  13. package/Container/Metadata.d.ts +2 -2
  14. package/Database/Decorators.js +2 -3
  15. package/Database/Decorators.js.map +1 -1
  16. package/Database/Drivers/MySQL/MysqlDriver.js +1 -2
  17. package/Database/Drivers/MySQL/MysqlDriver.js.map +1 -1
  18. package/Database/Drivers/MySQL/Schema.js +7 -6
  19. package/Database/Drivers/MySQL/Schema.js.map +1 -1
  20. package/Database/Drivers/SQL/Statements/BaseStatement.js +1 -2
  21. package/Database/Drivers/SQL/Statements/BaseStatement.js.map +1 -1
  22. package/Database/Drivers/SQL/Statements/Insert.js +1 -2
  23. package/Database/Drivers/SQL/Statements/Insert.js.map +1 -1
  24. package/Database/Drivers/SQLite/Schema.js +4 -2
  25. package/Database/Drivers/SQLite/Schema.js.map +1 -1
  26. package/Database/Entity.js +2 -3
  27. package/Database/Entity.js.map +1 -1
  28. package/Database/Fields.js +17 -21
  29. package/Database/Fields.js.map +1 -1
  30. package/Database/List.d.ts +1 -1
  31. package/Database/Migrations/Migrator.js +3 -4
  32. package/Database/Migrations/Migrator.js.map +1 -1
  33. package/Database/Query.js +1 -1
  34. package/Database/Query.js.map +1 -1
  35. package/Encryption/index.js +1 -1
  36. package/Encryption/index.js.map +1 -1
  37. package/Framework/Application.d.ts.map +1 -1
  38. package/Framework/Application.js +1 -2
  39. package/Framework/Application.js.map +1 -1
  40. package/Framework/Config/AppConfig.d.ts +1 -0
  41. package/Framework/Config/AppConfig.d.ts.map +1 -1
  42. package/Framework/Config/AppConfig.js +1 -0
  43. package/Framework/Config/AppConfig.js.map +1 -1
  44. package/Framework/Config/CacheConfig.d.ts +1 -1
  45. package/Framework/Config/CacheConfig.d.ts.map +1 -1
  46. package/Framework/Config/CacheConfig.js +1 -2
  47. package/Framework/Config/CacheConfig.js.map +1 -1
  48. package/Framework/Config/DatabaseConfig.js +2 -3
  49. package/Framework/Config/DatabaseConfig.js.map +1 -1
  50. package/Framework/Config/MailConfig.d.ts +19 -0
  51. package/Framework/Config/MailConfig.d.ts.map +1 -0
  52. package/Framework/Config/MailConfig.js +12 -0
  53. package/Framework/Config/MailConfig.js.map +1 -0
  54. package/Framework/Config/index.d.ts +1 -0
  55. package/Framework/Config/index.d.ts.map +1 -1
  56. package/Framework/Config/index.js +1 -0
  57. package/Framework/Config/index.js.map +1 -1
  58. package/Framework/Middleware/AuthMiddleware.d.ts +1 -1
  59. package/Framework/Middleware/AuthMiddleware.js +1 -2
  60. package/Framework/Middleware/AuthMiddleware.js.map +1 -1
  61. package/Framework/Middleware/CorsMiddleware.d.ts +1 -1
  62. package/Framework/Middleware/CorsMiddleware.d.ts.map +1 -1
  63. package/Framework/Middleware/CorsMiddleware.js +5 -4
  64. package/Framework/Middleware/CorsMiddleware.js.map +1 -1
  65. package/Framework/Middleware/StaticAssetsMiddleware.d.ts +1 -1
  66. package/Framework/Middleware/StaticAssetsMiddleware.js +3 -4
  67. package/Framework/Middleware/StaticAssetsMiddleware.js.map +1 -1
  68. package/Framework/Providers/CacheProvider.js +4 -4
  69. package/Framework/Providers/CacheProvider.js.map +1 -1
  70. package/Framework/Providers/MailProvider.d.ts +7 -0
  71. package/Framework/Providers/MailProvider.d.ts.map +1 -0
  72. package/Framework/Providers/MailProvider.js +40 -0
  73. package/Framework/Providers/MailProvider.js.map +1 -0
  74. package/Framework/Providers/WebsocketsProvider.d.ts.map +1 -1
  75. package/Framework/Providers/WebsocketsProvider.js +6 -10
  76. package/Framework/Providers/WebsocketsProvider.js.map +1 -1
  77. package/Framework/Resolvers/EntityResolver.js +1 -2
  78. package/Framework/Resolvers/EntityResolver.js.map +1 -1
  79. package/Framework/index.d.ts +1 -0
  80. package/Framework/index.d.ts.map +1 -1
  81. package/Framework/index.js +1 -0
  82. package/Framework/index.js.map +1 -1
  83. package/Frontend/Angular/index.d.ts +8 -0
  84. package/Frontend/Angular/index.d.ts.map +1 -0
  85. package/Frontend/Angular/index.js +20 -0
  86. package/Frontend/Angular/index.js.map +1 -0
  87. package/Frontend/Websockets/index.js +76 -0
  88. package/Frontend/Websockets/index.js.map +1 -0
  89. package/LICENSE.md +21 -0
  90. package/Mail/MailAddress.d.ts +5 -0
  91. package/Mail/MailAddress.d.ts.map +1 -0
  92. package/{Cache/Contracts/CacheInterface.js → Mail/MailAddress.js} +1 -1
  93. package/Mail/MailAddress.js.map +1 -0
  94. package/Mail/MailTransport.d.ts +6 -0
  95. package/Mail/MailTransport.d.ts.map +1 -0
  96. package/Mail/MailTransport.js +7 -0
  97. package/Mail/MailTransport.js.map +1 -0
  98. package/Mail/Mailable.d.ts +18 -0
  99. package/Mail/Mailable.d.ts.map +1 -0
  100. package/Mail/Mailable.js +10 -0
  101. package/Mail/Mailable.js.map +1 -0
  102. package/Mail/Mailer.d.ts +12 -0
  103. package/Mail/Mailer.d.ts.map +1 -0
  104. package/Mail/Mailer.js +25 -0
  105. package/Mail/Mailer.js.map +1 -0
  106. package/Mail/PendingMail.d.ts +30 -0
  107. package/Mail/PendingMail.d.ts.map +1 -0
  108. package/Mail/PendingMail.js +53 -0
  109. package/Mail/PendingMail.js.map +1 -0
  110. package/Mail/SentMessage.d.ts +16 -0
  111. package/Mail/SentMessage.d.ts.map +1 -0
  112. package/Mail/SentMessage.js +13 -0
  113. package/Mail/SentMessage.js.map +1 -0
  114. package/Mail/Transports/MemoryTransport.d.ts +8 -0
  115. package/Mail/Transports/MemoryTransport.d.ts.map +1 -0
  116. package/Mail/Transports/MemoryTransport.js +18 -0
  117. package/Mail/Transports/MemoryTransport.js.map +1 -0
  118. package/Mail/Transports/SendGridTransport.d.ts +11 -0
  119. package/Mail/Transports/SendGridTransport.d.ts.map +1 -0
  120. package/Mail/Transports/SendGridTransport.js +59 -0
  121. package/Mail/Transports/SendGridTransport.js.map +1 -0
  122. package/Mail/index.d.ts +4 -0
  123. package/Mail/index.d.ts.map +1 -0
  124. package/Mail/index.js +16 -0
  125. package/Mail/index.js.map +1 -0
  126. package/Models/Model.js +1 -1
  127. package/Models/Model.js.map +1 -1
  128. package/Readme.md +123 -0
  129. package/Router/Http/Handler.d.ts.map +1 -1
  130. package/Router/Http/Handler.js +14 -14
  131. package/Router/Http/Handler.js.map +1 -1
  132. package/Router/Http/Request.d.ts +14 -9
  133. package/Router/Http/Request.d.ts.map +1 -1
  134. package/Router/Http/Request.js +82 -48
  135. package/Router/Http/Request.js.map +1 -1
  136. package/Router/Http/Response.d.ts +4 -3
  137. package/Router/Http/Response.d.ts.map +1 -1
  138. package/Router/Http/Response.js +9 -18
  139. package/Router/Http/Response.js.map +1 -1
  140. package/Router/Metadata.d.ts +2 -2
  141. package/Router/Servers/index.d.ts +5 -0
  142. package/Router/Servers/index.d.ts.map +1 -0
  143. package/Router/Servers/index.js +15 -0
  144. package/Router/Servers/index.js.map +1 -0
  145. package/Router/Servers/node.d.ts +3 -0
  146. package/Router/Servers/node.d.ts.map +1 -0
  147. package/Router/Servers/node.js +15 -0
  148. package/Router/Servers/node.js.map +1 -0
  149. package/Router/Servers/uNetworking.d.ts +3 -0
  150. package/Router/Servers/uNetworking.d.ts.map +1 -0
  151. package/Router/Servers/uNetworking.js +33 -0
  152. package/Router/Servers/uNetworking.js.map +1 -0
  153. package/Router/Websockets/Handler.d.ts +1 -1
  154. package/Router/Websockets/Handler.d.ts.map +1 -1
  155. package/Router/Websockets/Handler.js.map +1 -1
  156. package/Router/Websockets/WebsocketEvent.js +1 -2
  157. package/Router/Websockets/WebsocketEvent.js.map +1 -1
  158. package/Router/Websockets/types.d.ts +1 -1
  159. package/Router/Websockets/types.d.ts.map +1 -1
  160. package/Router/micro.d.ts +3 -0
  161. package/Router/micro.d.ts.map +1 -0
  162. package/Router/micro.js +44 -0
  163. package/Router/micro.js.map +1 -0
  164. package/Support/Array.js +3 -0
  165. package/Support/Array.js.map +1 -1
  166. package/Support/Metadata.d.ts +6 -5
  167. package/Support/Metadata.d.ts.map +1 -1
  168. package/Support/Metadata.js +15 -4
  169. package/Support/Metadata.js.map +1 -1
  170. package/Testing/TestCase.js +5 -6
  171. package/Testing/TestCase.js.map +1 -1
  172. package/Validation/Rules/Email.js +1 -1
  173. package/Validation/Rules/Email.js.map +1 -1
  174. package/Validation/Rules/FileExtension.js +1 -1
  175. package/Validation/Rules/FileExtension.js.map +1 -1
  176. package/Validation/Rules/MaxLength.js +1 -1
  177. package/Validation/Rules/MaxLength.js.map +1 -1
  178. package/Validation/Rules/MinLength.js +1 -1
  179. package/Validation/Rules/MinLength.js.map +1 -1
  180. package/Validation/Rules/Required.js +1 -1
  181. package/Validation/Rules/Required.js.map +1 -1
  182. package/benchmark-index.js.map +1 -0
  183. package/benchmark.js.map +1 -0
  184. package/index.d.ts +2 -0
  185. package/index.d.ts.map +1 -0
  186. package/index.js +41 -0
  187. package/index.js.map +1 -0
  188. package/package.json +70 -68
  189. package/test.js.map +1 -0
  190. package/tests/Cache/DatabaseStoreTest.js +1 -2
  191. package/tests/Cache/DatabaseStoreTest.js.map +1 -1
  192. package/tests/Database/EntityRelationshipsTest.js +9 -14
  193. package/tests/Database/EntityRelationshipsTest.js.map +1 -1
  194. package/tests/Database/Seeders/RunnerTest.js +1 -1
  195. package/tests/Database/Seeders/RunnerTest.js.map +1 -1
  196. package/tests/Framework/Resolvers/EntityResolverTest.js +3 -3
  197. package/tests/Mail/MailerTest.d.ts +2 -0
  198. package/tests/Mail/MailerTest.d.ts.map +1 -0
  199. package/tests/Mail/MailerTest.js +98 -0
  200. package/tests/Mail/MailerTest.js.map +1 -0
  201. package/Cache/CacheLoader.d.ts +0 -8
  202. package/Cache/CacheLoader.d.ts.map +0 -1
  203. package/Cache/CacheLoader.js +0 -55
  204. package/Cache/CacheLoader.js.map +0 -1
  205. package/Cache/Consumers/Cache.d.ts +0 -18
  206. package/Cache/Consumers/Cache.d.ts.map +0 -1
  207. package/Cache/Consumers/Cache.js +0 -99
  208. package/Cache/Consumers/Cache.js.map +0 -1
  209. package/Cache/Contracts/CacheInterface.d.ts +0 -14
  210. package/Cache/Contracts/CacheInterface.d.ts.map +0 -1
  211. package/Cache/Contracts/CacheInterface.js.map +0 -1
  212. package/Cache/Contracts/EngineInterface.d.ts +0 -8
  213. package/Cache/Contracts/EngineInterface.d.ts.map +0 -1
  214. package/Cache/Contracts/EngineInterface.js +0 -3
  215. package/Cache/Contracts/EngineInterface.js.map +0 -1
  216. package/Cache/Contracts/ServiceInterface.d.ts +0 -8
  217. package/Cache/Contracts/ServiceInterface.d.ts.map +0 -1
  218. package/Cache/Contracts/ServiceInterface.js +0 -3
  219. package/Cache/Contracts/ServiceInterface.js.map +0 -1
  220. package/Cache/Engines/DatabaseCache.d.ts +0 -11
  221. package/Cache/Engines/DatabaseCache.d.ts.map +0 -1
  222. package/Cache/Engines/DatabaseCache.js +0 -40
  223. package/Cache/Engines/DatabaseCache.js.map +0 -1
  224. package/Cache/Engines/FileCache.d.ts +0 -22
  225. package/Cache/Engines/FileCache.d.ts.map +0 -1
  226. package/Cache/Engines/FileCache.js +0 -107
  227. package/Cache/Engines/FileCache.js.map +0 -1
  228. package/Cache/Services/DatabaseCacheService.d.ts +0 -13
  229. package/Cache/Services/DatabaseCacheService.d.ts.map +0 -1
  230. package/Cache/Services/DatabaseCacheService.js +0 -74
  231. package/Cache/Services/DatabaseCacheService.js.map +0 -1
  232. package/Cache/Services/FileCacheService.d.ts +0 -13
  233. package/Cache/Services/FileCacheService.d.ts.map +0 -1
  234. package/Cache/Services/FileCacheService.js +0 -60
  235. package/Cache/Services/FileCacheService.js.map +0 -1
@@ -29,7 +29,7 @@ let RunnerTest = class RunnerTest {
29
29
  async shouldSeed() {
30
30
  await this.runner.seed();
31
31
  const result = await Database_1.Query.table('random_table').first();
32
- chai_1.expect(result === null || result === void 0 ? void 0 : result.col1).to.be.equal('val1');
32
+ chai_1.expect(result?.col1).to.be.equal('val1');
33
33
  }
34
34
  };
35
35
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"RunnerTest.js","sourceRoot":"","sources":["../../../../tests/Database/Seeders/RunnerTest.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAA6C;AAC7C,wDAA0D;AAC1D,+BAA6B;AAC7B,gDAAmE;AACnE,8CAA0C;AAG1C,IAAM,UAAU,GAAhB,MAAM,UAAU;IAAhB;QAEY,cAAS,GAAG,kCAAkC,CAAA;IAoB1D,CAAC;IAlBG,KAAK,CAAC,MAAM;QACR,gBAAK,CAAC,UAAU,GAAG,IAAI,qBAAU,CAAC,IAAI,uBAAY,CAAC,UAAU,CAAC,CAAC,CAAA;QAC/D,sDAAsD;QACtD,mFAAmF;QACnF,MAAM;QACN,MAAM,gBAAK,CAAC,UAAU,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAA;QAEzE,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAa,CAAC,IAAI,iBAAO,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAClE,CAAC;IAGD,KAAK,CAAC,UAAU;QACZ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAExB,MAAM,MAAM,GAAG,MAAM,gBAAK,CAAC,KAAK,CAAmB,cAAc,CAAC,CAAC,KAAK,EAAE,CAAA;QAE1E,aAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5C,CAAC;CACJ,CAAA;AAPG;IADC,YAAI;;;;4CAOJ;AArBC,UAAU;IADf,aAAK;GACA,UAAU,CAsBf"}
1
+ {"version":3,"file":"RunnerTest.js","sourceRoot":"","sources":["../../../../tests/Database/Seeders/RunnerTest.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAA6C;AAC7C,wDAA0D;AAC1D,+BAA6B;AAC7B,gDAAmE;AACnE,8CAA0C;AAG1C,IAAM,UAAU,GAAhB,MAAM,UAAU;IAAhB;QAEY,cAAS,GAAG,kCAAkC,CAAA;IAoB1D,CAAC;IAlBG,KAAK,CAAC,MAAM;QACR,gBAAK,CAAC,UAAU,GAAG,IAAI,qBAAU,CAAC,IAAI,uBAAY,CAAC,UAAU,CAAC,CAAC,CAAA;QAC/D,sDAAsD;QACtD,mFAAmF;QACnF,MAAM;QACN,MAAM,gBAAK,CAAC,UAAU,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAA;QAEzE,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAa,CAAC,IAAI,iBAAO,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAClE,CAAC;IAGD,KAAK,CAAC,UAAU;QACZ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAExB,MAAM,MAAM,GAAG,MAAM,gBAAK,CAAC,KAAK,CAAmB,cAAc,CAAC,CAAC,KAAK,EAAE,CAAA;QAE1E,aAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5C,CAAC;CACJ,CAAA;AAPG;IADC,YAAI;;;;4CAOJ;AArBC,UAAU;IADf,aAAK;GACA,UAAU,CAsBf"}
@@ -22,7 +22,7 @@ let EntityResolverTest = class EntityResolverTest {
22
22
  const connection = ts_mockito_1.mock(Database_1.Connection);
23
23
  Database_1.Query.connection = ts_mockito_1.instance(connection);
24
24
  Database_1.Query.connection.driver = new Database_1.SqliteDriver(':memory:');
25
- ts_mockito_1.when(connection.first(ts_mockito_1.anyOfClass(Database_1.Query))).thenResolve({ id: 2 }, { id: 1 });
25
+ ts_mockito_1.when(connection.first(ts_mockito_1.anyOfClass(Database_1.Query))).thenResolve({ id: 2 }, { id: 3 });
26
26
  const container = new Container_1.Container();
27
27
  container.resolvers.unshift(new EntityResolver_1.EntityResolver(container));
28
28
  class User extends Database_1.Entity {
@@ -41,11 +41,11 @@ let EntityResolverTest = class EntityResolverTest {
41
41
  const request = new Http_1.Request('read', Http_1.Http.Method.GET);
42
42
  request.parameters = {
43
43
  0: 2,
44
- 1: 1
44
+ 1: 3
45
45
  };
46
46
  const response = await handler.handle(container, request);
47
47
  chai_1.expect(response.body[0]).to.be.equal(2);
48
- chai_1.expect(response.body[1]).to.be.equal(1);
48
+ chai_1.expect(response.body[1]).to.be.equal(3);
49
49
  }
50
50
  };
51
51
  __decorate([
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MailerTest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MailerTest.d.ts","sourceRoot":"","sources":["../../../tests/Mail/MailerTest.ts"],"names":[],"mappings":""}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const mocha_1 = require("@testdeck/mocha");
13
+ const Mail_1 = require("@Typetron/Mail");
14
+ const chai_1 = require("chai");
15
+ class Order {
16
+ constructor(id) {
17
+ this.id = id;
18
+ }
19
+ }
20
+ class OrderShipped extends Mail_1.Mailable {
21
+ constructor(order) {
22
+ super();
23
+ this.order = order;
24
+ }
25
+ content() {
26
+ return {
27
+ html: `<h2>Order #${this.order.id} shipped</h2>`,
28
+ text: `Order #${this.order.id} shipped`
29
+ };
30
+ }
31
+ }
32
+ let MailerTest = class MailerTest {
33
+ constructor() {
34
+ this.mail = new Mail_1.Mailer({ email: 'tester@test.com' }, new Mail_1.MemoryTransport());
35
+ }
36
+ async canSendSimpleMessage() {
37
+ const sentMessage = await this.mail.to('john@example.com')
38
+ .from('from@example.com')
39
+ .replyTo('replyTo@example.com')
40
+ .subject('test')
41
+ .cc('moreUsers@example.com')
42
+ .bcc('evenMoreUsers@example.com')
43
+ .send('Order #123 shipped');
44
+ chai_1.expect(sentMessage.replyTo).to.deep.equal('replyTo@example.com');
45
+ chai_1.expect(sentMessage.subject).to.deep.equal('test');
46
+ chai_1.expect(sentMessage.from).to.deep.equal('from@example.com');
47
+ chai_1.expect(sentMessage.to).to.deep.equal('john@example.com');
48
+ chai_1.expect(sentMessage.cc).to.equal('moreUsers@example.com');
49
+ chai_1.expect(sentMessage.bcc).to.equal('evenMoreUsers@example.com');
50
+ chai_1.expect(sentMessage.body).to.equal('Order #123 shipped');
51
+ }
52
+ async canSendHtmlMessage() {
53
+ const sentMessage = await this.mail.to('john@example.com')
54
+ .cc('moreUsers@example.com')
55
+ .bcc('evenMoreUsers@example.com')
56
+ .send({ html: '<h2>Order #1234 shipped</h2>', text: 'Order #1234 shipped' });
57
+ chai_1.expect(sentMessage.to).to.equal('john@example.com');
58
+ chai_1.expect(sentMessage.cc).to.equal('moreUsers@example.com');
59
+ chai_1.expect(sentMessage.bcc).to.equal('evenMoreUsers@example.com');
60
+ chai_1.expect(sentMessage.body).to.deep.equal({ html: '<h2>Order #1234 shipped</h2>', text: 'Order #1234 shipped' });
61
+ }
62
+ async canSendMailable() {
63
+ const order = new Order(1234);
64
+ const sentMessage = await this.mail.to('john@example.com')
65
+ .cc('moreUsers@example.com')
66
+ .bcc('evenMoreUsers@example.com')
67
+ .send(new OrderShipped(order));
68
+ chai_1.expect(sentMessage.to).to.equal('john@example.com');
69
+ chai_1.expect(sentMessage.cc).to.equal('moreUsers@example.com');
70
+ chai_1.expect(sentMessage.bcc).to.equal('evenMoreUsers@example.com');
71
+ chai_1.expect(sentMessage.body).to.deep.equal({
72
+ html: `<h2>Order #${order.id} shipped</h2>`,
73
+ text: `Order #${order.id} shipped`
74
+ });
75
+ }
76
+ };
77
+ __decorate([
78
+ mocha_1.test,
79
+ __metadata("design:type", Function),
80
+ __metadata("design:paramtypes", []),
81
+ __metadata("design:returntype", Promise)
82
+ ], MailerTest.prototype, "canSendSimpleMessage", null);
83
+ __decorate([
84
+ mocha_1.test,
85
+ __metadata("design:type", Function),
86
+ __metadata("design:paramtypes", []),
87
+ __metadata("design:returntype", Promise)
88
+ ], MailerTest.prototype, "canSendHtmlMessage", null);
89
+ __decorate([
90
+ mocha_1.test,
91
+ __metadata("design:type", Function),
92
+ __metadata("design:paramtypes", []),
93
+ __metadata("design:returntype", Promise)
94
+ ], MailerTest.prototype, "canSendMailable", null);
95
+ MailerTest = __decorate([
96
+ mocha_1.suite
97
+ ], MailerTest);
98
+ //# sourceMappingURL=MailerTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MailerTest.js","sourceRoot":"","sources":["../../../tests/Mail/MailerTest.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { CacheConfig } from '@Typetron/Framework';
2
- import { Container } from '@Typetron/Container';
3
- export declare class CacheLoader {
4
- config: CacheConfig;
5
- app: Container;
6
- createCache(): void;
7
- }
8
- //# sourceMappingURL=CacheLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CacheLoader.d.ts","sourceRoot":"","sources":["../../Cache/CacheLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAU,MAAM,qBAAqB,CAAA;AAOvD,qBAAa,WAAW;IAEpB,MAAM,EAAE,WAAW,CAAA;IAGnB,GAAG,EAAE,SAAS,CAAA;IAEP,WAAW;CA2BrB"}
@@ -1,55 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.CacheLoader = void 0;
13
- const Framework_1 = require("@Typetron/Framework");
14
- const Container_1 = require("@Typetron/Container");
15
- // const RedisCacheService = require("../src/Services/RedisCacheService");
16
- // const MemCacheService = require("../src/Services/MemCacheService");
17
- class CacheLoader {
18
- createCache() {
19
- // let cache: CacheInterface
20
- //
21
- // switch (this.config.defaultStore.toLowerCase()) {
22
- // case "memcache":
23
- // // Load MemCacheService
24
- // cache = new Cache(new MemCacheService(this.app));
25
- // break;
26
- // case "redis":
27
- // // Load RedisCacheService
28
- // cache = new Cache(new RedisCacheService(this.app));
29
- // break;
30
- // case "database":
31
- // // Load DatabaseCacheService
32
- // cache = new Cache(new DatabaseCacheService(this.app));
33
- // break;
34
- // case 'file':
35
- // Load FileCacheService
36
- // cache = this.app.get(FileCacheService)
37
- // cache.config = this.config.stores['file']
38
- // break
39
- //
40
- // default:
41
- // throw new Error('No driver provided')
42
- // }
43
- // return cache
44
- }
45
- }
46
- __decorate([
47
- Container_1.Inject(),
48
- __metadata("design:type", Framework_1.CacheConfig)
49
- ], CacheLoader.prototype, "config", void 0);
50
- __decorate([
51
- Container_1.Inject(),
52
- __metadata("design:type", Container_1.Container)
53
- ], CacheLoader.prototype, "app", void 0);
54
- exports.CacheLoader = CacheLoader;
55
- //# sourceMappingURL=CacheLoader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CacheLoader.js","sourceRoot":"","sources":["../../Cache/CacheLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAiD;AACjD,mDAAuD;AAIvD,0EAA0E;AAC1E,sEAAsE;AAEtE,MAAa,WAAW;IAOb,WAAW;QACd,4BAA4B;QAC5B,EAAE;QACF,oDAAoD;QAChD,qBAAqB;QACrB,8BAA8B;QAC9B,wDAAwD;QACxD,aAAa;QACb,kBAAkB;QAClB,gCAAgC;QAChC,0DAA0D;QAC1D,aAAa;QACb,qBAAqB;QACrB,mCAAmC;QACnC,6DAA6D;QAC7D,aAAa;QACb,eAAe;QACX,wBAAwB;QACxB,yCAAyC;QACzC,4CAA4C;QACpD,gBAAgB;QAChB,EAAE;QACF,eAAe;QACf,gDAAgD;QAChD,IAAI;QACJ,eAAe;IACnB,CAAC;CACJ;AAhCG;IADC,kBAAM,EAAE;8BACD,uBAAW;2CAAA;AAGnB;IADC,kBAAM,EAAE;8BACJ,qBAAS;wCAAA;AALlB,kCAkCC"}
@@ -1,18 +0,0 @@
1
- import CacheInterface from '../Contracts/CacheInterface';
2
- import ServiceInterface from '../Contracts/ServiceInterface';
3
- export declare abstract class Cache implements CacheInterface {
4
- private cacheService;
5
- constructor(cacheService: ServiceInterface);
6
- get(name: string): Promise<any>;
7
- has(name: string): Promise<Boolean>;
8
- set(name: string, data: any, minutes: number): Promise<any>;
9
- delete(name: string): Promise<Boolean>;
10
- update(name: string, data: any, minutes?: number): Promise<any>;
11
- remember(name: string, minutes: number, callback: Function): Promise<any>;
12
- rememberForever(name: string, callback: Function): Promise<any>;
13
- many(keys: Array<string>): Promise<Record<string, unknown>>;
14
- setMany(data: Record<string, unknown>, minutes?: number): Promise<any>;
15
- flush(): Promise<void>;
16
- forever(key: string, values: any): Promise<any>;
17
- }
18
- //# sourceMappingURL=Cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../../Cache/Consumers/Cache.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,6BAA6B,CAAA;AACxD,OAAO,gBAAgB,MAAM,+BAA+B,CAAA;AAE5D,8BAAsB,KAAM,YAAW,cAAc;IACjD,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,gBAAgB;IAI7B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAO/B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAO3D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQtC,MAAM,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EACT,OAAO,GAAE,MAAU,GACpB,OAAO,CAAC,GAAG,CAAC;IASF,QAAQ,CACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,GAAG,CAAC;IAUF,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAU/D,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAS3D,OAAO,CAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,GAAE,MAAU,GACpB,OAAO,CAAC,GAAG,CAAC;IAOF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAM/D"}
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Cache = void 0;
4
- class Cache {
5
- constructor(cacheService) {
6
- this.cacheService = cacheService;
7
- }
8
- async get(name) {
9
- if (name) {
10
- return await this.cacheService.get(name);
11
- }
12
- throw new Error('Specify a name');
13
- }
14
- async has(name) {
15
- const value = await this.cacheService.get(name);
16
- return !!value;
17
- }
18
- async set(name, data, minutes) {
19
- if (name && data) {
20
- return await this.cacheService.set(name, data, minutes);
21
- }
22
- throw new Error('Specify a name and data to cache');
23
- }
24
- async delete(name) {
25
- if (await this.has(name)) {
26
- await this.cacheService.delete(name);
27
- return true;
28
- }
29
- return false;
30
- }
31
- async update(name, data, minutes = 0) {
32
- if (await this.has(name)) {
33
- await this.delete(name);
34
- return await this.set(name, data, minutes);
35
- }
36
- else {
37
- return await this.set(name, data, minutes);
38
- }
39
- }
40
- async remember(name, minutes, callback) {
41
- if (await this.has(name)) {
42
- return await this.get(name);
43
- }
44
- else {
45
- const data = await callback();
46
- await this.set(name, data, minutes);
47
- return data;
48
- }
49
- }
50
- async rememberForever(name, callback) {
51
- if (await this.has(name)) {
52
- return await this.get(name);
53
- }
54
- else {
55
- const data = await callback();
56
- await this.cacheService.set(name, data);
57
- return data;
58
- }
59
- }
60
- async many(keys) {
61
- let values = Promise.all(keys.map((key) => this.get(key)));
62
- let mappedValues = {};
63
- for (let index = 0; index < keys.length; index++) {
64
- mappedValues[keys[index]] = values[index];
65
- }
66
- return mappedValues;
67
- }
68
- async setMany(data, minutes = 0) {
69
- for (let prop in data) {
70
- await this.set(prop, data[prop], minutes);
71
- }
72
- return data;
73
- }
74
- async flush() {
75
- return await this.cacheService.flush();
76
- }
77
- async forever(key, values) {
78
- if (key && values) {
79
- return await this.cacheService.set(key, values);
80
- }
81
- throw new Error('Specify a name and data to cache');
82
- }
83
- }
84
- exports.Cache = Cache;
85
- /*
86
-
87
- public function get($key) {}
88
- public function many(array $keys) {}
89
- public function put($key, $value, $seconds) {}
90
- public function putMany(array $values, $seconds) {}
91
- public function increment($key, $value = 1) {}
92
- public function decrement($key, $value = 1) {}
93
- public function forever($key, $value) {}
94
- public function forget($key) {}
95
- public function flush() {}
96
- public function getPrefix() {}
97
-
98
- */
99
- //# sourceMappingURL=Cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../Cache/Consumers/Cache.ts"],"names":[],"mappings":";;;AAGA,MAAsB,KAAK;IAGvB,YAAY,YAA8B;QACtC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY;QACzB,IAAI,IAAI,EAAE;YACN,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SAC3C;QACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACrC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY;QACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC/C,OAAO,CAAC,CAAC,KAAK,CAAA;IAClB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,IAAS,EAAE,OAAe;QACrD,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;SAC1D;QACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACvD,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC5B,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACtB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACpC,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAEM,KAAK,CAAC,MAAM,CACf,IAAY,EACZ,IAAS,EACT,UAAkB,CAAC;QAEnB,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACtB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACvB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;SAC7C;aAAM;YACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;SAC7C;IACL,CAAC;IAEM,KAAK,CAAC,QAAQ,CACjB,IAAY,EACZ,OAAe,EACf,QAAkB;QAElB,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SAC9B;aAAM;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAA;YAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YACnC,OAAO,IAAI,CAAA;SACd;IACL,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,QAAkB;QACzD,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SAC9B;aAAM;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAA;YAC7B,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACvC,OAAO,IAAI,CAAA;SACd;IACL,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,IAAmB;QACjC,IAAI,MAAM,GAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACvE,IAAI,YAAY,GAA4B,EAAE,CAAA;QAC9C,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACtD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;SAC5C;QACD,OAAO,YAAY,CAAA;IACvB,CAAC;IAEM,KAAK,CAAC,OAAO,CAChB,IAA6B,EAC7B,UAAkB,CAAC;QAEnB,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;YACnB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;SAC5C;QACD,OAAO,IAAI,CAAA;IACf,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IAC1C,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,MAAW;QACzC,IAAI,GAAG,IAAI,MAAM,EAAE;YACf,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;SAClD;QACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACvD,CAAC;CACJ;AApGD,sBAoGC;AAED;;;;;;;;;;;;;MAaG"}
@@ -1,14 +0,0 @@
1
- interface CacheInterface {
2
- get(name: string): Promise<any>;
3
- set(name: string, data: any, duration: number): Promise<any>;
4
- forever(name: string, data: any): Promise<any>;
5
- update(name: string, data: any, duration?: number): Promise<any>;
6
- delete(name: string): Promise<Boolean>;
7
- remember(name: string, minutes: number, callback: Function): Promise<any>;
8
- rememberForever(name: string, callback: Function): Promise<any>;
9
- many(keys: Array<string>): Promise<object>;
10
- setMany(data: object, minutes: number): Promise<any>;
11
- flush(): Promise<void>;
12
- }
13
- export default CacheInterface;
14
- //# sourceMappingURL=CacheInterface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CacheInterface.d.ts","sourceRoot":"","sources":["../../../Cache/Contracts/CacheInterface.ts"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACpB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAE/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAE5D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAE9C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAEhE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAEzE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAE/D,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE1C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAEpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,eAAe,cAAc,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CacheInterface.js","sourceRoot":"","sources":["../../../Cache/Contracts/CacheInterface.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- interface EngineInterface {
2
- get(name: string): Promise<any>;
3
- set(name: string, data: any, duration: number): Promise<any>;
4
- delete(name: String): Promise<Boolean>;
5
- flush(): Promise<void>;
6
- }
7
- export default EngineInterface;
8
- //# sourceMappingURL=EngineInterface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EngineInterface.d.ts","sourceRoot":"","sources":["../../../Cache/Contracts/EngineInterface.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACrB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAE/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAE5D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,eAAe,eAAe,CAAA"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=EngineInterface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EngineInterface.js","sourceRoot":"","sources":["../../../Cache/Contracts/EngineInterface.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- interface ServiceInterface {
2
- get(name: string): Promise<any>;
3
- set(name: string, data: any, duration?: number): Promise<any>;
4
- delete(name: string): Promise<boolean>;
5
- flush(): Promise<void>;
6
- }
7
- export default ServiceInterface;
8
- //# sourceMappingURL=ServiceInterface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServiceInterface.d.ts","sourceRoot":"","sources":["../../../Cache/Contracts/ServiceInterface.ts"],"names":[],"mappings":"AAAA,UAAU,gBAAgB;IACtB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAE/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAE7D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,eAAe,gBAAgB,CAAA"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=ServiceInterface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServiceInterface.js","sourceRoot":"","sources":["../../../Cache/Contracts/ServiceInterface.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- import EngineInterface from '../Contracts/EngineInterface';
2
- declare class DatabaseCache implements EngineInterface {
3
- private defaultMinutes;
4
- constructor(app: any);
5
- get(name: string): Promise<any>;
6
- set(name: string, data: any, duration?: number): Promise<any>;
7
- flush(): Promise<void>;
8
- delete(name: string): Promise<any>;
9
- }
10
- export default DatabaseCache;
11
- //# sourceMappingURL=DatabaseCache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DatabaseCache.d.ts","sourceRoot":"","sources":["../../../Cache/Engines/DatabaseCache.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,8BAA8B,CAAA;AAI1D,cAAM,aAAc,YAAW,eAAe;IAC1C,OAAO,CAAC,cAAc,CAAK;gBAEf,GAAG,EAAE,GAAG;IAIP,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAW/B,GAAG,CACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EACT,QAAQ,GAAE,MAA4B,GACvC,OAAO,CAAC,GAAG,CAAC;IAYF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAMlD;AAED,eAAe,aAAa,CAAA"}
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // const DatabaseCache = use("DatabaseCache");
4
- class DatabaseCache {
5
- constructor(app) {
6
- this.defaultMinutes = 60;
7
- console.log(app);
8
- }
9
- async get(name) {
10
- if (name) {
11
- // Implement Database get here
12
- console.log(name);
13
- const value = '';
14
- if (value) {
15
- return JSON.parse(value);
16
- }
17
- }
18
- }
19
- async set(name, data, duration = this.defaultMinutes) {
20
- if (name && data) {
21
- // Implement Set method
22
- console.log(name, data, duration);
23
- // data = JSON.stringify(data);
24
- // if (duration == null) {
25
- // return await this._addCache(name, data);
26
- // }
27
- // return await this._addExpiredCache(name, data, duration);
28
- }
29
- }
30
- async flush() {
31
- throw new Error('Method not implemented.');
32
- }
33
- async delete(name) {
34
- // Implement Delete function
35
- console.log(name);
36
- return true;
37
- }
38
- }
39
- exports.default = DatabaseCache;
40
- //# sourceMappingURL=DatabaseCache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DatabaseCache.js","sourceRoot":"","sources":["../../../Cache/Engines/DatabaseCache.ts"],"names":[],"mappings":";;AAEA,8CAA8C;AAE9C,MAAM,aAAa;IAGf,YAAY,GAAQ;QAFZ,mBAAc,GAAG,EAAE,CAAA;QAGvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY;QACzB,IAAI,IAAI,EAAE;YACN,8BAA8B;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACjB,MAAM,KAAK,GAAG,EAAE,CAAA;YAChB,IAAI,KAAK,EAAE;gBACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;aAC3B;SACJ;IACL,CAAC;IAEM,KAAK,CAAC,GAAG,CACZ,IAAY,EACZ,IAAS,EACT,WAAmB,IAAI,CAAC,cAAc;QAEtC,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,uBAAuB;YACvB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YACjC,iCAAiC;YACjC,4BAA4B;YAC5B,+CAA+C;YAC/C,MAAM;YACN,8DAA8D;SACjE;IACL,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC5B,4BAA4B;QAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEjB,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAED,kBAAe,aAAa,CAAA"}
@@ -1,22 +0,0 @@
1
- import EngineInterface from '../Contracts/EngineInterface';
2
- import { Storage } from '@Typetron/Storage';
3
- import { CacheConfig } from '@Typetron/Framework';
4
- declare class FileCache implements EngineInterface {
5
- storage: Storage;
6
- config: any;
7
- constructor(config: CacheConfig['drivers']['file']);
8
- get(name: string): Promise<any>;
9
- set(name: string, data: any, duration: number): Promise<any>;
10
- flush(): Promise<void>;
11
- delete(key: string): Promise<boolean>;
12
- private ensureCacheDirectoryExists;
13
- private write;
14
- private writeWithTime;
15
- private path;
16
- private read;
17
- private hashKey;
18
- private isCacheExist;
19
- private deleteFile;
20
- }
21
- export default FileCache;
22
- //# sourceMappingURL=FileCache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileCache.d.ts","sourceRoot":"","sources":["../../../Cache/Engines/FileCache.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGjD,cAAM,SAAU,YAAW,eAAe;IAEtC,OAAO,EAAE,OAAO,CAAA;IAET,MAAM,EAAE,GAAG,CAAA;gBAEN,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAIrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAc/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAgB5D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAIpC,0BAA0B;YAM1B,KAAK;YAKL,aAAa;IAgB3B,OAAO,CAAC,IAAI;YAKE,IAAI;IAkBlB,OAAO,CAAC,OAAO;YAID,YAAY;YAIZ,UAAU;CAW3B;AAED,eAAe,SAAS,CAAA"}
@@ -1,107 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const Container_1 = require("@Typetron/Container");
13
- const Storage_1 = require("@Typetron/Storage");
14
- const node_crypto_1 = require("node:crypto");
15
- class FileCache {
16
- constructor(config) {
17
- this.config = config;
18
- }
19
- async get(name) {
20
- if (!(await this.isCacheExist(name))) {
21
- return null;
22
- }
23
- const data = await this.read(name);
24
- if (typeof data === 'boolean') {
25
- return null;
26
- }
27
- return data;
28
- }
29
- async set(name, data, duration) {
30
- if (!name) {
31
- throw new Error('Cache key not provided');
32
- }
33
- if (!data) {
34
- throw new Error('Cache data not provided');
35
- }
36
- if (duration > 0) {
37
- return this.writeWithTime(name, data, duration);
38
- }
39
- return this.write(name, data);
40
- }
41
- async flush() {
42
- await this.storage.deleteDirectory(this.config.path);
43
- }
44
- async delete(key) {
45
- return this.deleteFile(key);
46
- }
47
- async ensureCacheDirectoryExists() {
48
- if (!(await this.storage.exists('.' + this.config.path))) {
49
- await this.storage.makeDirectory('.' + this.config.path);
50
- }
51
- }
52
- async write(key, data) {
53
- await this.ensureCacheDirectoryExists();
54
- await this.storage.put(this.path(key), data);
55
- }
56
- async writeWithTime(key, data, duration) {
57
- await this.ensureCacheDirectoryExists();
58
- const currentDate = new Date();
59
- const futureDate = new Date(currentDate.getTime() + duration * 60000);
60
- const expiresIn = futureDate.getTime();
61
- // Append Timestamp to the data
62
- const newArr = {};
63
- newArr['meta'] = { expiresIn };
64
- newArr['data'] = data;
65
- await this.storage.put(this.path(key), JSON.stringify(newArr));
66
- }
67
- path(key) {
68
- const hashKey = this.hashKey(key);
69
- return '.' + this.config.path + '/' + '_' + hashKey + '.cache';
70
- }
71
- async read(key) {
72
- const binaryData = await this.storage.read(this.path(key));
73
- if (!binaryData.byteLength) {
74
- return false;
75
- }
76
- const data = JSON.parse(binaryData.toString());
77
- const time = data['meta'] && new Date(data['meta']['expiresIn']).getTime();
78
- if (time < new Date().getTime()) {
79
- return this.deleteFile(key);
80
- }
81
- return JSON.stringify(data['data']);
82
- }
83
- hashKey(key) {
84
- return node_crypto_1.createHash('sha1').update(key).digest('hex');
85
- }
86
- async isCacheExist(key) {
87
- return await this.storage.exists(this.path(key));
88
- }
89
- async deleteFile(key) {
90
- try {
91
- if (!await this.isCacheExist(key)) {
92
- return false;
93
- }
94
- await this.storage.delete(this.path(key));
95
- return true;
96
- }
97
- catch (e) {
98
- return false;
99
- }
100
- }
101
- }
102
- __decorate([
103
- Container_1.Inject(),
104
- __metadata("design:type", Storage_1.Storage)
105
- ], FileCache.prototype, "storage", void 0);
106
- exports.default = FileCache;
107
- //# sourceMappingURL=FileCache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileCache.js","sourceRoot":"","sources":["../../../Cache/Engines/FileCache.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mDAA4C;AAE5C,+CAA2C;AAE3C,6CAAwC;AAExC,MAAM,SAAS;IAMX,YAAY,MAAsC;QAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY;QACzB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE;YAClC,OAAO,IAAI,CAAA;SACd;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAElC,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE;YAC3B,OAAO,IAAI,CAAA;SACd;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,IAAS,EAAE,QAAgB;QACtD,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;SAC5C;QAED,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;SAC7C;QAED,IAAI,QAAQ,GAAG,CAAC,EAAE;YACd,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;SAClD;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxD,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAW;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;IAEO,KAAK,CAAC,0BAA0B;QACpC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;YACtD,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;SAC3D;IACL,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,IAAS;QACtC,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAA;QACvC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;IAChD,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,IAAS,EAAE,QAAgB;QAChE,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAA;QAEvC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAA;QAC9B,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAA;QACrE,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,EAAE,CAAA;QACtC,+BAA+B;QAE/B,MAAM,MAAM,GAA4B,EAAE,CAAA;QAE1C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAC,SAAS,EAAC,CAAA;QAC5B,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;QAErB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IAClE,CAAC;IAEO,IAAI,CAAC,GAAW;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACjC,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,CAAA;IAClE,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,GAAW;QAC1B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAE1D,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YACxB,OAAO,KAAK,CAAA;SACf;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAA;QAE9C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;QAE1E,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;SAC9B;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACvC,CAAC;IAEO,OAAO,CAAC,GAAW;QACvB,OAAO,wBAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACvD,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAW;QAClC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,GAAW;QAChC,IAAI;YACA,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;gBAC/B,OAAO,KAAK,CAAA;aACf;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YACzC,OAAO,IAAI,CAAA;SACd;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,KAAK,CAAA;SACf;IACL,CAAC;CACJ;AAnHG;IADC,kBAAM,EAAE;8BACA,iBAAO;0CAAA;AAqHpB,kBAAe,SAAS,CAAA"}