mcp-creatio 0.3.6

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 (370) hide show
  1. package/.dockerignore +12 -0
  2. package/.editorconfig +14 -0
  3. package/.eslintrc.cjs +18 -0
  4. package/.gitattributes +8 -0
  5. package/.github/workflows/docker-publish.yml +50 -0
  6. package/.prettierignore +3 -0
  7. package/.prettierrc +9 -0
  8. package/.vscode/launch.json +23 -0
  9. package/.vscode/mcp.json +13 -0
  10. package/.vscode/settings.json +16 -0
  11. package/Agent.md +187 -0
  12. package/Debug.md +32 -0
  13. package/Dockerfile +23 -0
  14. package/LICENSE +21 -0
  15. package/README.md +162 -0
  16. package/dist/cli.d.ts +3 -0
  17. package/dist/cli.d.ts.map +1 -0
  18. package/dist/cli.js +135 -0
  19. package/dist/cli.js.map +1 -0
  20. package/dist/config-builder.d.ts +3 -0
  21. package/dist/config-builder.d.ts.map +1 -0
  22. package/dist/config-builder.js +66 -0
  23. package/dist/config-builder.js.map +1 -0
  24. package/dist/consts.d.ts +2 -0
  25. package/dist/consts.d.ts.map +1 -0
  26. package/dist/consts.js +6 -0
  27. package/dist/consts.js.map +1 -0
  28. package/dist/creatio/auth/auth-manager.d.ts +9 -0
  29. package/dist/creatio/auth/auth-manager.d.ts.map +1 -0
  30. package/dist/creatio/auth/auth-manager.js +29 -0
  31. package/dist/creatio/auth/auth-manager.js.map +1 -0
  32. package/dist/creatio/auth/auth.d.ts +16 -0
  33. package/dist/creatio/auth/auth.d.ts.map +1 -0
  34. package/dist/creatio/auth/auth.js +20 -0
  35. package/dist/creatio/auth/auth.js.map +1 -0
  36. package/dist/creatio/auth/index.d.ts +4 -0
  37. package/dist/creatio/auth/index.d.ts.map +1 -0
  38. package/dist/creatio/auth/index.js +21 -0
  39. package/dist/creatio/auth/index.js.map +1 -0
  40. package/dist/creatio/auth/providers/base-oauth2-provider.d.ts +17 -0
  41. package/dist/creatio/auth/providers/base-oauth2-provider.d.ts.map +1 -0
  42. package/dist/creatio/auth/providers/base-oauth2-provider.js +49 -0
  43. package/dist/creatio/auth/providers/base-oauth2-provider.js.map +1 -0
  44. package/dist/creatio/auth/providers/base-provider.d.ts +15 -0
  45. package/dist/creatio/auth/providers/base-provider.d.ts.map +1 -0
  46. package/dist/creatio/auth/providers/base-provider.js +32 -0
  47. package/dist/creatio/auth/providers/base-provider.js.map +1 -0
  48. package/dist/creatio/auth/providers/index.d.ts +5 -0
  49. package/dist/creatio/auth/providers/index.d.ts.map +1 -0
  50. package/dist/creatio/auth/providers/index.js +21 -0
  51. package/dist/creatio/auth/providers/index.js.map +1 -0
  52. package/dist/creatio/auth/providers/legacy-provider.d.ts +10 -0
  53. package/dist/creatio/auth/providers/legacy-provider.d.ts.map +1 -0
  54. package/dist/creatio/auth/providers/legacy-provider.js +73 -0
  55. package/dist/creatio/auth/providers/legacy-provider.js.map +1 -0
  56. package/dist/creatio/auth/providers/oauth2-code-provider.d.ts +18 -0
  57. package/dist/creatio/auth/providers/oauth2-code-provider.d.ts.map +1 -0
  58. package/dist/creatio/auth/providers/oauth2-code-provider.js +245 -0
  59. package/dist/creatio/auth/providers/oauth2-code-provider.js.map +1 -0
  60. package/dist/creatio/auth/providers/oauth2-provider.d.ts +9 -0
  61. package/dist/creatio/auth/providers/oauth2-provider.d.ts.map +1 -0
  62. package/dist/creatio/auth/providers/oauth2-provider.js +86 -0
  63. package/dist/creatio/auth/providers/oauth2-provider.js.map +1 -0
  64. package/dist/creatio/auth/providers/type.d.ts +6 -0
  65. package/dist/creatio/auth/providers/type.d.ts.map +1 -0
  66. package/dist/creatio/auth/providers/type.js +10 -0
  67. package/dist/creatio/auth/providers/type.js.map +1 -0
  68. package/dist/creatio/client-config.d.ts +29 -0
  69. package/dist/creatio/client-config.d.ts.map +1 -0
  70. package/dist/creatio/client-config.js +3 -0
  71. package/dist/creatio/client-config.js.map +1 -0
  72. package/dist/creatio/engines/crud/crud-engine.d.ts +15 -0
  73. package/dist/creatio/engines/crud/crud-engine.d.ts.map +1 -0
  74. package/dist/creatio/engines/crud/crud-engine.js +33 -0
  75. package/dist/creatio/engines/crud/crud-engine.js.map +1 -0
  76. package/dist/creatio/engines/engine-manager.d.ts +33 -0
  77. package/dist/creatio/engines/engine-manager.d.ts.map +1 -0
  78. package/dist/creatio/engines/engine-manager.js +54 -0
  79. package/dist/creatio/engines/engine-manager.js.map +1 -0
  80. package/dist/creatio/engines/engine-registry.d.ts +15 -0
  81. package/dist/creatio/engines/engine-registry.d.ts.map +1 -0
  82. package/dist/creatio/engines/engine-registry.js +35 -0
  83. package/dist/creatio/engines/engine-registry.js.map +1 -0
  84. package/dist/creatio/engines/engine.d.ts +4 -0
  85. package/dist/creatio/engines/engine.d.ts.map +1 -0
  86. package/dist/creatio/engines/engine.js +3 -0
  87. package/dist/creatio/engines/engine.js.map +1 -0
  88. package/dist/creatio/engines/index.d.ts +8 -0
  89. package/dist/creatio/engines/index.d.ts.map +1 -0
  90. package/dist/creatio/engines/index.js +24 -0
  91. package/dist/creatio/engines/index.js.map +1 -0
  92. package/dist/creatio/engines/process/process-engine.d.ts +10 -0
  93. package/dist/creatio/engines/process/process-engine.d.ts.map +1 -0
  94. package/dist/creatio/engines/process/process-engine.js +18 -0
  95. package/dist/creatio/engines/process/process-engine.js.map +1 -0
  96. package/dist/creatio/engines/sys-settings/sys-settings-engine.d.ts +13 -0
  97. package/dist/creatio/engines/sys-settings/sys-settings-engine.d.ts.map +1 -0
  98. package/dist/creatio/engines/sys-settings/sys-settings-engine.js +27 -0
  99. package/dist/creatio/engines/sys-settings/sys-settings-engine.js.map +1 -0
  100. package/dist/creatio/engines/user/user-engine.d.ts +10 -0
  101. package/dist/creatio/engines/user/user-engine.d.ts.map +1 -0
  102. package/dist/creatio/engines/user/user-engine.js +18 -0
  103. package/dist/creatio/engines/user/user-engine.js.map +1 -0
  104. package/dist/creatio/index.d.ts +7 -0
  105. package/dist/creatio/index.d.ts.map +1 -0
  106. package/dist/creatio/index.js +23 -0
  107. package/dist/creatio/index.js.map +1 -0
  108. package/dist/creatio/provider-context.d.ts +10 -0
  109. package/dist/creatio/provider-context.d.ts.map +1 -0
  110. package/dist/creatio/provider-context.js +3 -0
  111. package/dist/creatio/provider-context.js.map +1 -0
  112. package/dist/creatio/providers/crud-provider.d.ts +40 -0
  113. package/dist/creatio/providers/crud-provider.d.ts.map +1 -0
  114. package/dist/creatio/providers/crud-provider.js +3 -0
  115. package/dist/creatio/providers/crud-provider.js.map +1 -0
  116. package/dist/creatio/providers/index.d.ts +5 -0
  117. package/dist/creatio/providers/index.d.ts.map +1 -0
  118. package/dist/creatio/providers/index.js +21 -0
  119. package/dist/creatio/providers/index.js.map +1 -0
  120. package/dist/creatio/providers/process-provider.d.ts +14 -0
  121. package/dist/creatio/providers/process-provider.d.ts.map +1 -0
  122. package/dist/creatio/providers/process-provider.js +3 -0
  123. package/dist/creatio/providers/process-provider.js.map +1 -0
  124. package/dist/creatio/providers/sys-settings-provider.d.ts +58 -0
  125. package/dist/creatio/providers/sys-settings-provider.d.ts.map +1 -0
  126. package/dist/creatio/providers/sys-settings-provider.js +3 -0
  127. package/dist/creatio/providers/sys-settings-provider.js.map +1 -0
  128. package/dist/creatio/providers/user-provider.d.ts +12 -0
  129. package/dist/creatio/providers/user-provider.d.ts.map +1 -0
  130. package/dist/creatio/providers/user-provider.js +3 -0
  131. package/dist/creatio/providers/user-provider.js.map +1 -0
  132. package/dist/creatio/services/creatio-service-context.d.ts +17 -0
  133. package/dist/creatio/services/creatio-service-context.d.ts.map +1 -0
  134. package/dist/creatio/services/creatio-service-context.js +35 -0
  135. package/dist/creatio/services/creatio-service-context.js.map +1 -0
  136. package/dist/creatio/services/http-client.d.ts +29 -0
  137. package/dist/creatio/services/http-client.d.ts.map +1 -0
  138. package/dist/creatio/services/http-client.js +136 -0
  139. package/dist/creatio/services/http-client.js.map +1 -0
  140. package/dist/creatio/services/index.d.ts +8 -0
  141. package/dist/creatio/services/index.d.ts.map +1 -0
  142. package/dist/creatio/services/index.js +24 -0
  143. package/dist/creatio/services/index.js.map +1 -0
  144. package/dist/creatio/services/metadata-store.d.ts +20 -0
  145. package/dist/creatio/services/metadata-store.d.ts.map +1 -0
  146. package/dist/creatio/services/metadata-store.js +162 -0
  147. package/dist/creatio/services/metadata-store.js.map +1 -0
  148. package/dist/creatio/services/odata-crud-provider.d.ts +21 -0
  149. package/dist/creatio/services/odata-crud-provider.d.ts.map +1 -0
  150. package/dist/creatio/services/odata-crud-provider.js +145 -0
  151. package/dist/creatio/services/odata-crud-provider.js.map +1 -0
  152. package/dist/creatio/services/process-service-provider.d.ts +11 -0
  153. package/dist/creatio/services/process-service-provider.d.ts.map +1 -0
  154. package/dist/creatio/services/process-service-provider.js +52 -0
  155. package/dist/creatio/services/process-service-provider.js.map +1 -0
  156. package/dist/creatio/services/sys-settings-service-provider.d.ts +19 -0
  157. package/dist/creatio/services/sys-settings-service-provider.d.ts.map +1 -0
  158. package/dist/creatio/services/sys-settings-service-provider.js +107 -0
  159. package/dist/creatio/services/sys-settings-service-provider.js.map +1 -0
  160. package/dist/creatio/services/user-info-provider.d.ts +10 -0
  161. package/dist/creatio/services/user-info-provider.d.ts.map +1 -0
  162. package/dist/creatio/services/user-info-provider.js +26 -0
  163. package/dist/creatio/services/user-info-provider.js.map +1 -0
  164. package/dist/index.d.ts +2 -0
  165. package/dist/index.d.ts.map +1 -0
  166. package/dist/index.js +46 -0
  167. package/dist/index.js.map +1 -0
  168. package/dist/log.d.ts +51 -0
  169. package/dist/log.d.ts.map +1 -0
  170. package/dist/log.js +137 -0
  171. package/dist/log.js.map +1 -0
  172. package/dist/server/http/creatio-oauth-handlers.d.ts +14 -0
  173. package/dist/server/http/creatio-oauth-handlers.d.ts.map +1 -0
  174. package/dist/server/http/creatio-oauth-handlers.js +137 -0
  175. package/dist/server/http/creatio-oauth-handlers.js.map +1 -0
  176. package/dist/server/http/httpServer.d.ts +23 -0
  177. package/dist/server/http/httpServer.d.ts.map +1 -0
  178. package/dist/server/http/httpServer.js +131 -0
  179. package/dist/server/http/httpServer.js.map +1 -0
  180. package/dist/server/http/index.d.ts +6 -0
  181. package/dist/server/http/index.d.ts.map +1 -0
  182. package/dist/server/http/index.js +22 -0
  183. package/dist/server/http/index.js.map +1 -0
  184. package/dist/server/http/mcp-handlers.d.ts +10 -0
  185. package/dist/server/http/mcp-handlers.d.ts.map +1 -0
  186. package/dist/server/http/mcp-handlers.js +82 -0
  187. package/dist/server/http/mcp-handlers.js.map +1 -0
  188. package/dist/server/http/mcp-oauth-handlers.d.ts +11 -0
  189. package/dist/server/http/mcp-oauth-handlers.d.ts.map +1 -0
  190. package/dist/server/http/mcp-oauth-handlers.js +106 -0
  191. package/dist/server/http/mcp-oauth-handlers.js.map +1 -0
  192. package/dist/server/http/middleware.d.ts +11 -0
  193. package/dist/server/http/middleware.d.ts.map +1 -0
  194. package/dist/server/http/middleware.js +88 -0
  195. package/dist/server/http/middleware.js.map +1 -0
  196. package/dist/server/index.d.ts +3 -0
  197. package/dist/server/index.d.ts.map +1 -0
  198. package/dist/server/index.js +19 -0
  199. package/dist/server/index.js.map +1 -0
  200. package/dist/server/mcp/filters.d.ts +2 -0
  201. package/dist/server/mcp/filters.d.ts.map +1 -0
  202. package/dist/server/mcp/filters.js +94 -0
  203. package/dist/server/mcp/filters.js.map +1 -0
  204. package/dist/server/mcp/index.d.ts +2 -0
  205. package/dist/server/mcp/index.d.ts.map +1 -0
  206. package/dist/server/mcp/index.js +18 -0
  207. package/dist/server/mcp/index.js.map +1 -0
  208. package/dist/server/mcp/prompts-data.d.ts +147 -0
  209. package/dist/server/mcp/prompts-data.d.ts.map +1 -0
  210. package/dist/server/mcp/prompts-data.js +884 -0
  211. package/dist/server/mcp/prompts-data.js.map +1 -0
  212. package/dist/server/mcp/server.d.ts +25 -0
  213. package/dist/server/mcp/server.d.ts.map +1 -0
  214. package/dist/server/mcp/server.js +233 -0
  215. package/dist/server/mcp/server.js.map +1 -0
  216. package/dist/server/mcp/tools-data.d.ts +165 -0
  217. package/dist/server/mcp/tools-data.d.ts.map +1 -0
  218. package/dist/server/mcp/tools-data.js +466 -0
  219. package/dist/server/mcp/tools-data.js.map +1 -0
  220. package/dist/server/oauth/client-manager.d.ts +6 -0
  221. package/dist/server/oauth/client-manager.d.ts.map +1 -0
  222. package/dist/server/oauth/client-manager.js +52 -0
  223. package/dist/server/oauth/client-manager.js.map +1 -0
  224. package/dist/server/oauth/index.d.ts +7 -0
  225. package/dist/server/oauth/index.d.ts.map +1 -0
  226. package/dist/server/oauth/index.js +23 -0
  227. package/dist/server/oauth/index.js.map +1 -0
  228. package/dist/server/oauth/oauth-server.d.ts +21 -0
  229. package/dist/server/oauth/oauth-server.d.ts.map +1 -0
  230. package/dist/server/oauth/oauth-server.js +146 -0
  231. package/dist/server/oauth/oauth-server.js.map +1 -0
  232. package/dist/server/oauth/storage.d.ts +31 -0
  233. package/dist/server/oauth/storage.d.ts.map +1 -0
  234. package/dist/server/oauth/storage.js +73 -0
  235. package/dist/server/oauth/storage.js.map +1 -0
  236. package/dist/server/oauth/token-manager.d.ts +13 -0
  237. package/dist/server/oauth/token-manager.d.ts.map +1 -0
  238. package/dist/server/oauth/token-manager.js +69 -0
  239. package/dist/server/oauth/token-manager.js.map +1 -0
  240. package/dist/server/oauth/types.d.ts +51 -0
  241. package/dist/server/oauth/types.d.ts.map +1 -0
  242. package/dist/server/oauth/types.js +3 -0
  243. package/dist/server/oauth/types.js.map +1 -0
  244. package/dist/server/oauth/validators.d.ts +7 -0
  245. package/dist/server/oauth/validators.d.ts.map +1 -0
  246. package/dist/server/oauth/validators.js +51 -0
  247. package/dist/server/oauth/validators.js.map +1 -0
  248. package/dist/services/index.d.ts +3 -0
  249. package/dist/services/index.d.ts.map +1 -0
  250. package/dist/services/index.js +19 -0
  251. package/dist/services/index.js.map +1 -0
  252. package/dist/services/session-context.d.ts +57 -0
  253. package/dist/services/session-context.d.ts.map +1 -0
  254. package/dist/services/session-context.js +182 -0
  255. package/dist/services/session-context.js.map +1 -0
  256. package/dist/services/token-refresh-scheduler.d.ts +16 -0
  257. package/dist/services/token-refresh-scheduler.d.ts.map +1 -0
  258. package/dist/services/token-refresh-scheduler.js +66 -0
  259. package/dist/services/token-refresh-scheduler.js.map +1 -0
  260. package/dist/types/index.d.ts +2 -0
  261. package/dist/types/index.d.ts.map +1 -0
  262. package/dist/types/index.js +18 -0
  263. package/dist/types/index.js.map +1 -0
  264. package/dist/types/network.d.ts +7 -0
  265. package/dist/types/network.d.ts.map +1 -0
  266. package/dist/types/network.js +6 -0
  267. package/dist/types/network.js.map +1 -0
  268. package/dist/utils/context.d.ts +10 -0
  269. package/dist/utils/context.d.ts.map +1 -0
  270. package/dist/utils/context.js +44 -0
  271. package/dist/utils/context.js.map +1 -0
  272. package/dist/utils/env.d.ts +3 -0
  273. package/dist/utils/env.d.ts.map +1 -0
  274. package/dist/utils/env.js +16 -0
  275. package/dist/utils/env.js.map +1 -0
  276. package/dist/utils/index.d.ts +6 -0
  277. package/dist/utils/index.d.ts.map +1 -0
  278. package/dist/utils/index.js +22 -0
  279. package/dist/utils/index.js.map +1 -0
  280. package/dist/utils/mcp.d.ts +3 -0
  281. package/dist/utils/mcp.d.ts.map +1 -0
  282. package/dist/utils/mcp.js +7 -0
  283. package/dist/utils/mcp.js.map +1 -0
  284. package/dist/utils/network.d.ts +7 -0
  285. package/dist/utils/network.d.ts.map +1 -0
  286. package/dist/utils/network.js +63 -0
  287. package/dist/utils/network.js.map +1 -0
  288. package/dist/utils/pkce.d.ts +7 -0
  289. package/dist/utils/pkce.d.ts.map +1 -0
  290. package/dist/utils/pkce.js +43 -0
  291. package/dist/utils/pkce.js.map +1 -0
  292. package/dist/version.d.ts +3 -0
  293. package/dist/version.d.ts.map +1 -0
  294. package/dist/version.js +10 -0
  295. package/dist/version.js.map +1 -0
  296. package/docs/coding-style.md +30 -0
  297. package/ecosystem.config.json +17 -0
  298. package/eslint.config.cjs +95 -0
  299. package/package.json +54 -0
  300. package/src/cli.ts +158 -0
  301. package/src/config-builder.ts +76 -0
  302. package/src/consts.ts +3 -0
  303. package/src/creatio/auth/auth-manager.ts +27 -0
  304. package/src/creatio/auth/auth.ts +31 -0
  305. package/src/creatio/auth/index.ts +3 -0
  306. package/src/creatio/auth/providers/base-oauth2-provider.ts +62 -0
  307. package/src/creatio/auth/providers/base-provider.ts +42 -0
  308. package/src/creatio/auth/providers/index.ts +4 -0
  309. package/src/creatio/auth/providers/legacy-provider.ts +70 -0
  310. package/src/creatio/auth/providers/oauth2-code-provider.ts +252 -0
  311. package/src/creatio/auth/providers/oauth2-provider.ts +91 -0
  312. package/src/creatio/auth/providers/type.ts +5 -0
  313. package/src/creatio/client-config.ts +34 -0
  314. package/src/creatio/engines/crud/crud-engine.ts +47 -0
  315. package/src/creatio/engines/engine-manager.ts +102 -0
  316. package/src/creatio/engines/engine-registry.ts +36 -0
  317. package/src/creatio/engines/engine.ts +3 -0
  318. package/src/creatio/engines/index.ts +7 -0
  319. package/src/creatio/engines/process/process-engine.ts +20 -0
  320. package/src/creatio/engines/sys-settings/sys-settings-engine.ts +41 -0
  321. package/src/creatio/engines/user/user-engine.ts +20 -0
  322. package/src/creatio/index.ts +6 -0
  323. package/src/creatio/provider-context.ts +10 -0
  324. package/src/creatio/providers/crud-provider.ts +45 -0
  325. package/src/creatio/providers/index.ts +4 -0
  326. package/src/creatio/providers/process-provider.ts +15 -0
  327. package/src/creatio/providers/sys-settings-provider.ts +63 -0
  328. package/src/creatio/providers/user-provider.ts +12 -0
  329. package/src/creatio/services/creatio-service-context.ts +38 -0
  330. package/src/creatio/services/http-client.ts +174 -0
  331. package/src/creatio/services/index.ts +7 -0
  332. package/src/creatio/services/metadata-store.ts +181 -0
  333. package/src/creatio/services/odata-crud-provider.ts +210 -0
  334. package/src/creatio/services/process-service-provider.ts +76 -0
  335. package/src/creatio/services/sys-settings-service-provider.ts +192 -0
  336. package/src/creatio/services/user-info-provider.ts +41 -0
  337. package/src/index.ts +44 -0
  338. package/src/log.ts +141 -0
  339. package/src/server/http/creatio-oauth-handlers.ts +146 -0
  340. package/src/server/http/httpServer.ts +150 -0
  341. package/src/server/http/index.ts +5 -0
  342. package/src/server/http/mcp-handlers.ts +92 -0
  343. package/src/server/http/mcp-oauth-handlers.ts +108 -0
  344. package/src/server/http/middleware.ts +91 -0
  345. package/src/server/index.ts +2 -0
  346. package/src/server/mcp/filters.ts +97 -0
  347. package/src/server/mcp/index.ts +1 -0
  348. package/src/server/mcp/prompts-data.ts +896 -0
  349. package/src/server/mcp/server.ts +331 -0
  350. package/src/server/mcp/tools-data.ts +592 -0
  351. package/src/server/oauth/client-manager.ts +47 -0
  352. package/src/server/oauth/index.ts +6 -0
  353. package/src/server/oauth/oauth-server.ts +185 -0
  354. package/src/server/oauth/storage.ts +106 -0
  355. package/src/server/oauth/token-manager.ts +80 -0
  356. package/src/server/oauth/types.ts +55 -0
  357. package/src/server/oauth/validators.ts +56 -0
  358. package/src/services/index.ts +2 -0
  359. package/src/services/session-context.ts +232 -0
  360. package/src/services/token-refresh-scheduler.ts +68 -0
  361. package/src/types/index.ts +1 -0
  362. package/src/types/network.ts +7 -0
  363. package/src/utils/context.ts +49 -0
  364. package/src/utils/env.ts +12 -0
  365. package/src/utils/index.ts +5 -0
  366. package/src/utils/mcp.ts +8 -0
  367. package/src/utils/network.ts +65 -0
  368. package/src/utils/pkce.ts +39 -0
  369. package/src/version.ts +15 -0
  370. package/tsconfig.json +28 -0
@@ -0,0 +1,73 @@
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.LegacyProvider = void 0;
7
+ const log_1 = __importDefault(require("../../../log"));
8
+ const types_1 = require("../../../types");
9
+ const utils_1 = require("../../../utils");
10
+ const auth_1 = require("../auth");
11
+ const base_provider_1 = require("./base-provider");
12
+ class LegacyProvider extends base_provider_1.BaseProvider {
13
+ _bpmCsrf;
14
+ _cookieHeader;
15
+ async _ensureSession() {
16
+ if (this._cookieHeader) {
17
+ return;
18
+ }
19
+ const url = `${this.config.baseUrl.replace(/\/$/, '')}/ServiceModel/AuthService.svc/Login`;
20
+ const body = JSON.stringify({
21
+ UserName: this.authConfig.login,
22
+ UserPassword: this.authConfig.password,
23
+ });
24
+ log_1.default.creatioAuthStart(this.config.baseUrl, 'legacy');
25
+ const res = await fetch(url, {
26
+ method: 'POST',
27
+ headers: (0, auth_1.buildHeaders)(types_1.JSON_ACCEPT, true),
28
+ body,
29
+ redirect: 'manual',
30
+ });
31
+ if (!res.ok) {
32
+ const responseText = await res.text().catch(() => '');
33
+ log_1.default.creatioAuthFailed(this.config.baseUrl, `${res.status} ${responseText}`, 'legacy');
34
+ throw new Error(`auth_failed:${res.status} ${responseText}`);
35
+ }
36
+ log_1.default.creatioAuthOk(this.config.baseUrl, 'legacy');
37
+ let setCookie = [];
38
+ if (typeof res.headers.getSetCookie === 'function') {
39
+ setCookie = res.headers.getSetCookie();
40
+ }
41
+ else if (res.headers.raw && res.headers.raw()['set-cookie']) {
42
+ setCookie = res.headers.raw()['set-cookie'];
43
+ }
44
+ else {
45
+ setCookie = [];
46
+ }
47
+ const pairs = (0, utils_1.parseSetCookie)(setCookie);
48
+ if (!pairs.length) {
49
+ throw new Error('auth_failed:no_set_cookie');
50
+ }
51
+ this._cookieHeader = pairs.map((c) => `${c.name}=${c.value}`).join('; ');
52
+ const csrf = pairs.find((c) => c.name.toUpperCase() === 'BPMCSRF')?.value;
53
+ if (csrf) {
54
+ this._bpmCsrf = csrf;
55
+ }
56
+ }
57
+ async getHeaders(accept, isJson) {
58
+ await this._ensureSession();
59
+ const h = (0, auth_1.buildHeaders)(accept, Boolean(isJson));
60
+ h['ForceUseSession'] = 'true';
61
+ h['Cookie'] = this._cookieHeader;
62
+ if (this._bpmCsrf) {
63
+ h['BPMCSRF'] = this._bpmCsrf;
64
+ }
65
+ return h;
66
+ }
67
+ async refresh() {
68
+ this._cookieHeader = undefined;
69
+ await this._ensureSession();
70
+ }
71
+ }
72
+ exports.LegacyProvider = LegacyProvider;
73
+ //# sourceMappingURL=legacy-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-provider.js","sourceRoot":"","sources":["../../../../src/creatio/auth/providers/legacy-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { CreatioClientConfig, OAuth2CodeAuthConfig } from '../../client-config';
2
+ import { BaseOAuth2Provider } from './base-oauth2-provider';
3
+ export declare class OAuth2CodeProvider extends BaseOAuth2Provider<OAuth2CodeAuthConfig> {
4
+ private readonly _sessionContext;
5
+ private readonly _tokenRefreshScheduler;
6
+ protected readonly authErrorCode = "oauth2_code_need_consent";
7
+ private get _scope();
8
+ constructor(config: CreatioClientConfig);
9
+ private _exchangeCodeForTokens;
10
+ private _refreshTokens;
11
+ protected throwNoTokenError(): void;
12
+ protected ensureAccessToken(force?: boolean): Promise<string | undefined>;
13
+ finishAuthorization(code: string): Promise<void>;
14
+ getAuthorizeUrl(state: string): Promise<string>;
15
+ revoke(): Promise<void>;
16
+ refreshUserTokens(userKey: string): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=oauth2-code-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2-code-provider.d.ts","sourceRoot":"","sources":["../../../../src/creatio/auth/providers/oauth2-code-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,oBAAoB,CAAC;IAC/E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2B;IAC3D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA+B;IAEtE,SAAS,CAAC,QAAQ,CAAC,aAAa,8BAA8B;IAE9D,OAAO,KAAK,MAAM,GAEjB;gBAEW,MAAM,EAAE,mBAAmB;YAKzB,sBAAsB;YA2CtB,cAAc;IAuD5B,SAAS,CAAC,iBAAiB,IAAI,IAAI;cAQnB,iBAAiB,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA0ChE,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAchD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB/C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCvB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS9D"}
@@ -0,0 +1,245 @@
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.OAuth2CodeProvider = void 0;
7
+ const consts_1 = require("../../../consts");
8
+ const log_1 = __importDefault(require("../../../log"));
9
+ const services_1 = require("../../../services");
10
+ const utils_1 = require("../../../utils");
11
+ const auth_1 = require("../auth");
12
+ const base_oauth2_provider_1 = require("./base-oauth2-provider");
13
+ class OAuth2CodeProvider extends base_oauth2_provider_1.BaseOAuth2Provider {
14
+ _sessionContext = services_1.SessionContext.instance;
15
+ _tokenRefreshScheduler = new services_1.TokenRefreshScheduler();
16
+ authErrorCode = 'oauth2_code_need_consent';
17
+ get _scope() {
18
+ return this.authConfig.scope || 'offline_access';
19
+ }
20
+ constructor(config) {
21
+ super(config);
22
+ this._tokenRefreshScheduler.setRefreshCallback(this.refreshUserTokens.bind(this));
23
+ }
24
+ async _exchangeCodeForTokens(code) {
25
+ const idBase = this.getIdentityBase();
26
+ const url = idBase + auth_1.TOKEN_ENDPOINT;
27
+ const body = new URLSearchParams();
28
+ body.set('grant_type', 'authorization_code');
29
+ body.set('client_id', this.authConfig.clientId);
30
+ if (this.authConfig.clientSecret) {
31
+ body.set('client_secret', this.authConfig.clientSecret);
32
+ }
33
+ body.set('code', code);
34
+ body.set('redirect_uri', this.authConfig.redirectUri);
35
+ body.set('scope', this._scope);
36
+ log_1.default.creatioAuthStart(this.config.baseUrl, 'oauth2_code');
37
+ const res = await fetch(url, {
38
+ method: 'POST',
39
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
40
+ body: body.toString(),
41
+ });
42
+ const txt = await res.text().catch(() => '');
43
+ if (!res.ok || !txt) {
44
+ log_1.default.creatioAuthFailed(this.config.baseUrl, `token:${res.status} ${txt}`, 'oauth2_code');
45
+ throw new Error(`oauth2_code_token_error:${res.status}`);
46
+ }
47
+ let j;
48
+ try {
49
+ j = JSON.parse(txt);
50
+ }
51
+ catch {
52
+ log_1.default.creatioAuthFailed(this.config.baseUrl, 'token_parse_failed', 'oauth2_code');
53
+ throw new Error('oauth2_code_token_parse_failed');
54
+ }
55
+ if (!j.access_token) {
56
+ throw new Error('oauth2_code_no_access_token');
57
+ }
58
+ const expiresIn = Number(j.expires_in) || 180;
59
+ const accessTokenExpiryMs = this.computeExpiryMs(expiresIn, 1);
60
+ log_1.default.creatioAuthOk(this.config.baseUrl, 'oauth2_code');
61
+ return {
62
+ accessToken: String(j.access_token),
63
+ accessTokenExpiryMs,
64
+ refreshToken: j.refresh_token ? String(j.refresh_token) : undefined,
65
+ };
66
+ }
67
+ async _refreshTokens(refreshToken) {
68
+ const idBase = this.getIdentityBase();
69
+ const url = idBase + auth_1.TOKEN_ENDPOINT;
70
+ log_1.default.info('oauth2_code.refresh_attempt', { url, refreshTokenLength: refreshToken.length });
71
+ const body = new URLSearchParams();
72
+ body.set('grant_type', 'refresh_token');
73
+ body.set('client_id', this.authConfig.clientId);
74
+ if (this.authConfig.clientSecret) {
75
+ body.set('client_secret', this.authConfig.clientSecret);
76
+ }
77
+ body.set('refresh_token', refreshToken);
78
+ body.set('redirect_uri', this.authConfig.redirectUri);
79
+ body.set('scope', this._scope);
80
+ const res = await fetch(url, {
81
+ method: 'POST',
82
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
83
+ body: body.toString(),
84
+ });
85
+ const txt = await res.text().catch(() => '');
86
+ log_1.default.info('oauth2_code.refresh_response', {
87
+ status: res.status,
88
+ hasBody: !!txt,
89
+ bodyLength: txt.length,
90
+ });
91
+ if (!res.ok || !txt) {
92
+ log_1.default.error('oauth2_code.refresh_failed', {
93
+ status: res.status,
94
+ body: txt.substring(0, 200),
95
+ });
96
+ throw new Error(`oauth2_code_refresh_error:${res.status}`);
97
+ }
98
+ let j;
99
+ try {
100
+ j = JSON.parse(txt);
101
+ }
102
+ catch {
103
+ throw new Error('oauth2_code_refresh_parse_failed');
104
+ }
105
+ if (!j.access_token) {
106
+ throw new Error('oauth2_code_refresh_no_access_token');
107
+ }
108
+ const expiresIn = Number(j.expires_in) || 180;
109
+ const accessTokenExpiryMs = this.computeExpiryMs(expiresIn, 1);
110
+ const newTokens = {
111
+ accessToken: String(j.access_token),
112
+ accessTokenExpiryMs,
113
+ refreshToken: j.refresh_token ? String(j.refresh_token) : refreshToken,
114
+ };
115
+ log_1.default.info('oauth2_code.refresh_success', {
116
+ hasNewRefreshToken: !!j.refresh_token,
117
+ expiresIn,
118
+ accessTokenLength: newTokens.accessToken.length,
119
+ });
120
+ return newTokens;
121
+ }
122
+ throwNoTokenError() {
123
+ const userKey = (0, utils_1.getEffectiveUserKey)();
124
+ const errorMessage = userKey
125
+ ? `${this.authErrorCode}:http://localhost:${consts_1.HTTP_MCP_PORT}/oauth/start?userKey=${encodeURIComponent(userKey)}`
126
+ : this.authErrorCode;
127
+ throw new Error(errorMessage);
128
+ }
129
+ async ensureAccessToken(force = false) {
130
+ log_1.default.info('oauth2_code.ensure_access_token.start', { force });
131
+ const now = Date.now();
132
+ if (!force &&
133
+ this.accessToken &&
134
+ this.accessTokenExpiryMs &&
135
+ now < this.accessTokenExpiryMs) {
136
+ return this.accessToken;
137
+ }
138
+ const userKey = (0, utils_1.getEffectiveUserKey)();
139
+ if (!userKey) {
140
+ log_1.default.warn('oauth2_code.no_user_key');
141
+ return undefined;
142
+ }
143
+ const saved = await this._sessionContext.getTokensForUser(userKey);
144
+ if (!saved) {
145
+ log_1.default.warn('oauth2_code.no_saved_tokens', { userKey });
146
+ return undefined;
147
+ }
148
+ if (!force &&
149
+ saved.accessToken &&
150
+ saved.accessTokenExpiryMs &&
151
+ now < saved.accessTokenExpiryMs) {
152
+ this.accessToken = saved.accessToken;
153
+ this.accessTokenExpiryMs = saved.accessTokenExpiryMs;
154
+ return this.accessToken;
155
+ }
156
+ if (saved.refreshToken) {
157
+ const updated = await this._refreshTokens(saved.refreshToken);
158
+ await this._sessionContext.setTokensForUser(userKey, updated);
159
+ this.accessToken = updated.accessToken;
160
+ this.accessTokenExpiryMs = updated.accessTokenExpiryMs;
161
+ return this.accessToken;
162
+ }
163
+ await this._sessionContext.deleteTokensForUser(userKey);
164
+ return undefined;
165
+ }
166
+ async finishAuthorization(code) {
167
+ const userKey = (0, utils_1.getEffectiveUserKey)();
168
+ log_1.default.info('oauth2_code.finish_authorization', { userKey, hasCode: !!code });
169
+ if (!userKey) {
170
+ throw new Error('oauth2_code_missing_user');
171
+ }
172
+ const tokens = await this._exchangeCodeForTokens(code);
173
+ await this._sessionContext.setTokensForUser(userKey, tokens);
174
+ this.accessToken = tokens.accessToken;
175
+ this.accessTokenExpiryMs = tokens.accessTokenExpiryMs;
176
+ this._tokenRefreshScheduler.scheduleRefresh(userKey);
177
+ log_1.default.info('oauth2_code.authorization_complete', { userKey });
178
+ }
179
+ async getAuthorizeUrl(state) {
180
+ const idBase = this.getIdentityBase();
181
+ const u = new URL(idBase + auth_1.AUTHORIZE_ENDPOINT);
182
+ u.searchParams.set('client_id', this.authConfig.clientId);
183
+ u.searchParams.set('redirect_uri', this.authConfig.redirectUri);
184
+ u.searchParams.set('response_type', 'code');
185
+ u.searchParams.set('state', state);
186
+ const scopeParam = encodeURIComponent(this._scope);
187
+ u.search += '&scope=' + scopeParam;
188
+ log_1.default.info('oauth2_code.authorize_url', {
189
+ idBase,
190
+ url: u.toString(),
191
+ });
192
+ return u.toString();
193
+ }
194
+ async revoke() {
195
+ try {
196
+ const userKey = (0, utils_1.getUserKey)();
197
+ if (!userKey) {
198
+ return;
199
+ }
200
+ const saved = await this._sessionContext.getTokensForUser(userKey);
201
+ if (!saved?.refreshToken) {
202
+ await this._sessionContext.deleteTokensForUser(userKey);
203
+ return;
204
+ }
205
+ const idBase = this.getIdentityBase();
206
+ const url = idBase + auth_1.REVOCATION_ENDPOINT;
207
+ const body = new URLSearchParams();
208
+ body.set('client_id', this.authConfig.clientId);
209
+ if (this.authConfig.clientSecret) {
210
+ body.set('client_secret', this.authConfig.clientSecret);
211
+ }
212
+ body.set('token', saved.refreshToken);
213
+ body.set('token_type_hint', 'refresh_token');
214
+ const res = await fetch(url, {
215
+ method: 'POST',
216
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
217
+ body: body.toString(),
218
+ });
219
+ if (!res.ok) {
220
+ const t = await res.text().catch(() => '');
221
+ log_1.default.error('oauth2_code.revoke_failed', { status: res.status, t });
222
+ }
223
+ }
224
+ finally {
225
+ const userKey = (0, utils_1.getUserKey)();
226
+ if (userKey) {
227
+ await this._sessionContext.deleteTokensForUser(userKey);
228
+ this._tokenRefreshScheduler.cancelRefresh(userKey);
229
+ }
230
+ this.accessToken = undefined;
231
+ this.accessTokenExpiryMs = undefined;
232
+ }
233
+ }
234
+ async refreshUserTokens(userKey) {
235
+ const saved = await this._sessionContext.getTokensForUser(userKey);
236
+ if (!saved?.refreshToken) {
237
+ throw new Error('oauth2_no_refresh_token');
238
+ }
239
+ const updated = await this._refreshTokens(saved.refreshToken);
240
+ await this._sessionContext.setTokensForUser(userKey, updated);
241
+ log_1.default.info('oauth2_code.background_refresh_success', { userKey });
242
+ }
243
+ }
244
+ exports.OAuth2CodeProvider = OAuth2CodeProvider;
245
+ //# sourceMappingURL=oauth2-code-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2-code-provider.js","sourceRoot":"","sources":["../../../../src/creatio/auth/providers/oauth2-code-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { CreatioClientConfig, OAuth2AuthConfig } from '../../client-config';
2
+ import { BaseOAuth2Provider } from './base-oauth2-provider';
3
+ export declare class OAuth2Provider extends BaseOAuth2Provider<OAuth2AuthConfig> {
4
+ private readonly _config;
5
+ protected readonly authErrorCode = "oauth2_auth_failed";
6
+ constructor(config: CreatioClientConfig);
7
+ protected ensureAccessToken(): Promise<string | undefined>;
8
+ }
9
+ //# sourceMappingURL=oauth2-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2-provider.d.ts","sourceRoot":"","sources":["../../../../src/creatio/auth/providers/oauth2-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,qBAAa,cAAe,SAAQ,kBAAkB,CAAC,gBAAgB,CAAC;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C,SAAS,CAAC,QAAQ,CAAC,aAAa,wBAAwB;gBAE5C,MAAM,EAAE,mBAAmB;cAKvB,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CA0EhE"}
@@ -0,0 +1,86 @@
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.OAuth2Provider = void 0;
7
+ const log_1 = __importDefault(require("../../../log"));
8
+ const auth_1 = require("../auth");
9
+ const base_oauth2_provider_1 = require("./base-oauth2-provider");
10
+ class OAuth2Provider extends base_oauth2_provider_1.BaseOAuth2Provider {
11
+ _config;
12
+ authErrorCode = 'oauth2_auth_failed';
13
+ constructor(config) {
14
+ super(config);
15
+ this._config = config;
16
+ }
17
+ async ensureAccessToken() {
18
+ const now = Date.now();
19
+ if (this.accessToken && this.accessTokenExpiryMs && now < this.accessTokenExpiryMs) {
20
+ return this.accessToken;
21
+ }
22
+ const url = `${this.getIdentityBase()}${auth_1.TOKEN_ENDPOINT}`;
23
+ const body = new URLSearchParams();
24
+ body.set('grant_type', 'client_credentials');
25
+ body.set('client_id', this.authConfig.clientId);
26
+ body.set('client_secret', this.authConfig.clientSecret);
27
+ try {
28
+ log_1.default.creatioAuthStart(this._config.baseUrl, 'oauth2');
29
+ const response = await fetch(url, {
30
+ method: 'POST',
31
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
32
+ body: body.toString(),
33
+ });
34
+ const responseText = await response.text().catch(() => '');
35
+ const contentType = response.headers?.get?.('content-type') ?? '';
36
+ const bodySnippet = responseText && responseText.length > auth_1.TOKEN_BODY_SNIPPET_MAX
37
+ ? responseText.slice(0, auth_1.TOKEN_BODY_SNIPPET_MAX) + '\n... [truncated]'
38
+ : responseText;
39
+ if (!response.ok) {
40
+ log_1.default.error('oauth.token.error', {
41
+ url,
42
+ status: response.status,
43
+ contentType,
44
+ bodySnippet,
45
+ });
46
+ log_1.default.creatioAuthFailed(this._config.baseUrl, `token_error:${response.status}`, 'oauth2');
47
+ throw new Error(`oauth2_token_error:${response.status}`);
48
+ }
49
+ if (!responseText) {
50
+ log_1.default.error('oauth.token.empty_body', { url, status: response.status, contentType });
51
+ log_1.default.creatioAuthFailed(this._config.baseUrl, 'empty_response_body', 'oauth2');
52
+ throw new Error('oauth2_empty_token_response');
53
+ }
54
+ let tokenResponse = null;
55
+ try {
56
+ tokenResponse = JSON.parse(responseText);
57
+ }
58
+ catch (err) {
59
+ log_1.default.error('oauth.token.parse_failed', {
60
+ url,
61
+ status: response.status,
62
+ contentType,
63
+ bodySnippet,
64
+ });
65
+ log_1.default.creatioAuthFailed(this._config.baseUrl, 'token_parse_failed', 'oauth2');
66
+ throw new Error('oauth2_token_parse_failed');
67
+ }
68
+ if (!tokenResponse || !tokenResponse.access_token) {
69
+ log_1.default.creatioAuthFailed(this._config.baseUrl, 'no_access_token_in_response', 'oauth2');
70
+ throw new Error('oauth2_no_access_token');
71
+ }
72
+ this.accessToken = String(tokenResponse.access_token);
73
+ const expiresIn = Number(tokenResponse.expires_in) || 3600;
74
+ this.accessTokenExpiryMs = this.computeExpiryMs(expiresIn, 1);
75
+ log_1.default.creatioAuthOk(this._config.baseUrl, 'oauth2');
76
+ return this.accessToken;
77
+ }
78
+ catch (e) {
79
+ log_1.default.error('oauth.token.exception', { error: String(e?.message ?? e) });
80
+ log_1.default.creatioAuthFailed(this._config.baseUrl, String(e?.message ?? e), 'oauth2');
81
+ return undefined;
82
+ }
83
+ }
84
+ }
85
+ exports.OAuth2Provider = OAuth2Provider;
86
+ //# sourceMappingURL=oauth2-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2-provider.js","sourceRoot":"","sources":["../../../../src/creatio/auth/providers/oauth2-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare enum AuthProviderType {
2
+ Legacy = "legacy",
3
+ OAuth2 = "oauth2",
4
+ OAuth2Code = "oauth2_code"
5
+ }
6
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/creatio/auth/providers/type.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC3B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,UAAU,gBAAgB;CAC1B"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthProviderType = void 0;
4
+ var AuthProviderType;
5
+ (function (AuthProviderType) {
6
+ AuthProviderType["Legacy"] = "legacy";
7
+ AuthProviderType["OAuth2"] = "oauth2";
8
+ AuthProviderType["OAuth2Code"] = "oauth2_code";
9
+ })(AuthProviderType || (exports.AuthProviderType = AuthProviderType = {}));
10
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../src/creatio/auth/providers/type.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC3B,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,8CAA0B,CAAA;AAC3B,CAAC,EAJW,gBAAgB,gCAAhB,gBAAgB,QAI3B"}
@@ -0,0 +1,29 @@
1
+ import { AuthProviderType } from './auth/providers';
2
+ interface ICreatioAuthConfig {
3
+ kind: AuthProviderType;
4
+ }
5
+ export interface LegacyAuthConfig extends ICreatioAuthConfig {
6
+ kind: AuthProviderType.Legacy;
7
+ login: string;
8
+ password: string;
9
+ }
10
+ interface BaseOAuthConfig extends ICreatioAuthConfig {
11
+ clientId: string;
12
+ clientSecret: string;
13
+ scope?: string;
14
+ idBaseUrl?: string;
15
+ }
16
+ export interface OAuth2AuthConfig extends BaseOAuthConfig {
17
+ kind: AuthProviderType.OAuth2;
18
+ }
19
+ export interface OAuth2CodeAuthConfig extends BaseOAuthConfig {
20
+ kind: AuthProviderType.OAuth2Code;
21
+ redirectUri: string;
22
+ }
23
+ export type CreatioClientAuthConfig = LegacyAuthConfig | OAuth2AuthConfig | OAuth2CodeAuthConfig;
24
+ export interface CreatioClientConfig {
25
+ baseUrl: string;
26
+ auth: CreatioClientAuthConfig;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=client-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-config.d.ts","sourceRoot":"","sources":["../../src/creatio/client-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,UAAU,kBAAkB;IAC3B,IAAI,EAAE,gBAAgB,CAAC;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC3D,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAgB,SAAQ,kBAAkB;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACxD,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC5D,IAAI,EAAE,gBAAgB,CAAC,UAAU,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;AAEjG,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,uBAAuB,CAAC;CAC9B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=client-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-config.js","sourceRoot":"","sources":["../../src/creatio/client-config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { CrudDeleteParams, CrudProvider, CrudReadParams, CrudUpdateParams, CrudWriteParams, EntitySchemaDescription } from '../../providers';
2
+ import { CreatioEngine } from '../engine';
3
+ export declare class CrudEngine implements CreatioEngine {
4
+ private readonly _provider;
5
+ readonly name = "crud";
6
+ constructor(provider: CrudProvider);
7
+ get kind(): string;
8
+ listEntitySets(): Promise<string[]>;
9
+ describeEntity(entitySet: string): Promise<EntitySchemaDescription>;
10
+ read(params: CrudReadParams): Promise<any>;
11
+ create(params: CrudWriteParams): Promise<any>;
12
+ update(params: CrudUpdateParams): Promise<any>;
13
+ delete(params: CrudDeleteParams): Promise<any>;
14
+ }
15
+ //# sourceMappingURL=crud-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud-engine.d.ts","sourceRoot":"","sources":["../../../../src/creatio/engines/crud/crud-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,qBAAa,UAAW,YAAW,aAAa;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IAEzC,SAAgB,IAAI,UAAU;gBAElB,QAAQ,EAAE,YAAY;IAIlC,IAAW,IAAI,IAAI,MAAM,CAExB;IAEM,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAInC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAInE,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAI1C,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7C,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9C,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;CAGrD"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CrudEngine = void 0;
4
+ class CrudEngine {
5
+ _provider;
6
+ name = 'crud';
7
+ constructor(provider) {
8
+ this._provider = provider;
9
+ }
10
+ get kind() {
11
+ return this._provider.kind;
12
+ }
13
+ listEntitySets() {
14
+ return this._provider.listEntitySets();
15
+ }
16
+ describeEntity(entitySet) {
17
+ return this._provider.describeEntity(entitySet);
18
+ }
19
+ read(params) {
20
+ return this._provider.read(params);
21
+ }
22
+ create(params) {
23
+ return this._provider.create(params);
24
+ }
25
+ update(params) {
26
+ return this._provider.update(params);
27
+ }
28
+ delete(params) {
29
+ return this._provider.delete(params);
30
+ }
31
+ }
32
+ exports.CrudEngine = CrudEngine;
33
+ //# sourceMappingURL=crud-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud-engine.js","sourceRoot":"","sources":["../../../../src/creatio/engines/crud/crud-engine.ts"],"names":[],"mappings":";;;AAUA,MAAa,UAAU;IACL,SAAS,CAAe;IAEzB,IAAI,GAAG,MAAM,CAAC;IAE9B,YAAY,QAAsB;QACjC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B,CAAC;IAEM,cAAc;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;IAEM,cAAc,CAAC,SAAiB;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAEM,IAAI,CAAC,MAAsB;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,MAAuB;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,MAAwB;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,MAAwB;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACD;AApCD,gCAoCC"}
@@ -0,0 +1,33 @@
1
+ import { CreatioProviderContext } from '../provider-context';
2
+ import { CrudProvider, ProcessProvider, SysSettingsProvider, UserProvider } from '../providers';
3
+ import { CrudEngine } from './crud/crud-engine';
4
+ import { EngineRegistry } from './engine-registry';
5
+ import { ProcessEngine } from './process/process-engine';
6
+ import { SysSettingsEngine } from './sys-settings/sys-settings-engine';
7
+ import { UserEngine } from './user/user-engine';
8
+ export interface EngineManagerOptions {
9
+ crudProvider?: CrudProvider;
10
+ processProvider?: ProcessProvider;
11
+ sysSettingsProvider?: SysSettingsProvider;
12
+ userProvider?: UserProvider;
13
+ enableCrud?: boolean;
14
+ enableProcess?: boolean;
15
+ enableSysSettings?: boolean;
16
+ enableUser?: boolean;
17
+ }
18
+ export declare class CreatioEngineManager {
19
+ private readonly _context;
20
+ private readonly _options;
21
+ private readonly _registry;
22
+ private readonly _engines;
23
+ get authProvider(): import("..").ICreatioAuthProvider;
24
+ get registry(): EngineRegistry;
25
+ get crud(): CrudEngine;
26
+ get process(): ProcessEngine;
27
+ get sysSettings(): SysSettingsEngine;
28
+ get user(): UserEngine;
29
+ constructor(context: CreatioProviderContext, options?: EngineManagerOptions);
30
+ private _initialize;
31
+ private _registerEngine;
32
+ }
33
+ //# sourceMappingURL=engine-manager.d.ts.map