@todoist/ui-extensions-server 0.0.0-stage → 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 -2
  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 +63 -5
  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 @@
1
+ {"version":3,"file":"composer-append-settings.service.js","sourceRoot":"","sources":["../../src/services/composer-append-settings.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2C;AAC3C,oEAAoE;AAEpE,4DAAgD;AAEhD,+DAA0D;AAGnD,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACtC,YAA6B,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;IAAG,CAAC;IAEvE,mCAAmC,CAAC,EAAU,EAAE,gBAA0B;QACtE,MAAM,qBAAqB,GAAG,IAAI,mCAAc,EAAE,CAAA;QAClD,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAA;QAC7B,qBAAqB,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,mBAAI,CAAC,eAAe,CAAC,CAAA;QAE1F,MAAM,iBAAiB,GAAG,IAAI,2BAAM,CAChC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,mBAAI,CAAC,YAAY,CAAC,EACzD,IAAI,CAAC,QAAQ,EAAE,CAClB,CAAA;QACD,MAAM,kBAAkB,GAAG,IAAI,2BAAM,CACjC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,mBAAI,CAAC,aAAa,CAAC,EAC1D,KAAK,CAAC,QAAQ,EAAE,CACnB,CAAA;QAED,qBAAqB,CAAC,OAAO,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAA;QACvE,qBAAqB,CAAC,YAAY;YAC9B,CAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAA;QAEnF,qBAAqB,CAAC,OAAO,GAAG,QAAQ,CAAA;QAExC,OAAO,qBAAqB,CAAA;IAChC,CAAC;CACJ,CAAA;AAzBY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,mBAAU,GAAE;qCAEwC,wCAAkB;GAD1D,6BAA6B,CAyBzC"}
@@ -0,0 +1,14 @@
1
+ import { TodoistCard, TodoistCardRequest } from '@todoist/ui-extensions-core';
2
+ import type { ErrorCardOptions } from '../types';
3
+ import { ThemeService } from './theme.service';
4
+ import { TranslationService } from './translation.service';
5
+ export type ErrorCardServiceOptions = Pick<ErrorCardOptions, 'showSignout' | 'showGoHome' | 'helpCenterLink'>;
6
+ export declare class ErrorCardService {
7
+ private readonly translationService;
8
+ private readonly themeService;
9
+ private readonly options;
10
+ static readonly OPTIONS = "ErrorCardService.Options";
11
+ constructor(translationService: TranslationService, themeService: ThemeService, options: ErrorCardServiceOptions);
12
+ private getErrorCardOptions;
13
+ errorCard(request: TodoistCardRequest, errorCardOptions?: ErrorCardOptions): TodoistCard;
14
+ }
@@ -0,0 +1,129 @@
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 __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ErrorCardService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const ui_extensions_core_1 = require("@todoist/ui-extensions-core");
18
+ const lodash_1 = require("lodash");
19
+ const constants_1 = require("../constants");
20
+ const types_1 = require("../types");
21
+ const adaptive_card_service_1 = require("./adaptive-card.service");
22
+ const theme_service_1 = require("./theme.service");
23
+ const translation_service_1 = require("./translation.service");
24
+ let ErrorCardService = class ErrorCardService {
25
+ constructor(translationService, themeService, options) {
26
+ this.translationService = translationService;
27
+ this.themeService = themeService;
28
+ this.options = options;
29
+ }
30
+ getErrorCardOptions(request, errorCardOptions = {}) {
31
+ const defaultOptions = {
32
+ showSignout: true,
33
+ showGoHome: true,
34
+ maximumDoistCardVersion: 0.3,
35
+ errorMessage: this.translationService.getTranslation(constants_1.Core.ERROR_CONTENT),
36
+ };
37
+ const serviceOptions = {
38
+ showSignout: this.options.showSignout,
39
+ showGoHome: this.options.showGoHome,
40
+ helpCenterLink: this.options.helpCenterLink,
41
+ };
42
+ const requestOptions = {
43
+ maximumDoistCardVersion: request.maximumDoistCardVersion,
44
+ };
45
+ return (0, lodash_1.merge)(defaultOptions, serviceOptions, requestOptions, errorCardOptions);
46
+ }
47
+ errorCard(request, errorCardOptions) {
48
+ const { showSignout, showGoHome, errorMessage, exceptionMessage, retryRequest, helpCenterLink, errorId, maximumDoistCardVersion, } = this.getErrorCardOptions(request, errorCardOptions);
49
+ const card = new ui_extensions_core_1.TodoistCard();
50
+ card.todoistCardVersion = '0.3';
51
+ card.verticalContentAlignment = 'center';
52
+ card.minHeight = 200;
53
+ const errorImage = new ui_extensions_core_1.Image();
54
+ errorImage.pixelWidth = 200;
55
+ errorImage.url = this.themeService.createThemeBasedUrl(constants_1.ERROR_IMAGE);
56
+ errorImage.horizontalAlignment = 'center';
57
+ const content = new ui_extensions_core_1.TextBlock(errorMessage);
58
+ content.id = adaptive_card_service_1.ERROR_CONTENT_ID;
59
+ content.horizontalAlignment = 'center';
60
+ content.wrap = true;
61
+ card.addItem(errorImage);
62
+ card.addItem(content);
63
+ if (retryRequest) {
64
+ const data = {
65
+ [types_1.RetryAttributes.ORIGINAL_DATA]: retryRequest.retryAction.data,
66
+ [types_1.RetryAttributes.ORIGINAL_INPUTS]: retryRequest.retryAction.inputs,
67
+ [types_1.RetryAttributes.COMMAND]: retryRequest.retryAction.actionId,
68
+ [types_1.RetryAttributes.ACTION_TYPE]: retryRequest.retryAction.actionType,
69
+ exceptionMessage: exceptionMessage,
70
+ };
71
+ const retryButton = new ui_extensions_core_1.SubmitAction();
72
+ retryButton.id = constants_1.CardActions.Retry;
73
+ retryButton.data = data;
74
+ retryButton.style = 'positive';
75
+ retryButton.title = this.translationService.getTranslation(constants_1.Core.RETRY);
76
+ const column = new ui_extensions_core_1.Column(new ui_extensions_core_1.SizeAndUnit(100, 'pixel'));
77
+ const actions = new ui_extensions_core_1.ActionSet();
78
+ actions.id = 'RetryActions';
79
+ actions.addAction(retryButton);
80
+ column.addItem(actions);
81
+ const columns = new ui_extensions_core_1.ColumnSet();
82
+ columns.horizontalAlignment = 'center';
83
+ columns.spacing = 'medium';
84
+ columns.addColumn(column);
85
+ card.addItem(columns);
86
+ }
87
+ const actionSet = new ui_extensions_core_1.ActionSet();
88
+ actionSet.spacing = 'medium';
89
+ if (showGoHome) {
90
+ const goHomeButton = new ui_extensions_core_1.SubmitAction();
91
+ goHomeButton.id = constants_1.CardActions.GoHome;
92
+ goHomeButton.title = this.translationService.getTranslation(constants_1.Core.GO_BACK);
93
+ goHomeButton.associatedInputs = 'none';
94
+ actionSet.addAction(goHomeButton);
95
+ }
96
+ if (helpCenterLink) {
97
+ const contactUsButton = new ui_extensions_core_1.OpenUrlAction();
98
+ contactUsButton.title = this.translationService.getTranslation(constants_1.Core.CONTACT_US);
99
+ contactUsButton.url = helpCenterLink;
100
+ actionSet.addAction(contactUsButton);
101
+ }
102
+ if (errorId && maximumDoistCardVersion && maximumDoistCardVersion >= 0.6) {
103
+ card.todoistCardVersion = '0.6';
104
+ const copySupportDataButton = new ui_extensions_core_1.ClipboardAction();
105
+ copySupportDataButton.id = constants_1.CardActions.CopySupportInfo;
106
+ copySupportDataButton.title = this.translationService.getTranslation(constants_1.Core.COPY_SUPPORT_INFORMATION);
107
+ copySupportDataButton.text = JSON.stringify({ errorId });
108
+ actionSet.addAction(copySupportDataButton);
109
+ }
110
+ if (showSignout) {
111
+ const signOutButton = new ui_extensions_core_1.SubmitAction();
112
+ signOutButton.id = constants_1.CardActions.LogOut;
113
+ signOutButton.title = this.translationService.getTranslation(constants_1.Core.LOGOUT);
114
+ signOutButton.style = 'destructive';
115
+ actionSet.addAction(signOutButton);
116
+ }
117
+ card.addItem(actionSet);
118
+ return card;
119
+ }
120
+ };
121
+ exports.ErrorCardService = ErrorCardService;
122
+ ErrorCardService.OPTIONS = 'ErrorCardService.Options';
123
+ exports.ErrorCardService = ErrorCardService = __decorate([
124
+ (0, common_1.Injectable)(),
125
+ __param(2, (0, common_1.Inject)(ErrorCardService.OPTIONS)),
126
+ __metadata("design:paramtypes", [translation_service_1.TranslationService,
127
+ theme_service_1.ThemeService, Object])
128
+ ], ErrorCardService);
129
+ //# sourceMappingURL=errorCard.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorCard.service.js","sourceRoot":"","sources":["../../src/services/errorCard.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { AnalyticsEvent } from '@todoist/integrations-common';
2
+ import { AnalyticsService as AnalyticsBaseService } from '../services/analytics.service';
3
+ import { Logger } from '../utils';
4
+ export declare class GoogleAnalyticsService extends AnalyticsBaseService {
5
+ private analyticsService?;
6
+ _logger?: Logger;
7
+ getLogger(): Logger;
8
+ setUserId(userId: number): void;
9
+ trackEvents(events: AnalyticsEvent[]): void;
10
+ }
@@ -0,0 +1,56 @@
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 GoogleAnalyticsService_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.GoogleAnalyticsService = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const node_1 = require("@sentry/node");
13
+ const integrations_common_1 = require("@todoist/integrations-common");
14
+ const configurationBase_1 = require("../config/configurationBase");
15
+ const analytics_service_1 = require("../services/analytics.service");
16
+ const utils_1 = require("../utils");
17
+ let GoogleAnalyticsService = GoogleAnalyticsService_1 = class GoogleAnalyticsService extends analytics_service_1.AnalyticsService {
18
+ getLogger() {
19
+ if (!this._logger) {
20
+ this._logger = new utils_1.Logger(GoogleAnalyticsService_1.name, 'ANALYTICS');
21
+ }
22
+ return this._logger;
23
+ }
24
+ setUserId(userId) {
25
+ const { googleMeasurementId, googleAPISecret } = (0, configurationBase_1.getBaseConfiguration)();
26
+ this.getLogger().log('Instantiating Google Analytics GA service', {
27
+ googleMeasurementId,
28
+ });
29
+ this.analyticsService = new integrations_common_1.AnalyticsService({
30
+ apiSecret: googleAPISecret,
31
+ measurementId: googleMeasurementId,
32
+ clientId: (0, integrations_common_1.createIdFromString)(userId.toString()),
33
+ appVersion: undefined,
34
+ });
35
+ }
36
+ trackEvents(events) {
37
+ this.getLogger().log('Sending events to Google Analytics GA4', { events });
38
+ if (this.analyticsService) {
39
+ if ((0, utils_1.isProduction)()) {
40
+ this.analyticsService.trackEvents(events).catch((error) => {
41
+ this.getLogger().error(error);
42
+ (0, node_1.captureException)(error);
43
+ });
44
+ }
45
+ }
46
+ else {
47
+ const message = 'analyticsService has not been instantiated before tracking events';
48
+ this.getLogger().error(message);
49
+ }
50
+ }
51
+ };
52
+ exports.GoogleAnalyticsService = GoogleAnalyticsService;
53
+ exports.GoogleAnalyticsService = GoogleAnalyticsService = GoogleAnalyticsService_1 = __decorate([
54
+ (0, common_1.Injectable)({ scope: common_1.Scope.REQUEST })
55
+ ], GoogleAnalyticsService);
56
+ //# sourceMappingURL=google-analytics.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-analytics.service.js","sourceRoot":"","sources":["../../src/services/google-analytics.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAkD;AAClD,uCAA+C;AAC/C,sEAAmG;AAEnG,mEAAkE;AAClE,qEAAwF;AACxF,oCAA+C;AAOxC,IAAM,sBAAsB,8BAA5B,MAAM,sBAAuB,SAAQ,oCAAoB;IAY5D,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,IAAI,cAAM,CAAC,wBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,SAAS,CAAC,MAAc;QACpB,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,GAAG,IAAA,wCAAoB,GAAE,CAAA;QACvE,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,2CAA2C,EAAE;YAC9D,mBAAmB;SACtB,CAAC,CAAA;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,sCAAgB,CAAC;YACzC,SAAS,EAAE,eAAyB;YACpC,aAAa,EAAE,mBAA6B;YAC5C,QAAQ,EAAE,IAAA,wCAAkB,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC/C,UAAU,EAAE,SAAS;SACxB,CAAC,CAAA;IACN,CAAC;IAED,WAAW,CAAC,MAAwB;QAChC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,wCAAwC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAC1E,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,IAAA,oBAAY,GAAE,EAAE,CAAC;gBACjB,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBAEtD,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBAC7B,IAAA,uBAAgB,EAAC,KAAK,CAAC,CAAA;gBAC3B,CAAC,CAAC,CAAA;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YAGJ,MAAM,OAAO,GAAG,mEAAmE,CAAA;YACnF,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;IACL,CAAC;CACJ,CAAA;AAjDY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,cAAK,CAAC,OAAO,EAAE,CAAC;GACxB,sBAAsB,CAiDlC"}
@@ -0,0 +1,15 @@
1
+ export * from './actions.service';
2
+ export * from './adaptive-card.service';
3
+ export * from './analytics.service';
4
+ export * from './app-token.service';
5
+ export * from './authentication-client';
6
+ export * from './composer-append-formatting.service';
7
+ export * from './composer-append-settings.service';
8
+ export * from './google-analytics.service';
9
+ export * from './legacy-google-analytics.service';
10
+ export * from './login.service';
11
+ export * from './request-headers.service';
12
+ export * from './state.service';
13
+ export * from './theme.service';
14
+ export * from './translation.service';
15
+ export * from './user-database.service';
@@ -0,0 +1,32 @@
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("./actions.service"), exports);
18
+ __exportStar(require("./adaptive-card.service"), exports);
19
+ __exportStar(require("./analytics.service"), exports);
20
+ __exportStar(require("./app-token.service"), exports);
21
+ __exportStar(require("./authentication-client"), exports);
22
+ __exportStar(require("./composer-append-formatting.service"), exports);
23
+ __exportStar(require("./composer-append-settings.service"), exports);
24
+ __exportStar(require("./google-analytics.service"), exports);
25
+ __exportStar(require("./legacy-google-analytics.service"), exports);
26
+ __exportStar(require("./login.service"), exports);
27
+ __exportStar(require("./request-headers.service"), exports);
28
+ __exportStar(require("./state.service"), exports);
29
+ __exportStar(require("./theme.service"), exports);
30
+ __exportStar(require("./translation.service"), exports);
31
+ __exportStar(require("./user-database.service"), exports);
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,0DAAuC;AACvC,sDAAmC;AACnC,sDAAmC;AACnC,0DAAuC;AACvC,uEAAoD;AACpD,qEAAkD;AAClD,6DAA0C;AAC1C,oEAAiD;AACjD,kDAA+B;AAC/B,4DAAyC;AACzC,kDAA+B;AAC/B,kDAA+B;AAC/B,wDAAqC;AACrC,0DAAuC"}
@@ -0,0 +1,10 @@
1
+ import { AnalyticsEvent } from '@todoist/integrations-common';
2
+ import { AnalyticsService as AnalyticsBaseService } from '../services/analytics.service';
3
+ import { Logger } from '../utils';
4
+ export declare class LegacyGoogleAnalyticsService extends AnalyticsBaseService {
5
+ private analyticsService?;
6
+ _logger?: Logger;
7
+ getLogger(): Logger;
8
+ setUserId(userId: number): void;
9
+ trackEvents(events: AnalyticsEvent[]): void;
10
+ }
@@ -0,0 +1,56 @@
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 LegacyGoogleAnalyticsService_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.LegacyGoogleAnalyticsService = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const node_1 = require("@sentry/node");
13
+ const integrations_common_1 = require("@todoist/integrations-common");
14
+ const configurationBase_1 = require("../config/configurationBase");
15
+ const analytics_service_1 = require("../services/analytics.service");
16
+ const utils_1 = require("../utils");
17
+ let LegacyGoogleAnalyticsService = LegacyGoogleAnalyticsService_1 = class LegacyGoogleAnalyticsService extends analytics_service_1.AnalyticsService {
18
+ getLogger() {
19
+ if (!this._logger) {
20
+ this._logger = new utils_1.Logger(LegacyGoogleAnalyticsService_1.name, 'ANALYTICS');
21
+ }
22
+ return this._logger;
23
+ }
24
+ setUserId(userId) {
25
+ const { googleTrackingId } = (0, configurationBase_1.getBaseConfiguration)();
26
+ this.getLogger().log('Instantiating Google Analytics UA service (deprecated)', {
27
+ googleTrackingId,
28
+ });
29
+ this.analyticsService = new integrations_common_1.LegacyAnalyticsService({
30
+ trackingId: googleTrackingId,
31
+ clientId: (0, integrations_common_1.createIdFromString)(userId.toString()),
32
+ provideCustomUserAgent: true,
33
+ appVersion: undefined,
34
+ });
35
+ }
36
+ trackEvents(events) {
37
+ this.getLogger().log('Sending events to Google Analytics UA (deprecated)', { events });
38
+ if (this.analyticsService) {
39
+ if ((0, utils_1.isProduction)()) {
40
+ this.analyticsService.trackEvents(events).catch((error) => {
41
+ this.getLogger().error(error);
42
+ (0, node_1.captureException)(error);
43
+ });
44
+ }
45
+ }
46
+ else {
47
+ const message = 'analyticsService has not been instantiated before tracking events';
48
+ this.getLogger().error(message);
49
+ }
50
+ }
51
+ };
52
+ exports.LegacyGoogleAnalyticsService = LegacyGoogleAnalyticsService;
53
+ exports.LegacyGoogleAnalyticsService = LegacyGoogleAnalyticsService = LegacyGoogleAnalyticsService_1 = __decorate([
54
+ (0, common_1.Injectable)({ scope: common_1.Scope.REQUEST })
55
+ ], LegacyGoogleAnalyticsService);
56
+ //# sourceMappingURL=legacy-google-analytics.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-google-analytics.service.js","sourceRoot":"","sources":["../../src/services/legacy-google-analytics.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAkD;AAClD,uCAA+C;AAC/C,sEAIqC;AAErC,mEAAkE;AAClE,qEAAwF;AACxF,oCAA+C;AAOxC,IAAM,4BAA4B,oCAAlC,MAAM,4BAA6B,SAAQ,oCAAoB;IAYlE,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,IAAI,cAAM,CAAC,8BAA4B,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAC7E,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,SAAS,CAAC,MAAc;QACpB,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAA,wCAAoB,GAAE,CAAA;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,wDAAwD,EAAE;YAC3E,gBAAgB;SACnB,CAAC,CAAA;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,4CAAsB,CAAC;YAC/C,UAAU,EAAE,gBAA0B;YACtC,QAAQ,EAAE,IAAA,wCAAkB,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC/C,sBAAsB,EAAE,IAAI;YAC5B,UAAU,EAAE,SAAS;SACxB,CAAC,CAAA;IACN,CAAC;IAED,WAAW,CAAC,MAAwB;QAChC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,oDAAoD,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QACtF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,IAAA,oBAAY,GAAE,EAAE,CAAC;gBACjB,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBAEtD,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBAC7B,IAAA,uBAAgB,EAAC,KAAK,CAAC,CAAA;gBAC3B,CAAC,CAAC,CAAA;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YAGJ,MAAM,OAAO,GAAG,mEAAmE,CAAA;YACnF,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;IACL,CAAC;CACJ,CAAA;AAjDY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,cAAK,CAAC,OAAO,EAAE,CAAC;GACxB,4BAA4B,CAiDxC"}
@@ -0,0 +1,31 @@
1
+ import { TodoistCardActionData, TodoistCardContext, TodoistCardExtensionType, TodoistCardResponse } from '@todoist/ui-extensions-core';
2
+ import { AdaptiveCardService } from './adaptive-card.service';
3
+ import { AnalyticsService } from './analytics.service';
4
+ import { AuthenticationClient } from './authentication-client';
5
+ import { TranslationService } from './translation.service';
6
+ type LoginCardVerson = 'v1' | 'v2';
7
+ export type LoginCardInformation = {
8
+ authUrl: string;
9
+ loginTitle: string;
10
+ loginInstructions: string;
11
+ learnMoreLink?: string;
12
+ loginCardVersion?: LoginCardVerson;
13
+ };
14
+ export type LoginCardOptions = Omit<LoginCardInformation, 'authUrl'>;
15
+ export declare class LoginService {
16
+ private readonly authenticationClient;
17
+ private readonly analyticsService;
18
+ private readonly adaptiveCardService;
19
+ private readonly translationService;
20
+ private options;
21
+ static OPTIONS: string;
22
+ constructor(authenticationClient: AuthenticationClient, analyticsService: AnalyticsService, adaptiveCardService: AdaptiveCardService, translationService: TranslationService, options: LoginCardOptions);
23
+ getAuthentication(context: TodoistCardContext, isInitialLaunch?: boolean, options?: {
24
+ unauthorized?: boolean;
25
+ continueButtonData?: () => TodoistCardActionData | undefined;
26
+ extensionType?: TodoistCardExtensionType;
27
+ }): Promise<TodoistCardResponse>;
28
+ private createLoginCard;
29
+ private createLegacyLoginCard;
30
+ }
31
+ export {};
@@ -0,0 +1,165 @@
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 __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.LoginService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const ui_extensions_core_1 = require("@todoist/ui-extensions-core");
18
+ const __1 = require("..");
19
+ const events_1 = require("../analytics/events");
20
+ const adaptive_card_service_1 = require("./adaptive-card.service");
21
+ const analytics_service_1 = require("./analytics.service");
22
+ const authentication_client_1 = require("./authentication-client");
23
+ const translation_service_1 = require("./translation.service");
24
+ let LoginService = class LoginService {
25
+ constructor(authenticationClient, analyticsService, adaptiveCardService, translationService, options) {
26
+ this.authenticationClient = authenticationClient;
27
+ this.analyticsService = analyticsService;
28
+ this.adaptiveCardService = adaptiveCardService;
29
+ this.translationService = translationService;
30
+ this.options = options;
31
+ }
32
+ async getAuthentication(context, isInitialLaunch = false, options) {
33
+ var _a;
34
+ if (isInitialLaunch) {
35
+ this.analyticsService.trackEvents([events_1.launchedNotAuthenticated]);
36
+ }
37
+ const loginCardInformation = {
38
+ authUrl: await this.authenticationClient.getAuthorizationUrl((0, __1.getUserId)(context)),
39
+ ...this.options,
40
+ };
41
+ const card = this.options.loginCardVersion === 'v2'
42
+ ? this.createLoginCard({
43
+ loginCardInformation,
44
+ displayUnauthorized: options === null || options === void 0 ? void 0 : options.unauthorized,
45
+ continueButtonData: options === null || options === void 0 ? void 0 : options.continueButtonData,
46
+ extensionType: options === null || options === void 0 ? void 0 : options.extensionType,
47
+ })
48
+ : this.createLegacyLoginCard(loginCardInformation, (_a = options === null || options === void 0 ? void 0 : options.unauthorized) !== null && _a !== void 0 ? _a : false, options === null || options === void 0 ? void 0 : options.continueButtonData);
49
+ return { card };
50
+ }
51
+ createLoginCard({ loginCardInformation, displayUnauthorized = false, continueButtonData, extensionType, }) {
52
+ const { authUrl, loginInstructions, loginTitle, learnMoreLink } = loginCardInformation;
53
+ return ui_extensions_core_1.TodoistCard.fromWithItems({
54
+ todoistCardVersion: '0.3',
55
+ items: [
56
+ ...(displayUnauthorized
57
+ ? [
58
+ ui_extensions_core_1.TextBlock.from({
59
+ text: this.translationService.getTranslation(__1.Core.UNAUTHORIZED),
60
+ color: 'attention',
61
+ wrap: true,
62
+ }),
63
+ ]
64
+ : []),
65
+ ui_extensions_core_1.TextBlock.from({
66
+ text: this.translationService.getTranslation(loginTitle),
67
+ weight: 'bolder',
68
+ }),
69
+ ui_extensions_core_1.RichTextBlock.fromWithInlines({
70
+ spacing: 'medium',
71
+ inlines: [
72
+ ui_extensions_core_1.TextRun.from({
73
+ text: this.translationService.getTranslation(loginInstructions),
74
+ isSubtle: true,
75
+ size: 'small',
76
+ }),
77
+ ...(learnMoreLink
78
+ ? [
79
+ ui_extensions_core_1.TextRun.from({
80
+ spacing: 'small',
81
+ text: this.translationService.getTranslation(__1.Core.LEARN_MORE),
82
+ selectAction: ui_extensions_core_1.OpenUrlAction.from({
83
+ url: learnMoreLink,
84
+ }),
85
+ color: 'attention',
86
+ size: 'small',
87
+ }),
88
+ ]
89
+ : []),
90
+ ],
91
+ }),
92
+ (0, __1.columnSet)(ui_extensions_core_1.ActionSet.fromWithActions({
93
+ spacing: 'large',
94
+ actions: [
95
+ ui_extensions_core_1.SubmitAction.from({
96
+ id: __1.CardActions.Continue,
97
+ title: this.translationService.getTranslation(__1.Core.ALREADY_DONE),
98
+ data: continueButtonData === null || continueButtonData === void 0 ? void 0 : continueButtonData(),
99
+ associatedInputs: 'none',
100
+ }),
101
+ ui_extensions_core_1.OpenUrlAction.from({
102
+ url: authUrl,
103
+ title: this.translationService.getTranslation(__1.Core.AUTHENTICATE),
104
+ style: 'positive',
105
+ }),
106
+ ],
107
+ }), {
108
+ horizontalAlignment: extensionType === 'settings' ? undefined : 'right',
109
+ spacing: 'medium',
110
+ }),
111
+ ],
112
+ });
113
+ }
114
+ createLegacyLoginCard(loginCardInformation, displayUnauthorized = false, continueButtonData) {
115
+ const { authUrl, loginInstructions, loginTitle, learnMoreLink } = loginCardInformation;
116
+ const card = this.adaptiveCardService.createEmptyCard();
117
+ const topContainer = new ui_extensions_core_1.Container();
118
+ const loginInstructionText = new ui_extensions_core_1.TextBlock(this.translationService.getTranslation(loginInstructions));
119
+ loginInstructionText.wrap = true;
120
+ if (displayUnauthorized) {
121
+ const unauthorizedText = new ui_extensions_core_1.TextBlock(this.translationService.getTranslation(__1.Core.UNAUTHORIZED));
122
+ unauthorizedText.color = 'attention';
123
+ unauthorizedText.wrap = true;
124
+ card.addItem(unauthorizedText);
125
+ }
126
+ topContainer.addItem(loginInstructionText);
127
+ const loginButton = new ui_extensions_core_1.OpenUrlAction();
128
+ loginButton.url = authUrl;
129
+ loginButton.title = this.translationService.getTranslation(loginTitle);
130
+ loginButton.style = 'positive';
131
+ const continueButton = new ui_extensions_core_1.SubmitAction();
132
+ continueButton.id = __1.CardActions.Continue;
133
+ continueButton.title = this.translationService.getTranslation(__1.Core.CONTINUE);
134
+ continueButton.associatedInputs = 'none';
135
+ continueButton.data = continueButtonData === null || continueButtonData === void 0 ? void 0 : continueButtonData();
136
+ const actions = new ui_extensions_core_1.ActionSet();
137
+ actions.addAction(continueButton);
138
+ actions.addAction(loginButton);
139
+ topContainer.addItem((0, __1.columnSet)(actions, { horizontalAlignment: 'right' }));
140
+ const bottomContainer = new ui_extensions_core_1.Container();
141
+ bottomContainer.separator = true;
142
+ bottomContainer.spacing = 'extraLarge';
143
+ const bottomColumns = new ui_extensions_core_1.ColumnSet();
144
+ const learnMoreColumn = new ui_extensions_core_1.Column('stretch');
145
+ if (learnMoreLink) {
146
+ learnMoreColumn.addItem((0, __1.createLearnMoreButton)(this.adaptiveCardService, learnMoreLink));
147
+ bottomColumns.addColumn(learnMoreColumn);
148
+ }
149
+ bottomContainer.addItem(bottomColumns);
150
+ card.addItem(topContainer);
151
+ card.addItem(bottomContainer);
152
+ return card;
153
+ }
154
+ };
155
+ exports.LoginService = LoginService;
156
+ LoginService.OPTIONS = 'LoginService.OPTIONS';
157
+ exports.LoginService = LoginService = __decorate([
158
+ (0, common_1.Injectable)(),
159
+ __param(4, (0, common_1.Inject)(LoginService.OPTIONS)),
160
+ __metadata("design:paramtypes", [authentication_client_1.AuthenticationClient,
161
+ analytics_service_1.AnalyticsService,
162
+ adaptive_card_service_1.AdaptiveCardService,
163
+ translation_service_1.TranslationService, Object])
164
+ ], LoginService);
165
+ //# sourceMappingURL=login.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.service.js","sourceRoot":"","sources":["../../src/services/login.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Request } from 'express';
2
+ export type Headers = Request['headers'];
3
+ export declare class RequestHeadersService {
4
+ #private;
5
+ get requestHeaders(): Headers | never;
6
+ set requestHeaders(requestHeaders: Headers | undefined);
7
+ get origin(): string | undefined;
8
+ get referer(): string | undefined;
9
+ }
@@ -0,0 +1,53 @@
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 __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
14
+ if (kind === "m") throw new TypeError("Private method is not writable");
15
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
16
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
17
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
18
+ };
19
+ var _RequestHeadersService_requestHeaders;
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.RequestHeadersService = void 0;
22
+ const common_1 = require("@nestjs/common");
23
+ const exceptions_1 = require("../exceptions");
24
+ let RequestHeadersService = class RequestHeadersService {
25
+ constructor() {
26
+ _RequestHeadersService_requestHeaders.set(this, void 0);
27
+ }
28
+ get requestHeaders() {
29
+ if (!__classPrivateFieldGet(this, _RequestHeadersService_requestHeaders, "f")) {
30
+ throw new exceptions_1.IntegrationException({
31
+ error: new Error('Missing request headers'),
32
+ });
33
+ }
34
+ return __classPrivateFieldGet(this, _RequestHeadersService_requestHeaders, "f");
35
+ }
36
+ set requestHeaders(requestHeaders) {
37
+ __classPrivateFieldSet(this, _RequestHeadersService_requestHeaders, requestHeaders, "f");
38
+ }
39
+ get origin() {
40
+ return this.requestHeaders.origin;
41
+ }
42
+ get referer() {
43
+ return this.requestHeaders.referer;
44
+ }
45
+ };
46
+ exports.RequestHeadersService = RequestHeadersService;
47
+ _RequestHeadersService_requestHeaders = new WeakMap();
48
+ exports.RequestHeadersService = RequestHeadersService = __decorate([
49
+ (0, common_1.Injectable)({
50
+ scope: common_1.Scope.REQUEST,
51
+ })
52
+ ], RequestHeadersService);
53
+ //# sourceMappingURL=request-headers.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-headers.service.js","sourceRoot":"","sources":["../../src/services/request-headers.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,8CAAoD;AAO7C,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAA3B;QACH,wDAAoC;IAsBxC,CAAC;IApBG,IAAI,cAAc;QACd,IAAI,CAAC,uBAAA,IAAI,6CAAgB,EAAE,CAAC;YACxB,MAAM,IAAI,iCAAoB,CAAC;gBAC3B,KAAK,EAAE,IAAI,KAAK,CAAC,yBAAyB,CAAC;aAC9C,CAAC,CAAA;QACN,CAAC;QACD,OAAO,uBAAA,IAAI,6CAAgB,CAAA;IAC/B,CAAC;IAED,IAAI,cAAc,CAAC,cAAmC;QAClD,uBAAA,IAAI,yCAAmB,cAAc,MAAA,CAAA;IACzC,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAA;IACrC,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAA;IACtC,CAAC;CACJ,CAAA;AAvBY,sDAAqB;;gCAArB,qBAAqB;IAHjC,IAAA,mBAAU,EAAC;QACR,KAAK,EAAE,cAAK,CAAC,OAAO;KACvB,CAAC;GACW,qBAAqB,CAuBjC"}