@fluxo-dev/api-client-base 0.0.8 → 0.0.11

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 (237) hide show
  1. package/index.esm.d.ts +1 -0
  2. package/index.esm.js +21126 -0
  3. package/package.json +7 -5
  4. package/src/{index.ts → index.d.ts} +0 -19
  5. package/src/lib/apps/apps.service.d.ts +11 -0
  6. package/src/lib/apps/models/app-state.d.ts +4 -0
  7. package/src/lib/apps/models/app-type.d.ts +4 -0
  8. package/src/lib/apps/models/embedded-module.d.ts +30 -0
  9. package/src/lib/apps/models/fluxo-app-menu.d.ts +11 -0
  10. package/src/lib/apps/models/fluxo-app.d.ts +15 -0
  11. package/src/lib/apps/models/fluxo-embedded-module-configuration.d.ts +9 -0
  12. package/src/lib/apps/models/fluxo-frontend-app-configuration.d.ts +10 -0
  13. package/src/lib/apps/models/flx-app-routes.d.ts +4 -0
  14. package/src/lib/apps/models/flx-route.d.ts +7 -0
  15. package/src/lib/apps/models/{index.ts → index.d.ts} +1 -1
  16. package/src/lib/auth/auth-service.d.ts +9 -0
  17. package/src/lib/configuration/app-menu-create-command.d.ts +8 -0
  18. package/src/lib/configuration/app-menu-item.d.ts +14 -0
  19. package/src/lib/configuration/app-menu.d.ts +14 -0
  20. package/src/lib/configuration/client-ui.d.ts +5 -0
  21. package/src/lib/configuration/configuration.service.d.ts +31 -0
  22. package/src/lib/configuration/models/feature-list.d.ts +6 -0
  23. package/src/lib/configuration/models/feature.d.ts +11 -0
  24. package/src/lib/configuration/models/module.d.ts +5 -0
  25. package/src/lib/constants/local-storage.d.ts +4 -0
  26. package/src/lib/fluxo-client-base-sys.d.ts +8 -0
  27. package/src/lib/fluxo-client-interface.d.ts +17 -0
  28. package/src/lib/fluxo-client.d.ts +42 -0
  29. package/src/lib/fluxo-state-dispatcher.d.ts +18 -0
  30. package/src/lib/http-client/http-client.d.ts +10 -0
  31. package/src/lib/infrastructure/base-common-service.d.ts +15 -0
  32. package/src/lib/interfaces/crud-service-interface.d.ts +8 -0
  33. package/src/lib/interfaces/rc-paginated-result.d.ts +6 -0
  34. package/src/lib/korebi/app-service/app-service.service.d.ts +4 -0
  35. package/src/lib/korebi/app-service/model/dynamic-api-service.d.ts +13 -0
  36. package/src/lib/korebi/app-service/model/dynamic-api-services-method.d.ts +8 -0
  37. package/src/lib/korebi/documentation/documentation.service.d.ts +8 -0
  38. package/src/lib/korebi/documentation/intellisense.service.d.ts +6 -0
  39. package/src/lib/korebi/documentation/models/command-input-type.d.ts +10 -0
  40. package/src/lib/korebi/documentation/models/command-metadata.d.ts +10 -0
  41. package/src/lib/korebi/documentation/models/command-output-type.d.ts +5 -0
  42. package/src/lib/korebi/documentation/models/command.d.ts +18 -0
  43. package/src/lib/korebi/documentation/models/documentation.d.ts +12 -0
  44. package/src/lib/korebi/documentation/models/korebi-profile.d.ts +4 -0
  45. package/src/lib/korebi/documentation/models/type-meta-structure.d.ts +11 -0
  46. package/src/lib/korebi/documentation/models/type-specs.d.ts +5 -0
  47. package/src/lib/korebi/dynamic-configuration/dynamic-configuration.service.d.ts +7 -0
  48. package/src/lib/korebi/dynamic-configuration/model/attribute-marker-location.d.ts +7 -0
  49. package/src/lib/korebi/dynamic-configuration/model/command-json-configuration.d.ts +25 -0
  50. package/src/lib/korebi/dynamic-configuration/model/instruction-json-configuration.d.ts +19 -0
  51. package/src/lib/korebi/dynamic-configuration/model/profile-json-configuration.d.ts +5 -0
  52. package/src/lib/korebi/dynamic-configuration/model/rest-adapter-info.d.ts +9 -0
  53. package/src/lib/korebi/dynamic-configuration/model/startup-exception-context.d.ts +41 -0
  54. package/src/lib/korebi/dynamic-configuration/model/tenant-json-configuration.d.ts +5 -0
  55. package/src/lib/korebi/korebi-facade.d.ts +14 -0
  56. package/src/lib/modules/fluxo-module.d.ts +6 -0
  57. package/src/lib/printing/models/add-printer-command.d.ts +11 -0
  58. package/src/lib/printing/models/create-print-server-command.d.ts +10 -0
  59. package/src/lib/printing/models/print-server-managed-type.d.ts +4 -0
  60. package/src/lib/printing/models/print-server-type.d.ts +4 -0
  61. package/src/lib/printing/models/printer-manufacturer.d.ts +3 -0
  62. package/src/lib/printing/models/printer-type.d.ts +4 -0
  63. package/src/lib/printing/models/{update-print-server-command.ts → update-print-server-command.d.ts} +2 -2
  64. package/src/lib/printing/models/virtual-print-server.d.ts +13 -0
  65. package/src/lib/printing/models/virtual-printer.d.ts +13 -0
  66. package/src/lib/printing/printing.service.d.ts +12 -0
  67. package/src/lib/reporting/models/create-report-command.d.ts +8 -0
  68. package/src/lib/reporting/models/parameters-schema.d.ts +6 -0
  69. package/src/lib/reporting/models/print-report-command.d.ts +5 -0
  70. package/src/lib/reporting/models/report-info.d.ts +5 -0
  71. package/src/lib/reporting/models/report-parameter.d.ts +6 -0
  72. package/src/lib/reporting/models/report.d.ts +10 -0
  73. package/src/lib/reporting/models/reports-list.d.ts +9 -0
  74. package/src/lib/reporting/reporting.service.d.ts +13 -0
  75. package/src/lib/security/apikey/apikey-service.d.ts +10 -0
  76. package/src/lib/security/apikey/apikey.d.ts +7 -0
  77. package/src/lib/security/apikey/new-apikey.d.ts +4 -0
  78. package/src/lib/security/domain-role/domain-role.d.ts +7 -0
  79. package/src/lib/security/domain-role/domain-role.service.d.ts +9 -0
  80. package/src/lib/security/permission/create-custom-permission-command.d.ts +7 -0
  81. package/src/lib/security/permission/create-permission-scope-command.d.ts +6 -0
  82. package/src/lib/security/permission/install-permission-command.d.ts +6 -0
  83. package/src/lib/security/permission/permission-identifier.d.ts +4 -0
  84. package/src/lib/security/permission/permission-scope.d.ts +7 -0
  85. package/src/lib/security/permission/permission.d.ts +9 -0
  86. package/src/lib/security/permission/permission.service.d.ts +14 -0
  87. package/src/lib/security/permission/structured-permission.d.ts +18 -0
  88. package/src/lib/security/route-rule/{route-rule-with-permissions.ts → route-rule-with-permissions.d.ts} +2 -2
  89. package/src/lib/security/route-rule/route-rule.d.ts +7 -0
  90. package/src/lib/security/route-rule/route-rule.service.d.ts +10 -0
  91. package/src/lib/security/security-facade.d.ts +18 -0
  92. package/src/lib/security/user/{change-password.ts → change-password.d.ts} +1 -1
  93. package/src/lib/security/user/{forgot-password.ts → forgot-password.d.ts} +1 -1
  94. package/src/lib/security/user/identityOperationResult.d.ts +8 -0
  95. package/src/lib/security/user/{new-account-confirmation.ts → new-account-confirmation.d.ts} +1 -1
  96. package/src/lib/security/user/{new-user.ts → new-user.d.ts} +5 -6
  97. package/src/lib/security/user/user-service.d.ts +20 -0
  98. package/src/lib/security/user/{user.ts → user.d.ts} +1 -3
  99. package/src/lib/utils/server-filter-helper.d.ts +6 -0
  100. package/src/lib/workflow/models/action-category-definition.d.ts +5 -0
  101. package/src/lib/workflow/models/action-definition.d.ts +11 -0
  102. package/src/lib/workflow/models/action-input-definition.d.ts +8 -0
  103. package/src/lib/workflow/models/{action-output-definition.ts → action-output-definition.d.ts} +2 -2
  104. package/src/lib/workflow/models/{trigger-category-definition.ts → trigger-category-definition.d.ts} +2 -3
  105. package/src/lib/workflow/models/trigger-definition.d.ts +10 -0
  106. package/src/lib/workflow/models/workflow-action-input-type.d.ts +6 -0
  107. package/src/lib/workflow/models/workflow-action-input.d.ts +5 -0
  108. package/src/lib/workflow/models/workflow-action.d.ts +16 -0
  109. package/src/lib/workflow/models/workflow-trigger.d.ts +11 -0
  110. package/src/lib/workflow/models/workflow.d.ts +9 -0
  111. package/src/lib/workflow/workflow.service.d.ts +6 -0
  112. package/.babelrc +0 -12
  113. package/.eslintrc.json +0 -18
  114. package/jest.config.ts +0 -11
  115. package/project.json +0 -43
  116. package/src/lib/apps/apps.service.ts +0 -46
  117. package/src/lib/apps/models/app-state.ts +0 -4
  118. package/src/lib/apps/models/app-type.ts +0 -4
  119. package/src/lib/apps/models/embedded-module.ts +0 -106
  120. package/src/lib/apps/models/fluxo-app-menu.ts +0 -12
  121. package/src/lib/apps/models/fluxo-app.ts +0 -17
  122. package/src/lib/apps/models/fluxo-embedded-module-configuration.ts +0 -10
  123. package/src/lib/apps/models/fluxo-frontend-app-configuration.ts +0 -12
  124. package/src/lib/apps/models/flx-app-routes.ts +0 -5
  125. package/src/lib/apps/models/flx-route.ts +0 -6
  126. package/src/lib/auth/auth-service.ts +0 -149
  127. package/src/lib/configuration/app-menu-create-command.ts +0 -9
  128. package/src/lib/configuration/app-menu-item.ts +0 -14
  129. package/src/lib/configuration/app-menu.ts +0 -15
  130. package/src/lib/configuration/client-ui.ts +0 -5
  131. package/src/lib/configuration/configuration.service.ts +0 -57
  132. package/src/lib/configuration/models/feature-list.ts +0 -8
  133. package/src/lib/configuration/models/feature.ts +0 -11
  134. package/src/lib/configuration/models/module.ts +0 -5
  135. package/src/lib/constants/local-storage.ts +0 -4
  136. package/src/lib/fluxo-client-base-sys.ts +0 -28
  137. package/src/lib/fluxo-client-interface.ts +0 -27
  138. package/src/lib/fluxo-client.ts +0 -142
  139. package/src/lib/fluxo-state-dispatcher.ts +0 -81
  140. package/src/lib/http-client/http-client.ts +0 -75
  141. package/src/lib/infrastructure/base-common-service.ts +0 -45
  142. package/src/lib/interfaces/crud-service-interface.ts +0 -9
  143. package/src/lib/interfaces/rc-paginated-result.ts +0 -6
  144. package/src/lib/korebi/app-service/app-service.service.ts +0 -8
  145. package/src/lib/korebi/app-service/model/dynamic-api-service.ts +0 -15
  146. package/src/lib/korebi/app-service/model/dynamic-api-services-method.ts +0 -6
  147. package/src/lib/korebi/documentation/documentation.service.ts +0 -26
  148. package/src/lib/korebi/documentation/intellisense.service.ts +0 -21
  149. package/src/lib/korebi/documentation/models/command-input-type.ts +0 -11
  150. package/src/lib/korebi/documentation/models/command-metadata.ts +0 -10
  151. package/src/lib/korebi/documentation/models/command-output-type.ts +0 -6
  152. package/src/lib/korebi/documentation/models/command.ts +0 -19
  153. package/src/lib/korebi/documentation/models/documentation.ts +0 -13
  154. package/src/lib/korebi/documentation/models/korebi-profile.ts +0 -5
  155. package/src/lib/korebi/documentation/models/type-meta-structure.ts +0 -11
  156. package/src/lib/korebi/documentation/models/type-specs.ts +0 -5
  157. package/src/lib/korebi/dynamic-configuration/dynamic-configuration.service.ts +0 -17
  158. package/src/lib/korebi/dynamic-configuration/model/attribute-marker-location.ts +0 -7
  159. package/src/lib/korebi/dynamic-configuration/model/command-json-configuration.ts +0 -20
  160. package/src/lib/korebi/dynamic-configuration/model/instruction-json-configuration.ts +0 -19
  161. package/src/lib/korebi/dynamic-configuration/model/profile-json-configuration.ts +0 -6
  162. package/src/lib/korebi/dynamic-configuration/model/rest-adapter-info.ts +0 -9
  163. package/src/lib/korebi/dynamic-configuration/model/startup-exception-context.ts +0 -44
  164. package/src/lib/korebi/dynamic-configuration/model/tenant-json-configuration.ts +0 -6
  165. package/src/lib/korebi/korebi-facade.ts +0 -33
  166. package/src/lib/modules/fluxo-module.ts +0 -13
  167. package/src/lib/printing/models/add-printer-command.ts +0 -12
  168. package/src/lib/printing/models/create-print-server-command.ts +0 -11
  169. package/src/lib/printing/models/print-server-managed-type.ts +0 -4
  170. package/src/lib/printing/models/print-server-type.ts +0 -4
  171. package/src/lib/printing/models/printer-manufacturer.ts +0 -3
  172. package/src/lib/printing/models/printer-type.ts +0 -4
  173. package/src/lib/printing/models/virtual-print-server.ts +0 -14
  174. package/src/lib/printing/models/virtual-printer.ts +0 -14
  175. package/src/lib/printing/printing.service.ts +0 -32
  176. package/src/lib/reporting/models/create-report-command.ts +0 -8
  177. package/src/lib/reporting/models/parameters-schema.ts +0 -8
  178. package/src/lib/reporting/models/print-report-command.ts +0 -5
  179. package/src/lib/reporting/models/report-info.ts +0 -5
  180. package/src/lib/reporting/models/report-parameter.ts +0 -6
  181. package/src/lib/reporting/models/report.ts +0 -10
  182. package/src/lib/reporting/models/reports-list.ts +0 -10
  183. package/src/lib/reporting/reporting.service.ts +0 -33
  184. package/src/lib/security/apikey/apikey-service.ts +0 -30
  185. package/src/lib/security/apikey/apikey.ts +0 -7
  186. package/src/lib/security/apikey/new-apikey.ts +0 -4
  187. package/src/lib/security/domain-role/domain-role.service.ts +0 -22
  188. package/src/lib/security/domain-role/domain-role.ts +0 -7
  189. package/src/lib/security/permission/create-custom-permission-command.ts +0 -7
  190. package/src/lib/security/permission/create-permission-scope-command.ts +0 -6
  191. package/src/lib/security/permission/install-permission-command.ts +0 -7
  192. package/src/lib/security/permission/permission-identifier.ts +0 -4
  193. package/src/lib/security/permission/permission-scope.ts +0 -7
  194. package/src/lib/security/permission/permission.service.ts +0 -38
  195. package/src/lib/security/permission/permission.ts +0 -9
  196. package/src/lib/security/permission/structured-permission.ts +0 -22
  197. package/src/lib/security/route-rule/route-rule.service.ts +0 -26
  198. package/src/lib/security/route-rule/route-rule.ts +0 -7
  199. package/src/lib/security/security-facade.ts +0 -42
  200. package/src/lib/security/user/identityOperationResult.ts +0 -9
  201. package/src/lib/security/user/user-service.ts +0 -83
  202. package/src/lib/utils/server-filter-helper.ts +0 -34
  203. package/src/lib/workflow/models/action-category-definition.ts +0 -7
  204. package/src/lib/workflow/models/action-definition.ts +0 -12
  205. package/src/lib/workflow/models/action-input-definition.ts +0 -8
  206. package/src/lib/workflow/models/trigger-definition.ts +0 -11
  207. package/src/lib/workflow/models/workflow-action-input-type.ts +0 -6
  208. package/src/lib/workflow/models/workflow-action-input.ts +0 -6
  209. package/src/lib/workflow/models/workflow-action.ts +0 -14
  210. package/src/lib/workflow/models/workflow-trigger.ts +0 -11
  211. package/src/lib/workflow/models/workflow.ts +0 -10
  212. package/src/lib/workflow/workflow.service.ts +0 -17
  213. package/tsconfig.json +0 -20
  214. package/tsconfig.lib.json +0 -24
  215. package/tsconfig.spec.json +0 -20
  216. /package/src/lib/apps/{index.ts → index.d.ts} +0 -0
  217. /package/src/lib/configuration/{index.ts → index.d.ts} +0 -0
  218. /package/src/lib/configuration/models/{index.ts → index.d.ts} +0 -0
  219. /package/src/lib/infrastructure/{index.ts → index.d.ts} +0 -0
  220. /package/src/lib/interfaces/{index.ts → index.d.ts} +0 -0
  221. /package/src/lib/korebi/app-service/{index.ts → index.d.ts} +0 -0
  222. /package/src/lib/korebi/documentation/{index.ts → index.d.ts} +0 -0
  223. /package/src/lib/korebi/documentation/models/{index.ts → index.d.ts} +0 -0
  224. /package/src/lib/korebi/dynamic-configuration/{index.ts → index.d.ts} +0 -0
  225. /package/src/lib/korebi/{index.ts → index.d.ts} +0 -0
  226. /package/src/lib/printing/{index.ts → index.d.ts} +0 -0
  227. /package/src/lib/printing/models/{index.ts → index.d.ts} +0 -0
  228. /package/src/lib/reporting/{index.ts → index.d.ts} +0 -0
  229. /package/src/lib/reporting/models/{index.ts → index.d.ts} +0 -0
  230. /package/src/lib/security/apikey/{index.ts → index.d.ts} +0 -0
  231. /package/src/lib/security/domain-role/{index.ts → index.d.ts} +0 -0
  232. /package/src/lib/security/permission/{index.ts → index.d.ts} +0 -0
  233. /package/src/lib/security/route-rule/{index.ts → index.d.ts} +0 -0
  234. /package/src/lib/security/user/{index.ts → index.d.ts} +0 -0
  235. /package/src/lib/utils/{index.ts → index.d.ts} +0 -0
  236. /package/src/lib/workflow/{index.ts → index.d.ts} +0 -0
  237. /package/src/lib/workflow/models/{index.ts → index.d.ts} +0 -0
@@ -0,0 +1,16 @@
1
+ import { WorkflowActionInput } from "./workflow-action-input";
2
+ export interface WorkflowAction {
3
+ id: string;
4
+ name: string;
5
+ color: string;
6
+ description: string;
7
+ type: string;
8
+ outcomes: string[];
9
+ nextActions: {
10
+ [outcome: string]: WorkflowAction;
11
+ };
12
+ parallelActions: WorkflowAction[];
13
+ inputs: {
14
+ [property: string]: WorkflowActionInput;
15
+ };
16
+ }
@@ -0,0 +1,11 @@
1
+ import { WorkflowActionInput } from "./workflow-action-input";
2
+ export interface WorkflowTrigger {
3
+ id: string;
4
+ name: string;
5
+ color: string;
6
+ description: string;
7
+ type: string;
8
+ inputs: {
9
+ [property: string]: WorkflowActionInput;
10
+ };
11
+ }
@@ -0,0 +1,9 @@
1
+ import { WorkflowAction } from "./workflow-action";
2
+ import { WorkflowTrigger } from "./workflow-trigger";
3
+ export interface Workflow {
4
+ id: string;
5
+ description: string;
6
+ version: number;
7
+ trigger?: WorkflowTrigger;
8
+ firstAction?: WorkflowAction;
9
+ }
@@ -0,0 +1,6 @@
1
+ import { ActionCategoryDefinition, TriggerCategoryDefinition, Workflow } from "./models";
2
+ export declare class WorkflowService {
3
+ getActionsDefinition(): Promise<ActionCategoryDefinition[]>;
4
+ getTriggersDefinition(): Promise<TriggerCategoryDefinition[]>;
5
+ test(workflow: Workflow): Promise<void>;
6
+ }
package/.babelrc DELETED
@@ -1,12 +0,0 @@
1
- {
2
- "presets": [
3
- [
4
- "@nx/react/babel",
5
- {
6
- "runtime": "automatic",
7
- "useBuiltIns": "usage"
8
- }
9
- ]
10
- ],
11
- "plugins": []
12
- }
package/.eslintrc.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3
- "ignorePatterns": ["!**/*"],
4
- "overrides": [
5
- {
6
- "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7
- "rules": {}
8
- },
9
- {
10
- "files": ["*.ts", "*.tsx"],
11
- "rules": {}
12
- },
13
- {
14
- "files": ["*.js", "*.jsx"],
15
- "rules": {}
16
- }
17
- ]
18
- }
package/jest.config.ts DELETED
@@ -1,11 +0,0 @@
1
- /* eslint-disable */
2
- export default {
3
- displayName: 'libs/shared/api-client-base',
4
- preset: '../../../jest.preset.js',
5
- transform: {
6
- '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7
- '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8
- },
9
- moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10
- coverageDirectory: '../../../coverage/libs/shared/api-client-base',
11
- };
package/project.json DELETED
@@ -1,43 +0,0 @@
1
- {
2
- "name": "libs/shared/api-client-base",
3
- "$schema": "../../../node_modules/nx/schemas/project-schema.json",
4
- "sourceRoot": "libs/shared/api-client-base/src",
5
- "projectType": "library",
6
- "tags": [],
7
- "targets": {
8
- "lint": {
9
- "executor": "@nx/eslint:lint",
10
- "outputs": ["{options.outputFile}"],
11
- "options": {
12
- "lintFilePatterns": ["libs/shared/api-client-base/**/*.{ts,tsx,js,jsx}"]
13
- }
14
- },
15
- "build": {
16
- "executor": "@nx/rollup:rollup",
17
- "outputs": ["{options.outputPath}"],
18
- "options": {
19
- "outputPath": "dist/libs/shared/api-client-base",
20
- "tsConfig": "libs/shared/api-client-base/tsconfig.lib.json",
21
- "project": "libs/shared/api-client-base/package.json",
22
- "entryFile": "libs/shared/api-client-base/src/index.ts",
23
- "external": ["react", "react-dom", "react/jsx-runtime"],
24
- "rollupConfig": "@nx/react/plugins/bundle-rollup",
25
- "compiler": "babel",
26
- "assets": [
27
- {
28
- "glob": "libs/shared/api-client-base/README.md",
29
- "input": ".",
30
- "output": "."
31
- }
32
- ]
33
- }
34
- },
35
- "test": {
36
- "executor": "@nx/jest:jest",
37
- "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
38
- "options": {
39
- "jestConfig": "libs/shared/api-client-base/jest.config.ts"
40
- }
41
- }
42
- }
43
- }
@@ -1,46 +0,0 @@
1
- import {FluxoApp} from "./models/fluxo-app";
2
- import {HttpClient} from "../http-client/http-client";
3
- import {FluxoEmbeddedModuleConfiguration} from "./models";
4
-
5
- export class AppService {
6
-
7
- getApps(onlyDeployed: boolean): Promise<FluxoApp[]> {
8
-
9
- const url = onlyDeployed ? 'apps?onlyDeployed=true' : 'apps';
10
-
11
- return HttpClient.Instance().client.get(url);
12
- }
13
-
14
- activateApp(appId: number): Promise<any> {
15
- return HttpClient.Instance().client.post(`apps/${appId}/activate`, {});
16
- }
17
-
18
- deactivateApp(appId: number): Promise<any> {
19
- return HttpClient.Instance().client.post(`apps/${appId}/deactivate`, {});
20
- }
21
-
22
- installApp(data: any): Promise<any> {
23
- return HttpClient.Instance().client.post(`apps/install`, data, {
24
- headers: {
25
- "Content-Type": "multipart/form-data",
26
- },
27
- });
28
- }
29
-
30
- upgradeApp(appId: number, data: any): Promise<any> {
31
- return HttpClient.Instance().client.post(`apps/${appId}/upgrade`, data, {
32
- headers: {
33
- "Content-Type": "multipart/form-data",
34
- },
35
- });
36
- }
37
-
38
- uninstallApp(appId: number): Promise<any> {
39
- return HttpClient.Instance().client.delete(`apps/${appId}/uninstall`);
40
- }
41
-
42
- installEmbeddedModule(data: FluxoEmbeddedModuleConfiguration): Promise<void> {
43
- return HttpClient.Instance().client.post(`apps/install/embedded`, data);
44
- }
45
-
46
- }
@@ -1,4 +0,0 @@
1
- export enum AppState {
2
- Active,
3
- Inactive
4
- }
@@ -1,4 +0,0 @@
1
- export enum AppType {
2
- Frontend,
3
- Backend
4
- }
@@ -1,106 +0,0 @@
1
- import {FluxoEmbeddedModuleConfiguration} from "./fluxo-embedded-module-configuration";
2
- import {IndexRouteObject, LazyRouteFunction, NonIndexRouteObject, RouteObject} from "react-router-dom";
3
- import {FluxoAppMenu} from "./fluxo-app-menu";
4
-
5
- export class EmbeddedModule {
6
-
7
- public get name(): string {
8
- return this._name;
9
- }
10
-
11
- public get description(): string {
12
- return this._description;
13
- }
14
-
15
- public get author(): string {
16
- return this._author;
17
- }
18
-
19
- public get version(): string {
20
- return this._version;
21
- }
22
-
23
- public get scope(): string {
24
- return this._scope;
25
- }
26
-
27
- public get navigation(): EmbeddedModuleNavigation[] {
28
- return this._navigation;
29
- }
30
-
31
- private readonly _name: string
32
- private readonly _description: string
33
- private readonly _author: string
34
- private readonly _version: string
35
- private readonly _scope: string
36
- private _navigation: EmbeddedModuleNavigation[] = [];
37
-
38
- constructor(name: string, description: string, author: string, version: string, scope: string) {
39
- this._name = name;
40
- this._description = description;
41
- this._author = author;
42
- this._version = version;
43
- this._scope = scope;
44
- }
45
-
46
- public attachNavigation(navigationConfig: EmbeddedModuleNavigation): void {
47
- this._navigation.push(navigationConfig);
48
- }
49
-
50
- public getRouteObject(routes: EmbeddedModuleRoute[] | undefined = undefined): RouteObject[] {
51
- const r = routes ?? this._navigation.map(a => a.routes).map(a => a).flat();
52
-
53
- if(!r || r.length === 0) return [];
54
-
55
- const routeObject: RouteObject[] = [];
56
-
57
- r.map((route: EmbeddedModuleRoute) => {
58
- if (route.route) {
59
-
60
- let path = route.route;
61
-
62
- if(route.route === '/') {
63
- path = '';
64
- }
65
-
66
- if(route.route === "*") {
67
- path = '*';
68
- }
69
-
70
- routeObject.push({
71
- path: path,
72
- index: route.route === '/' ? undefined : false,
73
- element: route.component,
74
- children: (route.routes && route.routes.length > 0) ? this.getRouteObject(route.routes) : [],
75
- });
76
- }
77
- });
78
-
79
- return routeObject;
80
- }
81
-
82
- public getEmbeddedModule(): FluxoEmbeddedModuleConfiguration {
83
-
84
- const conf: FluxoEmbeddedModuleConfiguration = {
85
- name: this._name,
86
- description: this._description,
87
- author: this._author,
88
- version: this._version,
89
- scope: this._scope,
90
- menu: this._navigation.map(a => a.menu)
91
- }
92
-
93
- return conf;
94
- }
95
- }
96
-
97
- export interface EmbeddedModuleNavigation {
98
- menu: FluxoAppMenu;
99
- routes: EmbeddedModuleRoute[];
100
- }
101
-
102
- export interface EmbeddedModuleRoute {
103
- route?: string;
104
- component?: any,
105
- routes?: EmbeddedModuleRoute[];
106
- }
@@ -1,12 +0,0 @@
1
- export interface FluxoAppMenu {
2
- identifier: string;
3
- name: string;
4
- route?: string;
5
- items?: FluxoAppMenuItem[];
6
- }
7
-
8
- export interface FluxoAppMenuItem {
9
- identifier: string;
10
- name: string;
11
- route?: string;
12
- }
@@ -1,17 +0,0 @@
1
- import {AppType} from "./app-type";
2
- import {AppState} from "./app-state";
3
-
4
- export interface FluxoApp {
5
- id: number;
6
- name: string;
7
- type: AppType;
8
- description: string;
9
- author: string;
10
- scope: string;
11
- state: AppState;
12
- installationDirectory: string;
13
- installationDate: Date;
14
- version: string;
15
- isEmbedded: boolean;
16
- }
17
-
@@ -1,10 +0,0 @@
1
- import {FluxoAppMenu} from "./fluxo-app-menu";
2
-
3
- export interface FluxoEmbeddedModuleConfiguration {
4
- name: string
5
- description: string
6
- author: string
7
- version: string
8
- scope: string
9
- menu: FluxoAppMenu[]
10
- }
@@ -1,12 +0,0 @@
1
- import {FluxoApp} from "./fluxo-app";
2
- import {FluxoAppMenu} from "./fluxo-app-menu";
3
-
4
- export interface FluxoFrontendAppConfiguration extends FluxoApp {
5
- name: string
6
- description: string
7
- author: string
8
- version: string
9
- scope: string
10
- menu: FluxoAppMenu[]
11
- }
12
-
@@ -1,5 +0,0 @@
1
- import {FlxRoute} from "./flx-route";
2
-
3
- export interface FlxAppRoutes {
4
- routes: FlxRoute[]
5
- }
@@ -1,6 +0,0 @@
1
- export interface FlxRoute {
2
- path: string;
3
- element: React.ReactNode,
4
- permissions?: string[];
5
- permissionStrategy?: 'all' | 'any';
6
- }
@@ -1,149 +0,0 @@
1
- import jwt_decode from "jwt-decode";
2
- import {LocalStorageConstants} from "../constants/local-storage";
3
- import {HttpClient} from "../http-client/http-client";
4
- import {FluxoStateDispatcher} from "../fluxo-state-dispatcher";
5
-
6
- export class AuthService {
7
-
8
- public constructor() {
9
- RefreshTokenManager.Init(this.refreshToken, this.logout);
10
- }
11
-
12
- public async setup() {
13
- await this.tryAutoLogin();
14
- }
15
-
16
- private async tryAutoLogin() {
17
- const accessToken = localStorage.getItem(LocalStorageConstants.accessToken);
18
- if(accessToken) {
19
- const decoded: any = jwt_decode(accessToken);
20
-
21
- if(!decoded) {
22
- this.logout();
23
- return;
24
- }
25
-
26
- if(decoded.exp <= new Date().getTime() / 1000) {
27
-
28
- await this.refreshToken();
29
-
30
- } else {
31
- // Avvio il timeout indicando il tempo di attesa come scadenza token - 30 secondi.
32
- // pertanto, 30 secondi prima della scadenza del token, Fluxo richiederà un nuovo token grazie al refresh token.
33
- RefreshTokenManager.Instance.start(AuthService.getJwtTokenRemainingLifetime()! - 30000);
34
- }
35
-
36
- FluxoStateDispatcher. dispatchAutoLoginSucceded(localStorage.getItem(LocalStorageConstants.userData));
37
-
38
- }
39
- }
40
-
41
- public async login(username: string, password: string): Promise<any> {
42
- try {
43
-
44
- const data = await HttpClient.Instance().client.post('/identity/authenticate', {username, password}, {withCredentials: true});
45
-
46
-
47
- localStorage.setItem(LocalStorageConstants.accessToken, (data as any).token);
48
- localStorage.setItem(LocalStorageConstants.userData, JSON.stringify((data as any).userData));
49
-
50
- RefreshTokenManager.Instance.start(AuthService.getJwtTokenRemainingLifetime()! - 60);
51
-
52
- FluxoStateDispatcher.dispatchUserLogin({data})
53
- }
54
- catch(err) {
55
- FluxoStateDispatcher.dispatchUserLogin(null)
56
- }
57
- }
58
-
59
- public logout() {
60
- RefreshTokenManager.Instance.stop();
61
-
62
- localStorage.removeItem(LocalStorageConstants.accessToken);
63
- localStorage.removeItem(LocalStorageConstants.userData);
64
- FluxoStateDispatcher.dispatchUserLogout();
65
- }
66
-
67
- public async refreshToken(): Promise<any> {
68
-
69
- try {
70
-
71
- const data = await HttpClient.Instance().client.post('/identity/refresh-token', {}, {withCredentials: true});
72
-
73
- localStorage.setItem(LocalStorageConstants.accessToken, (data as any).token);
74
- localStorage.setItem(LocalStorageConstants.userData, JSON.stringify((data as any).userData));
75
-
76
- RefreshTokenManager.Instance.stop();
77
- RefreshTokenManager.Instance.start(AuthService.getJwtTokenRemainingLifetime()! - 10000);
78
-
79
- } catch(err) {
80
- localStorage.removeItem(LocalStorageConstants.accessToken);
81
- localStorage.removeItem(LocalStorageConstants.userData);
82
- this.logout();
83
- }
84
- }
85
-
86
- public static getJwtTokenRemainingLifetime(): number | null {
87
- const token = localStorage.getItem(LocalStorageConstants.accessToken);
88
-
89
- if(!token) {
90
- throw new Error('Called getJwtTokenRemainingLifetime but no access token found');
91
- }
92
-
93
- const decoded: any = jwt_decode(token);
94
- const exp: number = +decoded.exp;
95
-
96
- const dateNow = new Date(Date.now()).getTime();
97
- const diff = ((exp * 1000) - dateNow);
98
-
99
- return diff <= 0 ? 0 : diff;
100
- }
101
- }
102
-
103
- class RefreshTokenManager {
104
- private static _instance: RefreshTokenManager;
105
- private _refreshTokenInterval: any;
106
- private _actionOnTimeout: () => void;
107
- private _onErrorCallback: () => void;
108
-
109
- event = new Event('build');
110
-
111
- private constructor(action: () => void, onErrorCallback: () => void) {
112
- this._refreshTokenInterval = null;
113
- this._actionOnTimeout = action;
114
- this._onErrorCallback = onErrorCallback;
115
- }
116
-
117
- public static Init(actionOnTimeout: () => void, onErrorCallback: () => void) {
118
- this._instance = new this(actionOnTimeout, onErrorCallback);
119
- }
120
-
121
- public static get Instance() {
122
-
123
- if(!this._instance)
124
- throw new Error('RefreshTokenManager not initialized');
125
-
126
- return this._instance;
127
- }
128
-
129
- public start(timeoutMs: number) {
130
-
131
- console.info(' - start refresh token:' + timeoutMs + 'ms');
132
-
133
- if(this._actionOnTimeout === undefined)
134
- throw new Error('RefreshTokenManager not initialized');
135
-
136
- this._refreshTokenInterval = setTimeout(async () => {
137
- try{
138
- await this._actionOnTimeout();
139
- }catch(err) {
140
- this._onErrorCallback();
141
- }
142
- }, timeoutMs);
143
- }
144
-
145
- public stop() {
146
- console.info(' - stop refresh token');
147
- clearInterval(this._refreshTokenInterval);
148
- }
149
- }
@@ -1,9 +0,0 @@
1
- import {AppMenuContextType} from "./app-menu";
2
-
3
- export interface AppMenuCreateCommand {
4
- contextType: AppMenuContextType;
5
- domainRoleId?: number | null;
6
- userId?: string | null;
7
- name: string;
8
- copyItemsFromWebMenuId: number;
9
- }
@@ -1,14 +0,0 @@
1
- export interface AppMenuItem {
2
- id?: number,
3
- routerLink?: string,
4
- label: string,
5
- hasIndex?: boolean,
6
- children?: AppMenuItem[],
7
- icon?: string
8
- featureIdentifier: string,
9
- isGroup: boolean,
10
- menuItemId?: number,
11
- hasPermissions?: boolean,
12
- permissions?: string[],
13
- isProtectedByRule?: boolean,
14
- }
@@ -1,15 +0,0 @@
1
- export interface AppMenu {
2
- id: number;
3
- name: string;
4
- contextType: AppMenuContextType;
5
- domainRoleId: number;
6
- domainRoleName: string;
7
- userId: string;
8
- userFullName: string;
9
- }
10
-
11
- export enum AppMenuContextType {
12
- Default,
13
- DomainRole,
14
- User
15
- }
@@ -1,5 +0,0 @@
1
- export interface ClientUi {
2
- logo: string;
3
- logoHeight: number;
4
- colors: string[],
5
- }
@@ -1,57 +0,0 @@
1
- import {HttpClient} from "../http-client/http-client";
2
- import { AppMenuItem } from "./app-menu-item";
3
- import { ClientUi } from "./client-ui";
4
- import {FeatureList} from "./models/feature-list";
5
- import {FluxoApp} from "../apps/models/fluxo-app";
6
- import {DomainRole} from "../security/domain-role/index";
7
- import {RouteRuleWithPermissions} from "../security/route-rule/index";
8
- import {Permission} from "../security/permission/index";
9
- import {AppMenu} from "./app-menu";
10
- import {AppMenuCreateCommand} from "./app-menu-create-command";
11
-
12
- export class ConfigurationService {
13
-
14
- getInitialConfiguration(): Promise<{apps: FluxoApp[], menu: AppMenuItem[], features: FeatureList, ui: ClientUi, domainRoles: DomainRole[], permissions: any[], routeRules: RouteRuleWithPermissions[], isFluxoConfigured: boolean }> {
15
- return HttpClient.Instance().client.get('client/initial');
16
- }
17
-
18
- getClientUi(): Promise<ClientUi> {
19
- return HttpClient.Instance().client.get('client/ui');
20
- }
21
-
22
- updateClientUi(clientUI: ClientUi): Promise<ClientUi> {
23
- return HttpClient.Instance().client.post('client/ui', clientUI);
24
- }
25
-
26
- getSystemFeatures(): Promise<FeatureList> {
27
- return HttpClient.Instance().client.get('features/web')
28
- }
29
-
30
- saveAppMenu(webMenuId: number, menu: AppMenuItem[]): Promise<any> {
31
- return HttpClient.Instance().client.post(`client/menu/${webMenuId}/webapp`, menu);
32
- }
33
-
34
- createAppMenu(menu: AppMenuCreateCommand): Promise<any> {
35
- return HttpClient.Instance().client.post('client/menu/webapp', menu);
36
- }
37
-
38
- getAppMenuList(): Promise<AppMenu[]> {
39
- return HttpClient.Instance().client.get('webmenu?includes=DomainRole,User');
40
- }
41
-
42
- getAppMenu(webMenuId: number): Promise<AppMenuItem[]> {
43
- return HttpClient.Instance().client.get(`client/menu/${webMenuId}/webapp`);
44
- }
45
-
46
- public getMenuItemPermissions(domainRoleId: string): Promise<Permission[]> {
47
- return HttpClient.Instance().client.get(`webmenuitem/${domainRoleId}/permissions`);
48
- }
49
-
50
- public addMenuItemPermission(domainRoleId: number, permissionId: number): Promise<void> {
51
- return HttpClient.Instance().client.post(`webmenuitem/${domainRoleId}/permissions`, {domainRoleId: domainRoleId, permissionId: permissionId});
52
- }
53
-
54
- public removeMenuItemPermission(domainRoleId: number, permissionId: number): Promise<void> {
55
- return HttpClient.Instance().client.delete(`webmenuitem/${domainRoleId}/permissions/${permissionId}`);
56
- }
57
- }
@@ -1,8 +0,0 @@
1
- import {Module} from "./module";
2
- import {Feature} from "./feature";
3
-
4
- export interface FeatureList {
5
- modules: Module[];
6
- features: Feature[];
7
- }
8
-
@@ -1,11 +0,0 @@
1
- export interface Feature {
2
- identifier: string;
3
- name: string;
4
- description: string;
5
- groupKey: string;
6
- groupName: string;
7
- moduleKey: string;
8
- moduleName: string;
9
- routerLink: string;
10
- menuItemId?: number;
11
- }
@@ -1,5 +0,0 @@
1
- export interface Module {
2
- key: string;
3
- name: string;
4
- description: string;
5
- }
@@ -1,4 +0,0 @@
1
- export const LocalStorageConstants = {
2
- accessToken: 'access-token',
3
- userData: 'user-data',
4
- }