@todoist/ui-extensions-server 0.0.1 → 4.0.0

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 (281) hide show
  1. package/README.md +2 -44
  2. package/dist/analytics/events.d.ts +8 -0
  3. package/dist/analytics/events.js +15 -0
  4. package/dist/analytics/events.js.map +1 -0
  5. package/dist/buffer/cloneBuffer.d.ts +1 -0
  6. package/dist/buffer/cloneBuffer.js +12 -0
  7. package/dist/buffer/cloneBuffer.js.map +1 -0
  8. package/dist/buffer/incomingMessageWithRawBody.d.ts +4 -0
  9. package/dist/buffer/incomingMessageWithRawBody.js +8 -0
  10. package/dist/buffer/incomingMessageWithRawBody.js.map +1 -0
  11. package/dist/buffer/index.d.ts +2 -0
  12. package/dist/buffer/index.js +19 -0
  13. package/dist/buffer/index.js.map +1 -0
  14. package/dist/config/configurationBase.d.ts +29 -0
  15. package/dist/config/configurationBase.js +58 -0
  16. package/dist/config/configurationBase.js.map +1 -0
  17. package/dist/constants/card-actions.d.ts +12 -0
  18. package/dist/constants/card-actions.js +17 -0
  19. package/dist/constants/card-actions.js.map +1 -0
  20. package/dist/constants/core-strings.d.ts +61 -0
  21. package/dist/constants/core-strings.js +66 -0
  22. package/dist/constants/core-strings.js.map +1 -0
  23. package/dist/constants/images.d.ts +25 -0
  24. package/dist/constants/images.js +29 -0
  25. package/dist/constants/images.js.map +1 -0
  26. package/dist/constants/index.d.ts +4 -0
  27. package/dist/constants/index.js +21 -0
  28. package/dist/constants/index.js.map +1 -0
  29. package/dist/constants/ui-constants.d.ts +1 -0
  30. package/dist/constants/ui-constants.js +5 -0
  31. package/dist/constants/ui-constants.js.map +1 -0
  32. package/dist/controllers/app.controller.d.ts +15 -0
  33. package/dist/controllers/app.controller.js +76 -0
  34. package/dist/controllers/app.controller.js.map +1 -0
  35. package/dist/controllers/auth.controller.d.ts +47 -0
  36. package/dist/controllers/auth.controller.js +348 -0
  37. package/dist/controllers/auth.controller.js.map +1 -0
  38. package/dist/controllers/index.d.ts +3 -0
  39. package/dist/controllers/index.js +20 -0
  40. package/dist/controllers/index.js.map +1 -0
  41. package/dist/controllers/ping.controller.d.ts +3 -0
  42. package/dist/controllers/ping.controller.js +30 -0
  43. package/dist/controllers/ping.controller.js.map +1 -0
  44. package/dist/decorators/action-decorators.d.ts +12 -0
  45. package/dist/decorators/action-decorators.js +12 -0
  46. package/dist/decorators/action-decorators.js.map +1 -0
  47. package/dist/decorators/app-token.decorator.d.ts +1 -0
  48. package/dist/decorators/app-token.decorator.js +12 -0
  49. package/dist/decorators/app-token.decorator.js.map +1 -0
  50. package/dist/decorators/index.d.ts +2 -0
  51. package/dist/decorators/index.js +19 -0
  52. package/dist/decorators/index.js.map +1 -0
  53. package/dist/decorators/typed-method-decorator.d.ts +1 -0
  54. package/dist/decorators/typed-method-decorator.js +3 -0
  55. package/dist/decorators/typed-method-decorator.js.map +1 -0
  56. package/dist/entities/User.d.ts +24 -0
  57. package/dist/entities/User.js +89 -0
  58. package/dist/entities/User.js.map +1 -0
  59. package/dist/entities/index.d.ts +1 -0
  60. package/dist/entities/index.js +18 -0
  61. package/dist/entities/index.js.map +1 -0
  62. package/dist/exceptions/index.d.ts +1 -0
  63. package/dist/exceptions/index.js +18 -0
  64. package/dist/exceptions/index.js.map +1 -0
  65. package/dist/exceptions/integration.exception.d.ts +32 -0
  66. package/dist/exceptions/integration.exception.js +17 -0
  67. package/dist/exceptions/integration.exception.js.map +1 -0
  68. package/dist/filters/index.d.ts +1 -0
  69. package/dist/filters/index.js +18 -0
  70. package/dist/filters/index.js.map +1 -0
  71. package/dist/filters/integration-exception.filter.d.ts +10 -0
  72. package/dist/filters/integration-exception.filter.js +83 -0
  73. package/dist/filters/integration-exception.filter.js.map +1 -0
  74. package/dist/guards/extensionVerification.guard.d.ts +6 -0
  75. package/dist/guards/extensionVerification.guard.js +55 -0
  76. package/dist/guards/extensionVerification.guard.js.map +1 -0
  77. package/dist/guards/index.d.ts +1 -0
  78. package/dist/guards/index.js +18 -0
  79. package/dist/guards/index.js.map +1 -0
  80. package/dist/index.d.ts +17 -0
  81. package/dist/index.js +34 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/interceptors/sentry.interceptor.d.ts +5 -0
  84. package/dist/interceptors/sentry.interceptor.js +30 -0
  85. package/dist/interceptors/sentry.interceptor.js.map +1 -0
  86. package/dist/logging/index.d.ts +1 -0
  87. package/dist/logging/index.js +18 -0
  88. package/dist/logging/index.js.map +1 -0
  89. package/dist/logging/json.logger.d.ts +7 -0
  90. package/dist/logging/json.logger.js +23 -0
  91. package/dist/logging/json.logger.js.map +1 -0
  92. package/dist/middleware/index.d.ts +1 -0
  93. package/dist/middleware/index.js +18 -0
  94. package/dist/middleware/index.js.map +1 -0
  95. package/dist/middleware/request-header.middleware.d.ts +8 -0
  96. package/dist/middleware/request-header.middleware.js +29 -0
  97. package/dist/middleware/request-header.middleware.js.map +1 -0
  98. package/dist/middleware/workflow-initial-action.middleware.d.ts +13 -0
  99. package/dist/middleware/workflow-initial-action.middleware.js +23 -0
  100. package/dist/middleware/workflow-initial-action.middleware.js.map +1 -0
  101. package/dist/modules/analytics.module.d.ts +5 -0
  102. package/dist/modules/analytics.module.js +37 -0
  103. package/dist/modules/analytics.module.js.map +1 -0
  104. package/dist/modules/app-token.module.d.ts +2 -0
  105. package/dist/modules/app-token.module.js +22 -0
  106. package/dist/modules/app-token.module.js.map +1 -0
  107. package/dist/modules/auth.module.d.ts +17 -0
  108. package/dist/modules/auth.module.js +44 -0
  109. package/dist/modules/auth.module.js.map +1 -0
  110. package/dist/modules/core.module.d.ts +4 -0
  111. package/dist/modules/core.module.js +38 -0
  112. package/dist/modules/core.module.js.map +1 -0
  113. package/dist/modules/error.module.d.ts +7 -0
  114. package/dist/modules/error.module.js +39 -0
  115. package/dist/modules/error.module.js.map +1 -0
  116. package/dist/modules/index.d.ts +3 -0
  117. package/dist/modules/index.js +20 -0
  118. package/dist/modules/index.js.map +1 -0
  119. package/dist/modules/request-headers.module.d.ts +2 -0
  120. package/dist/modules/request-headers.module.js +22 -0
  121. package/dist/modules/request-headers.module.js.map +1 -0
  122. package/dist/server.d.ts +11 -0
  123. package/dist/server.js +52 -0
  124. package/dist/server.js.map +1 -0
  125. package/dist/services/actions.service.d.ts +19 -0
  126. package/dist/services/actions.service.js +126 -0
  127. package/dist/services/actions.service.js.map +1 -0
  128. package/dist/services/adaptive-card.service.d.ts +57 -0
  129. package/dist/services/adaptive-card.service.js +284 -0
  130. package/dist/services/adaptive-card.service.js.map +1 -0
  131. package/dist/services/analytics.service.d.ts +7 -0
  132. package/dist/services/analytics.service.js +20 -0
  133. package/dist/services/analytics.service.js.map +1 -0
  134. package/dist/services/app-token.service.d.ts +6 -0
  135. package/dist/services/app-token.service.js +47 -0
  136. package/dist/services/app-token.service.js.map +1 -0
  137. package/dist/services/authentication-client.d.ts +42 -0
  138. package/dist/services/authentication-client.js +95 -0
  139. package/dist/services/authentication-client.js.map +1 -0
  140. package/dist/services/composer-append-formatting.service.d.ts +9 -0
  141. package/dist/services/composer-append-formatting.service.js +37 -0
  142. package/dist/services/composer-append-formatting.service.js.map +1 -0
  143. package/dist/services/composer-append-settings.service.d.ts +7 -0
  144. package/dist/services/composer-append-settings.service.js +39 -0
  145. package/dist/services/composer-append-settings.service.js.map +1 -0
  146. package/dist/services/errorCard.service.d.ts +14 -0
  147. package/dist/services/errorCard.service.js +129 -0
  148. package/dist/services/errorCard.service.js.map +1 -0
  149. package/dist/services/google-analytics.service.d.ts +10 -0
  150. package/dist/services/google-analytics.service.js +56 -0
  151. package/dist/services/google-analytics.service.js.map +1 -0
  152. package/dist/services/index.d.ts +15 -0
  153. package/dist/services/index.js +32 -0
  154. package/dist/services/index.js.map +1 -0
  155. package/dist/services/legacy-google-analytics.service.d.ts +10 -0
  156. package/dist/services/legacy-google-analytics.service.js +56 -0
  157. package/dist/services/legacy-google-analytics.service.js.map +1 -0
  158. package/dist/services/login.service.d.ts +31 -0
  159. package/dist/services/login.service.js +165 -0
  160. package/dist/services/login.service.js.map +1 -0
  161. package/dist/services/request-headers.service.d.ts +9 -0
  162. package/dist/services/request-headers.service.js +53 -0
  163. package/dist/services/request-headers.service.js.map +1 -0
  164. package/dist/services/state.service.d.ts +18 -0
  165. package/dist/services/state.service.js +96 -0
  166. package/dist/services/state.service.js.map +1 -0
  167. package/dist/services/theme.service.d.ts +5 -0
  168. package/dist/services/theme.service.js +28 -0
  169. package/dist/services/theme.service.js.map +1 -0
  170. package/dist/services/translation.service.d.ts +3 -0
  171. package/dist/services/translation.service.js +20 -0
  172. package/dist/services/translation.service.js.map +1 -0
  173. package/dist/services/user-database.service.d.ts +18 -0
  174. package/dist/services/user-database.service.js +87 -0
  175. package/dist/services/user-database.service.js.map +1 -0
  176. package/dist/tsconfig.build.tsbuildinfo +1 -0
  177. package/dist/types/auth.d.ts +8 -0
  178. package/dist/types/auth.js +3 -0
  179. package/dist/types/auth.js.map +1 -0
  180. package/dist/types/data.d.ts +12 -0
  181. package/dist/types/data.js +10 -0
  182. package/dist/types/data.js.map +1 -0
  183. package/dist/types/endpoints.d.ts +1 -0
  184. package/dist/types/endpoints.js +3 -0
  185. package/dist/types/endpoints.js.map +1 -0
  186. package/dist/types/error-card-options.d.ts +11 -0
  187. package/dist/types/error-card-options.js +3 -0
  188. package/dist/types/error-card-options.js.map +1 -0
  189. package/dist/types/error.d.ts +2 -0
  190. package/dist/types/error.js +12 -0
  191. package/dist/types/error.js.map +1 -0
  192. package/dist/types/index.d.ts +7 -0
  193. package/dist/types/index.js +24 -0
  194. package/dist/types/index.js.map +1 -0
  195. package/dist/types/logging.d.ts +1 -0
  196. package/dist/types/logging.js +3 -0
  197. package/dist/types/logging.js.map +1 -0
  198. package/dist/types/product.d.ts +1 -0
  199. package/dist/types/product.js +3 -0
  200. package/dist/types/product.js.map +1 -0
  201. package/dist/types/retry.d.ts +11 -0
  202. package/dist/types/retry.js +12 -0
  203. package/dist/types/retry.js.map +1 -0
  204. package/dist/ui/back-button.d.ts +7 -0
  205. package/dist/ui/back-button.js +33 -0
  206. package/dist/ui/back-button.js.map +1 -0
  207. package/dist/ui/button.d.ts +15 -0
  208. package/dist/ui/button.js +27 -0
  209. package/dist/ui/button.js.map +1 -0
  210. package/dist/ui/column.d.ts +4 -0
  211. package/dist/ui/column.js +23 -0
  212. package/dist/ui/column.js.map +1 -0
  213. package/dist/ui/container.d.ts +11 -0
  214. package/dist/ui/container.js +31 -0
  215. package/dist/ui/container.js.map +1 -0
  216. package/dist/ui/date-time-input.d.ts +17 -0
  217. package/dist/ui/date-time-input.js +59 -0
  218. package/dist/ui/date-time-input.js.map +1 -0
  219. package/dist/ui/index.d.ts +9 -0
  220. package/dist/ui/index.js +26 -0
  221. package/dist/ui/index.js.map +1 -0
  222. package/dist/ui/profile-details.d.ts +3 -0
  223. package/dist/ui/profile-details.js +16 -0
  224. package/dist/ui/profile-details.js.map +1 -0
  225. package/dist/ui/stock-button.d.ts +20 -0
  226. package/dist/ui/stock-button.js +131 -0
  227. package/dist/ui/stock-button.js.map +1 -0
  228. package/dist/ui/text-block.d.ts +9 -0
  229. package/dist/ui/text-block.js +24 -0
  230. package/dist/ui/text-block.js.map +1 -0
  231. package/dist/ui/ui-builder-context.d.ts +7 -0
  232. package/dist/ui/ui-builder-context.js +3 -0
  233. package/dist/ui/ui-builder-context.js.map +1 -0
  234. package/dist/utils/action-utils.d.ts +5 -0
  235. package/dist/utils/action-utils.js +29 -0
  236. package/dist/utils/action-utils.js.map +1 -0
  237. package/dist/utils/card-bridge.d.ts +7 -0
  238. package/dist/utils/card-bridge.js +30 -0
  239. package/dist/utils/card-bridge.js.map +1 -0
  240. package/dist/utils/context-utils.d.ts +3 -0
  241. package/dist/utils/context-utils.js +21 -0
  242. package/dist/utils/context-utils.js.map +1 -0
  243. package/dist/utils/dateUtils.d.ts +10 -0
  244. package/dist/utils/dateUtils.js +88 -0
  245. package/dist/utils/dateUtils.js.map +1 -0
  246. package/dist/utils/encryption.d.ts +10 -0
  247. package/dist/utils/encryption.js +70 -0
  248. package/dist/utils/encryption.js.map +1 -0
  249. package/dist/utils/endpointUtils.d.ts +2 -0
  250. package/dist/utils/endpointUtils.js +7 -0
  251. package/dist/utils/endpointUtils.js.map +1 -0
  252. package/dist/utils/envUtils.d.ts +1 -0
  253. package/dist/utils/envUtils.js +7 -0
  254. package/dist/utils/envUtils.js.map +1 -0
  255. package/dist/utils/errorUtils.d.ts +6 -0
  256. package/dist/utils/errorUtils.js +51 -0
  257. package/dist/utils/errorUtils.js.map +1 -0
  258. package/dist/utils/header-utils.d.ts +9 -0
  259. package/dist/utils/header-utils.js +24 -0
  260. package/dist/utils/header-utils.js.map +1 -0
  261. package/dist/utils/index.d.ts +13 -0
  262. package/dist/utils/index.js +30 -0
  263. package/dist/utils/index.js.map +1 -0
  264. package/dist/utils/logger.d.ts +10 -0
  265. package/dist/utils/logger.js +50 -0
  266. package/dist/utils/logger.js.map +1 -0
  267. package/dist/utils/paginationDataUtils.d.ts +6 -0
  268. package/dist/utils/paginationDataUtils.js +52 -0
  269. package/dist/utils/paginationDataUtils.js.map +1 -0
  270. package/dist/utils/urlUtils.d.ts +2 -0
  271. package/dist/utils/urlUtils.js +20 -0
  272. package/dist/utils/urlUtils.js.map +1 -0
  273. package/dist/utils/validationUtils.d.ts +3 -0
  274. package/dist/utils/validationUtils.js +22 -0
  275. package/dist/utils/validationUtils.js.map +1 -0
  276. package/package.json +62 -8
  277. package/views/authDetails.hbs +97 -0
  278. package/views/partials/errorBody.hbs +7 -0
  279. package/views/partials/errorTitle.hbs +1 -0
  280. package/views/partials/successBody.hbs +2 -0
  281. package/views/partials/successTitle.hbs +1 -0
@@ -0,0 +1,29 @@
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.RequestHeaderMiddleware = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const services_1 = require("../services");
15
+ let RequestHeaderMiddleware = class RequestHeaderMiddleware {
16
+ constructor(requestHeaderService) {
17
+ this.requestHeaderService = requestHeaderService;
18
+ }
19
+ use(req, _res, next) {
20
+ this.requestHeaderService.requestHeaders = req.headers;
21
+ next();
22
+ }
23
+ };
24
+ exports.RequestHeaderMiddleware = RequestHeaderMiddleware;
25
+ exports.RequestHeaderMiddleware = RequestHeaderMiddleware = __decorate([
26
+ (0, common_1.Injectable)(),
27
+ __metadata("design:paramtypes", [services_1.RequestHeadersService])
28
+ ], RequestHeaderMiddleware);
29
+ //# sourceMappingURL=request-header.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-header.middleware.js","sourceRoot":"","sources":["../../src/middleware/request-header.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2D;AAE3D,0CAAmD;AAG5C,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAChC,YAA6B,oBAA2C;QAA3C,yBAAoB,GAApB,oBAAoB,CAAuB;IAAG,CAAC;IAE5E,GAAG,CAAC,GAAY,EAAE,IAAc,EAAE,IAAgB;QAC9C,IAAI,CAAC,oBAAoB,CAAC,cAAc,GAAG,GAAG,CAAC,OAAO,CAAA;QACtD,IAAI,EAAE,CAAA;IACV,CAAC;CACJ,CAAA;AAPY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;qCAE0C,gCAAqB;GAD/D,uBAAuB,CAOnC"}
@@ -0,0 +1,13 @@
1
+ import type { TodoistCardAction, TodoistCardRequest } from '@todoist/ui-extensions-core';
2
+ import type { NextFunction, Request } from 'express';
3
+ type Props = {
4
+ queryStringFieldName?: string;
5
+ workflowInitialActionMap: WorkflowInitialActionMap;
6
+ };
7
+ type DoistCardActionInput = {
8
+ actionType: TodoistCardAction['actionType'];
9
+ actionId: TodoistCardAction['actionId'];
10
+ };
11
+ export type WorkflowInitialActionMap = Record<string, DoistCardActionInput>;
12
+ export declare function createWorkflowInitialActionMiddleware({ queryStringFieldName, workflowInitialActionMap, }: Props): (req: Request<unknown, unknown, TodoistCardRequest>, _res: unknown, next: NextFunction) => void;
13
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWorkflowInitialActionMiddleware = createWorkflowInitialActionMiddleware;
4
+ const utils_1 = require("../utils");
5
+ function createWorkflowInitialActionMiddleware({ queryStringFieldName = 'workflow', workflowInitialActionMap, }) {
6
+ return (req, _res, next) => {
7
+ var _a;
8
+ if (!(0, utils_1.isInitial)(req.body.action)) {
9
+ next();
10
+ return;
11
+ }
12
+ const workflow = ((_a = req.query[queryStringFieldName]) !== null && _a !== void 0 ? _a : '').toString();
13
+ const workflowInitialAction = workflowInitialActionMap[workflow];
14
+ if (workflowInitialAction) {
15
+ req.body.action = {
16
+ ...req.body.action,
17
+ ...workflowInitialAction,
18
+ };
19
+ }
20
+ next();
21
+ };
22
+ }
23
+ //# sourceMappingURL=workflow-initial-action.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-initial-action.middleware.js","sourceRoot":"","sources":["../../src/middleware/workflow-initial-action.middleware.ts"],"names":[],"mappings":";;AA4BA,sFA2BC;AArDD,oCAAoC;AA0BpC,SAAgB,qCAAqC,CAAC,EAClD,oBAAoB,GAAG,UAAU,EACjC,wBAAwB,GACpB;IACJ,OAAO,CACH,GAAkD,EAClD,IAAa,EACb,IAAkB,EACpB,EAAE;;QACA,IAAI,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,IAAI,EAAE,CAAA;YACN,OAAM;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,MAAA,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,mCAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;QAEnE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAA;QAEhE,IAAI,qBAAqB,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG;gBACd,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM;gBAClB,GAAG,qBAAqB;aAC3B,CAAA;QACL,CAAC;QAED,IAAI,EAAE,CAAA;IACV,CAAC,CAAA;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ export type AnalyticsVersion = 'GA4' | 'UA';
3
+ export declare class AnalyticsModule {
4
+ static forRoot(): DynamicModule;
5
+ }
@@ -0,0 +1,37 @@
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 AnalyticsModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AnalyticsModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const configurationBase_1 = require("../config/configurationBase");
13
+ const services_1 = require("../services");
14
+ const analytics_service_1 = require("../services/analytics.service");
15
+ let AnalyticsModule = AnalyticsModule_1 = class AnalyticsModule {
16
+ static forRoot() {
17
+ const analyticsVersion = (0, configurationBase_1.getBaseConfiguration)().analyticsVersion;
18
+ return {
19
+ module: AnalyticsModule_1,
20
+ providers: [
21
+ {
22
+ provide: analytics_service_1.AnalyticsService,
23
+ useClass: analyticsVersion === 'UA'
24
+ ? services_1.LegacyGoogleAnalyticsService
25
+ : services_1.GoogleAnalyticsService,
26
+ },
27
+ ],
28
+ exports: [analytics_service_1.AnalyticsService],
29
+ };
30
+ }
31
+ };
32
+ exports.AnalyticsModule = AnalyticsModule;
33
+ exports.AnalyticsModule = AnalyticsModule = AnalyticsModule_1 = __decorate([
34
+ (0, common_1.Global)(),
35
+ (0, common_1.Module)({})
36
+ ], AnalyticsModule);
37
+ //# sourceMappingURL=analytics.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.module.js","sourceRoot":"","sources":["../../src/modules/analytics.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA8D;AAE9D,mEAAkE;AAClE,0CAAkF;AAClF,qEAAgE;AAWzD,IAAM,eAAe,uBAArB,MAAM,eAAe;IACxB,MAAM,CAAC,OAAO;QACV,MAAM,gBAAgB,GAAG,IAAA,wCAAoB,GAAE,CAAC,gBAAgB,CAAA;QAChE,OAAO;YACH,MAAM,EAAE,iBAAe;YACvB,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,oCAAgB;oBACzB,QAAQ,EACJ,gBAAgB,KAAK,IAAI;wBACrB,CAAC,CAAC,uCAA4B;wBAC9B,CAAC,CAAC,iCAAsB;iBACnC;aACJ;YACD,OAAO,EAAE,CAAC,oCAAgB,CAAC;SAC9B,CAAA;IACL,CAAC;CACJ,CAAA;AAjBY,0CAAe;0BAAf,eAAe;IAH3B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GAEE,eAAe,CAiB3B"}
@@ -0,0 +1,2 @@
1
+ export declare class AppTokenModule {
2
+ }
@@ -0,0 +1,22 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AppTokenModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const app_token_service_1 = require("../services/app-token.service");
12
+ let AppTokenModule = class AppTokenModule {
13
+ };
14
+ exports.AppTokenModule = AppTokenModule;
15
+ exports.AppTokenModule = AppTokenModule = __decorate([
16
+ (0, common_1.Global)(),
17
+ (0, common_1.Module)({
18
+ providers: [app_token_service_1.AppTokenService],
19
+ exports: [app_token_service_1.AppTokenService],
20
+ })
21
+ ], AppTokenModule);
22
+ //# sourceMappingURL=app-token.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-token.module.js","sourceRoot":"","sources":["../../src/modules/app-token.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA+C;AAE/C,qEAA+D;AAWxD,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAL1B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACJ,SAAS,EAAE,CAAC,mCAAe,CAAC;QAC5B,OAAO,EAAE,CAAC,mCAAe,CAAC;KAC7B,CAAC;GACW,cAAc,CAAG"}
@@ -0,0 +1,17 @@
1
+ import { DynamicModule, ModuleMetadata, Provider } from '@nestjs/common';
2
+ import { AuthStrings, DoistApp, TokenValidator } from '../controllers';
3
+ type AuthModuleOptions = {
4
+ module?: DynamicModule['module'];
5
+ imports?: ModuleMetadata['imports'];
6
+ exports?: ModuleMetadata['exports'];
7
+ success: AuthStrings;
8
+ error: AuthStrings;
9
+ providers?: Provider[];
10
+ validateToken?: TokenValidator;
11
+ appName?: DoistApp;
12
+ debug?: boolean;
13
+ };
14
+ export declare class AuthModule {
15
+ static forRoot(options: AuthModuleOptions): DynamicModule;
16
+ }
17
+ export {};
@@ -0,0 +1,44 @@
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 AuthModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AuthModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const controllers_1 = require("../controllers");
13
+ const services_1 = require("../services");
14
+ const core_module_1 = require("./core.module");
15
+ let AuthModule = AuthModule_1 = class AuthModule {
16
+ static forRoot(options) {
17
+ var _a, _b, _c, _d;
18
+ return {
19
+ module: (_a = options.module) !== null && _a !== void 0 ? _a : AuthModule_1,
20
+ controllers: [controllers_1.AuthController],
21
+ imports: options.imports,
22
+ providers: [
23
+ { provide: controllers_1.AuthController.SUCCESS, useValue: options.success },
24
+ { provide: controllers_1.AuthController.ERROR, useValue: options.error },
25
+ { provide: controllers_1.TokenValidator, useValue: options.validateToken },
26
+ { provide: controllers_1.AuthController.APP_NAME, useValue: options.appName },
27
+ { provide: controllers_1.AuthController.DEBUG, useValue: (_b = options.debug) !== null && _b !== void 0 ? _b : false },
28
+ ...((_c = options.providers) !== null && _c !== void 0 ? _c : []),
29
+ ],
30
+ exports: [services_1.StateService, ...((_d = options.exports) !== null && _d !== void 0 ? _d : [])],
31
+ };
32
+ }
33
+ };
34
+ exports.AuthModule = AuthModule;
35
+ exports.AuthModule = AuthModule = AuthModule_1 = __decorate([
36
+ (0, common_1.Module)({
37
+ imports: [
38
+ core_module_1.CoreModule,
39
+ ],
40
+ providers: [services_1.StateService],
41
+ exports: [services_1.StateService],
42
+ })
43
+ ], AuthModule);
44
+ //# sourceMappingURL=auth.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../src/modules/auth.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAgF;AAEhF,gDAAsF;AACtF,0CAA0C;AAE1C,+CAA0C;AAsBnC,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACnB,MAAM,CAAC,OAAO,CAAC,OAA0B;;QACrC,OAAO;YACH,MAAM,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,YAAU;YACpC,WAAW,EAAE,CAAC,4BAAc,CAAC;YAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE;gBACP,EAAE,OAAO,EAAE,4BAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE;gBAC9D,EAAE,OAAO,EAAE,4BAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE;gBAC1D,EAAE,OAAO,EAAE,4BAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE;gBAC5D,EAAE,OAAO,EAAE,4BAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE;gBAC/D,EAAE,OAAO,EAAE,4BAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAA,OAAO,CAAC,KAAK,mCAAI,KAAK,EAAE;gBACnE,GAAG,CAAC,MAAA,OAAO,CAAC,SAAS,mCAAI,EAAE,CAAC;aAC/B;YACD,OAAO,EAAE,CAAC,uBAAY,EAAE,GAAG,CAAC,MAAA,OAAO,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC;SACtD,CAAA;IACL,CAAC;CACJ,CAAA;AAjBY,gCAAU;qBAAV,UAAU;IARtB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE;YACL,wBAAU;SACb;QACD,SAAS,EAAE,CAAC,uBAAY,CAAC;QACzB,OAAO,EAAE,CAAC,uBAAY,CAAC;KAC1B,CAAC;GAEW,UAAU,CAiBtB"}
@@ -0,0 +1,4 @@
1
+ import { MiddlewareConsumer, NestModule } from '@nestjs/common';
2
+ export declare class CoreModule implements NestModule {
3
+ configure(consumer: MiddlewareConsumer): void;
4
+ }
@@ -0,0 +1,38 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CoreModule = void 0;
10
+ const axios_1 = require("@nestjs/axios");
11
+ const common_1 = require("@nestjs/common");
12
+ const core_1 = require("@nestjs/core");
13
+ const controllers_1 = require("../controllers");
14
+ const sentry_interceptor_1 = require("../interceptors/sentry.interceptor");
15
+ const request_header_middleware_1 = require("../middleware/request-header.middleware");
16
+ const services_1 = require("../services");
17
+ const analytics_module_1 = require("./analytics.module");
18
+ const app_token_module_1 = require("./app-token.module");
19
+ const request_headers_module_1 = require("./request-headers.module");
20
+ let CoreModule = class CoreModule {
21
+ configure(consumer) {
22
+ consumer.apply(request_header_middleware_1.RequestHeaderMiddleware).forRoutes('*');
23
+ }
24
+ };
25
+ exports.CoreModule = CoreModule;
26
+ exports.CoreModule = CoreModule = __decorate([
27
+ (0, common_1.Module)({
28
+ controllers: [controllers_1.PingController],
29
+ providers: [
30
+ services_1.TranslationService,
31
+ services_1.ThemeService,
32
+ { provide: core_1.APP_INTERCEPTOR, useClass: sentry_interceptor_1.SentryInterceptor },
33
+ ],
34
+ imports: [axios_1.HttpModule, app_token_module_1.AppTokenModule, analytics_module_1.AnalyticsModule.forRoot(), request_headers_module_1.RequestHeadersModule],
35
+ exports: [axios_1.HttpModule, services_1.TranslationService, services_1.ThemeService, app_token_module_1.AppTokenModule, request_headers_module_1.RequestHeadersModule],
36
+ })
37
+ ], CoreModule);
38
+ //# sourceMappingURL=core.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.module.js","sourceRoot":"","sources":["../../src/modules/core.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yCAA0C;AAC1C,2CAAuE;AACvE,uCAA8C;AAE9C,gDAA+C;AAC/C,2EAAsE;AACtE,uFAAiF;AACjF,0CAA8D;AAE9D,yDAAoD;AACpD,yDAAmD;AACnD,qEAA+D;AA8BxD,IAAM,UAAU,GAAhB,MAAM,UAAU;IACnB,SAAS,CAAC,QAA4B;QAClC,QAAQ,CAAC,KAAK,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAC1D,CAAC;CACJ,CAAA;AAJY,gCAAU;qBAAV,UAAU;IAVtB,IAAA,eAAM,EAAC;QACJ,WAAW,EAAE,CAAC,4BAAc,CAAC;QAC7B,SAAS,EAAE;YACP,6BAAkB;YAClB,uBAAY;YACZ,EAAE,OAAO,EAAE,sBAAe,EAAE,QAAQ,EAAE,sCAAiB,EAAE;SAC5D;QACD,OAAO,EAAE,CAAC,kBAAU,EAAE,iCAAc,EAAE,kCAAe,CAAC,OAAO,EAAE,EAAE,6CAAoB,CAAC;QACtF,OAAO,EAAE,CAAC,kBAAU,EAAE,6BAAkB,EAAE,uBAAY,EAAE,iCAAc,EAAE,6CAAoB,CAAC;KAChG,CAAC;GACW,UAAU,CAItB"}
@@ -0,0 +1,7 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { ErrorCardServiceOptions } from '../services/errorCard.service';
3
+ export declare class ErrorModule {
4
+ static forRoot({ errorCardOptions, }: {
5
+ errorCardOptions: ErrorCardServiceOptions;
6
+ }): DynamicModule;
7
+ }
@@ -0,0 +1,39 @@
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 ErrorModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ErrorModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const core_1 = require("@nestjs/core");
13
+ const filters_1 = require("../filters");
14
+ const errorCard_service_1 = require("../services/errorCard.service");
15
+ const core_module_1 = require("./core.module");
16
+ let ErrorModule = ErrorModule_1 = class ErrorModule {
17
+ static forRoot({ errorCardOptions, }) {
18
+ return {
19
+ module: ErrorModule_1,
20
+ imports: [core_module_1.CoreModule],
21
+ providers: [
22
+ { provide: errorCard_service_1.ErrorCardService.OPTIONS, useValue: errorCardOptions },
23
+ errorCard_service_1.ErrorCardService,
24
+ filters_1.IntegrationExceptionFilter,
25
+ {
26
+ provide: core_1.APP_FILTER,
27
+ useClass: filters_1.IntegrationExceptionFilter,
28
+ scope: common_1.Scope.REQUEST,
29
+ },
30
+ ],
31
+ exports: [filters_1.IntegrationExceptionFilter],
32
+ };
33
+ }
34
+ };
35
+ exports.ErrorModule = ErrorModule;
36
+ exports.ErrorModule = ErrorModule = ErrorModule_1 = __decorate([
37
+ (0, common_1.Module)({})
38
+ ], ErrorModule);
39
+ //# sourceMappingURL=error.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.module.js","sourceRoot":"","sources":["../../src/modules/error.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA6D;AAC7D,uCAAyC;AAEzC,wCAAuD;AACvD,qEAAyF;AAEzF,+CAA0C;AAInC,IAAM,WAAW,mBAAjB,MAAM,WAAW;IACpB,MAAM,CAAC,OAAO,CAAC,EACX,gBAAgB,GAGnB;QACG,OAAO;YACH,MAAM,EAAE,aAAW;YACnB,OAAO,EAAE,CAAC,wBAAU,CAAC;YACrB,SAAS,EAAE;gBACP,EAAE,OAAO,EAAE,oCAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE;gBACjE,oCAAgB;gBAChB,oCAA0B;gBAC1B;oBACI,OAAO,EAAE,iBAAU;oBACnB,QAAQ,EAAE,oCAA0B;oBACpC,KAAK,EAAE,cAAK,CAAC,OAAO;iBACvB;aACJ;YACD,OAAO,EAAE,CAAC,oCAA0B,CAAC;SACxC,CAAA;IACL,CAAC;CACJ,CAAA;AAtBY,kCAAW;sBAAX,WAAW;IAFvB,IAAA,eAAM,EAAC,EAAE,CAAC;GAEE,WAAW,CAsBvB"}
@@ -0,0 +1,3 @@
1
+ export * from './auth.module';
2
+ export * from './core.module';
3
+ export * from './error.module';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./auth.module"), exports);
18
+ __exportStar(require("./core.module"), exports);
19
+ __exportStar(require("./error.module"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,gDAA6B;AAC7B,iDAA8B"}
@@ -0,0 +1,2 @@
1
+ export declare class RequestHeadersModule {
2
+ }
@@ -0,0 +1,22 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RequestHeadersModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const request_headers_service_1 = require("../services/request-headers.service");
12
+ let RequestHeadersModule = class RequestHeadersModule {
13
+ };
14
+ exports.RequestHeadersModule = RequestHeadersModule;
15
+ exports.RequestHeadersModule = RequestHeadersModule = __decorate([
16
+ (0, common_1.Global)(),
17
+ (0, common_1.Module)({
18
+ providers: [request_headers_service_1.RequestHeadersService],
19
+ exports: [request_headers_service_1.RequestHeadersService],
20
+ })
21
+ ], RequestHeadersModule);
22
+ //# sourceMappingURL=request-headers.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-headers.module.js","sourceRoot":"","sources":["../../src/modules/request-headers.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA+C;AAE/C,iFAA2E;AAOpE,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAAG,CAAA;AAAvB,oDAAoB;+BAApB,oBAAoB;IALhC,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACJ,SAAS,EAAE,CAAC,+CAAqB,CAAC;QAClC,OAAO,EAAE,CAAC,+CAAqB,CAAC;KACnC,CAAC;GACW,oBAAoB,CAAG"}
@@ -0,0 +1,11 @@
1
+ import type { DynamicModule, NestApplicationOptions, Type } from '@nestjs/common';
2
+ import type { NestExpressApplication } from '@nestjs/platform-express';
3
+ import type { ServeStaticOptions } from '@nestjs/platform-express/interfaces/serve-static-options.interface';
4
+ export type ApplicationOptions = {
5
+ useStaticAssets?: {
6
+ path: string;
7
+ options?: ServeStaticOptions;
8
+ };
9
+ };
10
+ export declare function bootstrap(module: Type<any> | DynamicModule, options?: NestApplicationOptions & ApplicationOptions): Promise<void>;
11
+ export declare function registerViews(app: NestExpressApplication): Promise<void>;
package/dist/server.js ADDED
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.bootstrap = bootstrap;
7
+ exports.registerViews = registerViews;
8
+ const node_path_1 = require("node:path");
9
+ const core_1 = require("@nestjs/core");
10
+ const node_1 = require("@sentry/node");
11
+ const body_parser_1 = require("body-parser");
12
+ const hbs_1 = __importDefault(require("hbs"));
13
+ const cloneBuffer_1 = require("./buffer/cloneBuffer");
14
+ const configurationBase_1 = require("./config/configurationBase");
15
+ const utils_1 = require("./utils");
16
+ const envUtils_1 = require("./utils/envUtils");
17
+ require('date-time-format-timezone');
18
+ async function bootstrap(module, options) {
19
+ const app = await core_1.NestFactory.create(module, options);
20
+ const { port, sentryDsn } = (0, configurationBase_1.getBaseConfiguration)();
21
+ if ((0, envUtils_1.isProduction)() && sentryDsn) {
22
+ (0, node_1.init)({ dsn: sentryDsn, integrations: [(0, node_1.extraErrorDataIntegration)()] });
23
+ }
24
+ app.enableCors({
25
+ methods: 'POST',
26
+ });
27
+ if (options === null || options === void 0 ? void 0 : options.useStaticAssets) {
28
+ app.useStaticAssets(options.useStaticAssets.path, options.useStaticAssets.options);
29
+ }
30
+ await registerViews(app);
31
+ app.use((0, body_parser_1.json)({
32
+ verify: function rawBodyExtraction(req, _res, buf, _encoding) {
33
+ if ((0, utils_1.containsTwistOrTodoistHeaders)(req.headers) && Buffer.isBuffer(buf)) {
34
+ req.rawBody = (0, cloneBuffer_1.cloneBuffer)(buf);
35
+ }
36
+ return true;
37
+ },
38
+ }));
39
+ await app.listen(port);
40
+ }
41
+ function registerViews(app) {
42
+ app.setViewEngine('hbs');
43
+ app.engine('hbs', hbs_1.default.__express);
44
+ const viewsFolder = (0, node_path_1.join)(__dirname, '..', 'views');
45
+ app.setBaseViewsDir(viewsFolder);
46
+ return new Promise((resolve) => {
47
+ hbs_1.default.registerPartials((0, node_path_1.join)(viewsFolder, 'partials'), () => {
48
+ resolve();
49
+ });
50
+ });
51
+ }
52
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;AA2BA,8BAsCC;AAED,sCAcC;AAhFD,yCAAgC;AAEhC,uCAA0C;AAG1C,uCAA4E;AAC5E,6CAAkC;AAClC,8CAAqB;AACrB,sDAAkD;AAElD,kEAAiE;AACjE,mCAAuD;AACvD,+CAA+C;AAK/C,OAAO,CAAC,2BAA2B,CAAC,CAAA;AAS7B,KAAK,UAAU,SAAS,CAC3B,MAAiC,EACjC,OAAqD;IAErD,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAyB,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7E,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAA,wCAAoB,GAAE,CAAA;IAElD,IAAI,IAAA,uBAAY,GAAE,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAA,WAAU,EAAC,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,IAAA,gCAAyB,GAAE,CAAC,EAAE,CAAC,CAAA;IAC/E,CAAC;IAED,GAAG,CAAC,UAAU,CAAC;QACX,OAAO,EAAE,MAAM;KAClB,CAAC,CAAA;IAEF,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,EAAE,CAAC;QAC3B,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IACtF,CAAC;IAED,MAAM,aAAa,CAAC,GAAG,CAAC,CAAA;IAExB,GAAG,CAAC,GAAG,CACH,IAAA,kBAAI,EAAC;QACD,MAAM,EAAE,SAAS,iBAAiB,CAC9B,GAA+B,EAC/B,IAAoB,EACpB,GAAW,EACX,SAAiB;YAEjB,IAAI,IAAA,qCAA6B,EAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,OAAO,GAAG,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAA;YAClC,CAAC;YACD,OAAO,IAAI,CAAA;QACf,CAAC;KACJ,CAAC,CACL,CAAA;IAED,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED,SAAgB,aAAa,CAAC,GAA2B;IACrD,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAGxB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,aAAG,CAAC,SAAS,CAAC,CAAA;IAEhC,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAClD,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;IAEhC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACjC,aAAG,CAAC,gBAAgB,CAAC,IAAA,gBAAI,EAAC,WAAW,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE;YACrD,OAAO,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { TodoistCardRequest, TodoistCardResponse } from '@todoist/ui-extensions-core';
2
+ export type ProcessorRequest = (request: TodoistCardRequest) => boolean;
3
+ export type ProcessorAction = (request: TodoistCardRequest) => Promise<TodoistCardResponse>;
4
+ export type ActionProcessor = {
5
+ check: ProcessorRequest;
6
+ action: ProcessorAction;
7
+ };
8
+ export declare abstract class ActionsService {
9
+ private actionProcessors;
10
+ constructor();
11
+ processRequest(request: TodoistCardRequest): Promise<TodoistCardResponse>;
12
+ abstract getInitialView(request: TodoistCardRequest): Promise<TodoistCardResponse>;
13
+ goHome(request: TodoistCardRequest): Promise<TodoistCardResponse>;
14
+ continueFromLogin(request: TodoistCardRequest): Promise<TodoistCardResponse>;
15
+ close(): Promise<TodoistCardResponse>;
16
+ retry(request: TodoistCardRequest): Promise<TodoistCardResponse>;
17
+ protected addActionProcessors(actions: ActionProcessor[]): void;
18
+ private registerDecoratedActions;
19
+ }
@@ -0,0 +1,126 @@
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
+ var ActionsService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ActionsService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const core_1 = require("@nestjs/core");
16
+ const __1 = require("..");
17
+ const decorators_1 = require("../decorators");
18
+ const action_utils_1 = require("../utils/action-utils");
19
+ let ActionsService = ActionsService_1 = class ActionsService {
20
+ constructor() {
21
+ this.actionProcessors = [];
22
+ this.addActionProcessors([
23
+ {
24
+ check: (request) => (0, action_utils_1.isInitial)(request.action),
25
+ action: (request) => this.getInitialView(request),
26
+ },
27
+ ]);
28
+ this.registerDecoratedActions();
29
+ }
30
+ async processRequest(request) {
31
+ const { action } = request;
32
+ const actionProcessor = this.actionProcessors.find((processor) => processor.check(request));
33
+ if (!actionProcessor) {
34
+ const actionDetails = action.actionId
35
+ ? `${action.actionType}.${action.actionId}`
36
+ : action.actionType;
37
+ throw new common_1.HttpException(`${actionDetails} is not a valid action`, common_1.HttpStatus.BAD_REQUEST);
38
+ }
39
+ return actionProcessor.action(request);
40
+ }
41
+ goHome(request) {
42
+ return this.getInitialView(request);
43
+ }
44
+ continueFromLogin(request) {
45
+ return this.getInitialView(request);
46
+ }
47
+ close() {
48
+ return Promise.resolve({
49
+ bridges: [__1.DoistCardBridgeFactory.finished],
50
+ });
51
+ }
52
+ async retry(request) {
53
+ const { data } = request.action;
54
+ if (!data) {
55
+ throw new Error('Retry action must have data');
56
+ }
57
+ const actionType = new String(data[__1.RetryAttributes.ACTION_TYPE]).toString();
58
+ const command = new String(data[__1.RetryAttributes.COMMAND]).toString();
59
+ const originalData = __1.RetryAttributes.ORIGINAL_DATA in data
60
+ ? data[__1.RetryAttributes.ORIGINAL_DATA]
61
+ : undefined;
62
+ const originalInputs = __1.RetryAttributes.ORIGINAL_INPUTS in data
63
+ ? data[__1.RetryAttributes.ORIGINAL_INPUTS]
64
+ : undefined;
65
+ request.action.actionId = command;
66
+ request.action.data = originalData;
67
+ request.action.inputs = originalInputs;
68
+ request.action.actionType = actionType;
69
+ return this.processRequest(request);
70
+ }
71
+ addActionProcessors(actions) {
72
+ actions.forEach((a) => {
73
+ this.actionProcessors.push(a);
74
+ });
75
+ }
76
+ registerDecoratedActions() {
77
+ const metadataScanner = new core_1.MetadataScanner();
78
+ const instancePrototype = Object.getPrototypeOf(this);
79
+ metadataScanner.scanFromPrototype(this, instancePrototype, (methodName) => {
80
+ const instanceCallback = this[methodName];
81
+ const prototypeCallback = instancePrototype[methodName];
82
+ const actionMetadata = Reflect.getMetadata(decorators_1.ACTION_METADATA, prototypeCallback);
83
+ if (actionMetadata) {
84
+ const { actionType, actionId } = actionMetadata;
85
+ this.addActionProcessors([
86
+ {
87
+ check: (request) => request.action.actionType === actionType &&
88
+ (actionId === undefined ||
89
+ (0, action_utils_1.isValidActionId)(request.action.actionId, actionId)),
90
+ action: (request) => instanceCallback.apply(this, [request]),
91
+ },
92
+ ]);
93
+ }
94
+ });
95
+ }
96
+ };
97
+ exports.ActionsService = ActionsService;
98
+ __decorate([
99
+ (0, decorators_1.Submit)({ actionId: __1.CardActions.GoHome }),
100
+ __metadata("design:type", Function),
101
+ __metadata("design:paramtypes", [Object]),
102
+ __metadata("design:returntype", Promise)
103
+ ], ActionsService.prototype, "goHome", null);
104
+ __decorate([
105
+ (0, decorators_1.Submit)({ actionId: __1.CardActions.Continue }),
106
+ __metadata("design:type", Function),
107
+ __metadata("design:paramtypes", [Object]),
108
+ __metadata("design:returntype", Promise)
109
+ ], ActionsService.prototype, "continueFromLogin", null);
110
+ __decorate([
111
+ (0, decorators_1.Submit)({ actionId: __1.CardActions.Close }),
112
+ __metadata("design:type", Function),
113
+ __metadata("design:paramtypes", []),
114
+ __metadata("design:returntype", Promise)
115
+ ], ActionsService.prototype, "close", null);
116
+ __decorate([
117
+ (0, decorators_1.Submit)({ actionId: __1.CardActions.Retry }),
118
+ __metadata("design:type", Function),
119
+ __metadata("design:paramtypes", [Object]),
120
+ __metadata("design:returntype", Promise)
121
+ ], ActionsService.prototype, "retry", null);
122
+ exports.ActionsService = ActionsService = ActionsService_1 = __decorate([
123
+ (0, common_1.Injectable)(),
124
+ __metadata("design:paramtypes", [])
125
+ ], ActionsService);
126
+ //# sourceMappingURL=actions.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.service.js","sourceRoot":"","sources":["../../src/services/actions.service.ts"],"names":[],"mappings":"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"}