@tramvai/module-common 2.70.0 → 2.72.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 (123) hide show
  1. package/lib/CommonModule.browser.js +100 -0
  2. package/lib/CommonModule.es.js +100 -0
  3. package/lib/CommonModule.js +106 -0
  4. package/lib/actions/ActionModule.browser.js +79 -0
  5. package/lib/actions/ActionModule.es.js +79 -0
  6. package/lib/actions/ActionModule.js +82 -0
  7. package/lib/actions/actionChecker.browser.js +52 -0
  8. package/lib/actions/actionChecker.es.js +52 -0
  9. package/lib/actions/actionChecker.js +56 -0
  10. package/lib/actions/actionExecution.browser.js +107 -0
  11. package/lib/actions/actionExecution.es.js +107 -0
  12. package/lib/actions/actionExecution.js +118 -0
  13. package/lib/actions/actionPageRunner.browser.browser.js +33 -0
  14. package/lib/actions/actionPageRunner.es.js +61 -0
  15. package/lib/actions/actionPageRunner.js +65 -0
  16. package/lib/actions/actionRegistry.browser.js +33 -0
  17. package/lib/actions/actionRegistry.es.js +33 -0
  18. package/lib/actions/actionRegistry.js +45 -0
  19. package/lib/actions/actionTramvaiReducer.browser.js +10 -0
  20. package/lib/actions/actionTramvaiReducer.es.js +10 -0
  21. package/lib/actions/actionTramvaiReducer.js +15 -0
  22. package/lib/actions/conditions/always.browser.js +10 -0
  23. package/lib/actions/conditions/always.es.js +10 -0
  24. package/lib/actions/conditions/always.js +14 -0
  25. package/lib/actions/conditions/helpers.browser.js +4 -0
  26. package/lib/actions/conditions/helpers.es.js +4 -0
  27. package/lib/actions/conditions/helpers.js +9 -0
  28. package/lib/actions/conditions/onlyBrowser.browser.js +12 -0
  29. package/lib/actions/conditions/onlyBrowser.es.js +12 -0
  30. package/lib/actions/conditions/onlyBrowser.js +16 -0
  31. package/lib/actions/conditions/onlyServer.browser.js +12 -0
  32. package/lib/actions/conditions/onlyServer.es.js +12 -0
  33. package/lib/actions/conditions/onlyServer.js +16 -0
  34. package/lib/actions/conditions/pageBrowser.browser.js +13 -0
  35. package/lib/actions/conditions/pageBrowser.es.js +13 -0
  36. package/lib/actions/conditions/pageBrowser.js +17 -0
  37. package/lib/actions/conditions/pageServer.browser.js +13 -0
  38. package/lib/actions/conditions/pageServer.es.js +13 -0
  39. package/lib/actions/conditions/pageServer.js +17 -0
  40. package/lib/actions/constants.browser.js +9 -0
  41. package/lib/actions/constants.es.js +9 -0
  42. package/lib/actions/constants.js +13 -0
  43. package/lib/bundleManager/bundleManager.browser.js +105 -0
  44. package/lib/bundleManager/bundleManager.es.js +105 -0
  45. package/lib/bundleManager/bundleManager.js +115 -0
  46. package/lib/cache/CacheModule.browser.js +58 -0
  47. package/lib/cache/CacheModule.es.js +58 -0
  48. package/lib/cache/CacheModule.js +62 -0
  49. package/lib/cache/cacheFactory.browser.js +7 -0
  50. package/lib/cache/cacheFactory.es.js +7 -0
  51. package/lib/cache/cacheFactory.js +15 -0
  52. package/lib/cache/clientProviders.browser.js +3 -0
  53. package/lib/cache/papi.es.js +18 -0
  54. package/lib/cache/papi.js +22 -0
  55. package/lib/cache/serverProviders.es.js +18 -0
  56. package/lib/cache/serverProviders.js +22 -0
  57. package/lib/child-app/ChildAppModule.browser.js +38 -0
  58. package/lib/child-app/ChildAppModule.es.js +38 -0
  59. package/lib/child-app/ChildAppModule.js +40 -0
  60. package/lib/child-app/actions.browser.js +19 -0
  61. package/lib/child-app/actions.es.js +19 -0
  62. package/lib/child-app/actions.js +23 -0
  63. package/lib/child-app/clientProviders.browser.js +18 -0
  64. package/lib/child-app/command.browser.js +35 -0
  65. package/lib/child-app/command.es.js +35 -0
  66. package/lib/child-app/command.js +40 -0
  67. package/lib/child-app/serverProviders.es.js +3 -0
  68. package/lib/child-app/serverProviders.js +7 -0
  69. package/lib/child-app/state.browser.js +13 -0
  70. package/lib/child-app/state.es.js +13 -0
  71. package/lib/child-app/state.js +17 -0
  72. package/lib/command/CommandModule.browser.js +52 -0
  73. package/lib/command/CommandModule.es.js +52 -0
  74. package/lib/command/CommandModule.js +54 -0
  75. package/lib/command/commandLineRunner.browser.js +147 -0
  76. package/lib/command/commandLineRunner.es.js +147 -0
  77. package/lib/command/commandLineRunner.js +151 -0
  78. package/lib/command/defaultLines.browser.js +25 -0
  79. package/lib/command/defaultLines.es.js +25 -0
  80. package/lib/command/defaultLines.js +29 -0
  81. package/lib/componentRegistry/componentRegistry.browser.js +25 -0
  82. package/lib/componentRegistry/componentRegistry.es.js +25 -0
  83. package/lib/componentRegistry/componentRegistry.js +34 -0
  84. package/lib/createConsumerContext/createConsumerContext.browser.js +62 -0
  85. package/lib/createConsumerContext/createConsumerContext.es.js +62 -0
  86. package/lib/createConsumerContext/createConsumerContext.js +67 -0
  87. package/lib/executionContext/executionContextManager.browser.js +57 -0
  88. package/lib/executionContext/executionContextManager.es.js +57 -0
  89. package/lib/executionContext/executionContextManager.js +61 -0
  90. package/lib/index.browser.js +13 -1300
  91. package/lib/index.es.js +13 -1318
  92. package/lib/index.js +38 -1341
  93. package/lib/providers/clientProviders.browser.js +22 -0
  94. package/lib/providers/serverProviders.es.js +3 -0
  95. package/lib/providers/serverProviders.js +7 -0
  96. package/lib/pubsub/PubSubModule.browser.js +44 -0
  97. package/lib/pubsub/PubSubModule.es.js +44 -0
  98. package/lib/pubsub/PubSubModule.js +46 -0
  99. package/lib/requestManager/RequestManagerModule.browser.browser.js +38 -0
  100. package/lib/requestManager/RequestManagerModule.es.js +35 -0
  101. package/lib/requestManager/RequestManagerModule.js +37 -0
  102. package/lib/requestManager/RequestManagerStore.browser.js +8 -0
  103. package/lib/requestManager/RequestManagerStore.es.js +8 -0
  104. package/lib/requestManager/RequestManagerStore.js +13 -0
  105. package/lib/requestManager/requestManager.browser.js +57 -0
  106. package/lib/requestManager/requestManager.es.js +57 -0
  107. package/lib/requestManager/requestManager.js +61 -0
  108. package/lib/requestManager/sharedProviders.browser.js +23 -0
  109. package/lib/requestManager/sharedProviders.es.js +23 -0
  110. package/lib/requestManager/sharedProviders.js +27 -0
  111. package/lib/responseManager/ResponseManagerModule.browser.browser.js +21 -0
  112. package/lib/responseManager/ResponseManagerModule.es.js +13 -0
  113. package/lib/responseManager/ResponseManagerModule.js +15 -0
  114. package/lib/responseManager/responseManager.browser.js +52 -0
  115. package/lib/responseManager/responseManager.es.js +52 -0
  116. package/lib/responseManager/responseManager.js +61 -0
  117. package/lib/responseManager/sharedProviders.browser.js +13 -0
  118. package/lib/responseManager/sharedProviders.es.js +13 -0
  119. package/lib/responseManager/sharedProviders.js +17 -0
  120. package/lib/state/StateModule.browser.js +54 -0
  121. package/lib/state/StateModule.es.js +54 -0
  122. package/lib/state/StateModule.js +60 -0
  123. package/package.json +24 -25
@@ -0,0 +1,100 @@
1
+ import { __decorate } from 'tslib';
2
+ import eachObj from '@tinkoff/utils/object/each';
3
+ import { Module, provide, Scope, BUNDLE_LIST_TOKEN, DI_TOKEN } from '@tramvai/core';
4
+ import { EnvironmentModule } from '@tramvai/module-environment';
5
+ import { CookieModule } from '@tramvai/module-cookie';
6
+ import { LogModule } from '@tramvai/module-log';
7
+ import { Hooks } from '@tinkoff/hook-runner';
8
+ import { HOOK_TOKEN, COMPONENT_REGISTRY_TOKEN, BUNDLE_MANAGER_TOKEN, ADDITIONAL_BUNDLE_TOKEN, ACTION_REGISTRY_TOKEN, DISPATCHER_TOKEN, LOGGER_TOKEN, CONTEXT_TOKEN, PUBSUB_TOKEN, DISPATCHER_CONTEXT_TOKEN, STORE_TOKEN, EXECUTION_CONTEXT_MANAGER_TOKEN } from '@tramvai/tokens-common';
9
+ import { BundleManager } from './bundleManager/bundleManager.browser.js';
10
+ import { ComponentRegistry } from './componentRegistry/componentRegistry.browser.js';
11
+ import { RequestManagerModule } from './requestManager/RequestManagerModule.browser.browser.js';
12
+ import { ResponseManagerModule } from './responseManager/ResponseManagerModule.browser.browser.js';
13
+ import { createConsumerContext } from './createConsumerContext/createConsumerContext.browser.js';
14
+ import { CommandModule } from './command/CommandModule.browser.js';
15
+ import { PubSubModule } from './pubsub/PubSubModule.browser.js';
16
+ import { providers } from './providers/clientProviders.browser.js';
17
+ import { ActionModule } from './actions/ActionModule.browser.js';
18
+ import { StateModule } from './state/StateModule.browser.js';
19
+ import { CacheModule } from './cache/CacheModule.browser.js';
20
+ import { ExecutionContextManager } from './executionContext/executionContextManager.browser.js';
21
+
22
+ let CommonModule = class CommonModule {
23
+ };
24
+ CommonModule = __decorate([
25
+ Module({
26
+ imports: [
27
+ CommandModule,
28
+ EnvironmentModule,
29
+ PubSubModule,
30
+ LogModule,
31
+ CookieModule,
32
+ ActionModule,
33
+ StateModule,
34
+ RequestManagerModule,
35
+ ResponseManagerModule,
36
+ CacheModule,
37
+ ],
38
+ providers: [
39
+ provide({
40
+ // Инстанс хук системы
41
+ provide: HOOK_TOKEN,
42
+ scope: Scope.SINGLETON,
43
+ useClass: Hooks,
44
+ }),
45
+ provide({
46
+ // Регистр ui компонентов
47
+ provide: COMPONENT_REGISTRY_TOKEN,
48
+ scope: Scope.SINGLETON,
49
+ useClass: ComponentRegistry,
50
+ deps: {
51
+ componentList: { token: 'componentDefaultList', optional: true },
52
+ },
53
+ }),
54
+ provide({
55
+ // Управление бандлами, хранение и получение
56
+ provide: BUNDLE_MANAGER_TOKEN,
57
+ scope: Scope.SINGLETON,
58
+ useFactory: ({ additionalBundleList, ...bundleManagerDeps }) => {
59
+ additionalBundleList === null || additionalBundleList === void 0 ? void 0 : additionalBundleList.forEach((bundles) => {
60
+ eachObj((bundle, name) => {
61
+ const bundleAlreadyExists = name in bundleManagerDeps.bundleList;
62
+ if (!bundleAlreadyExists) {
63
+ // eslint-disable-next-line no-param-reassign
64
+ bundleManagerDeps.bundleList[name] = () => Promise.resolve({ default: bundle });
65
+ }
66
+ }, bundles);
67
+ });
68
+ return new BundleManager(bundleManagerDeps);
69
+ },
70
+ deps: {
71
+ bundleList: BUNDLE_LIST_TOKEN,
72
+ additionalBundleList: { token: ADDITIONAL_BUNDLE_TOKEN, optional: true },
73
+ componentRegistry: COMPONENT_REGISTRY_TOKEN,
74
+ actionRegistry: ACTION_REGISTRY_TOKEN,
75
+ dispatcher: DISPATCHER_TOKEN,
76
+ logger: LOGGER_TOKEN,
77
+ },
78
+ }),
79
+ provide({
80
+ // Клиентский контекст исполнения
81
+ provide: CONTEXT_TOKEN,
82
+ scope: Scope.REQUEST,
83
+ useFactory: createConsumerContext,
84
+ deps: {
85
+ di: DI_TOKEN,
86
+ pubsub: PUBSUB_TOKEN,
87
+ dispatcherContext: DISPATCHER_CONTEXT_TOKEN,
88
+ store: STORE_TOKEN,
89
+ },
90
+ }),
91
+ provide({
92
+ provide: EXECUTION_CONTEXT_MANAGER_TOKEN,
93
+ useClass: ExecutionContextManager,
94
+ }),
95
+ ...providers,
96
+ ],
97
+ })
98
+ ], CommonModule);
99
+
100
+ export { CommonModule };
@@ -0,0 +1,100 @@
1
+ import { __decorate } from 'tslib';
2
+ import eachObj from '@tinkoff/utils/object/each';
3
+ import { Module, provide, Scope, BUNDLE_LIST_TOKEN, DI_TOKEN } from '@tramvai/core';
4
+ import { EnvironmentModule } from '@tramvai/module-environment';
5
+ import { CookieModule } from '@tramvai/module-cookie';
6
+ import { LogModule } from '@tramvai/module-log';
7
+ import { Hooks } from '@tinkoff/hook-runner';
8
+ import { HOOK_TOKEN, COMPONENT_REGISTRY_TOKEN, BUNDLE_MANAGER_TOKEN, ADDITIONAL_BUNDLE_TOKEN, ACTION_REGISTRY_TOKEN, DISPATCHER_TOKEN, LOGGER_TOKEN, CONTEXT_TOKEN, PUBSUB_TOKEN, DISPATCHER_CONTEXT_TOKEN, STORE_TOKEN, EXECUTION_CONTEXT_MANAGER_TOKEN } from '@tramvai/tokens-common';
9
+ import { BundleManager } from './bundleManager/bundleManager.es.js';
10
+ import { ComponentRegistry } from './componentRegistry/componentRegistry.es.js';
11
+ import { RequestManagerModule } from './requestManager/RequestManagerModule.es.js';
12
+ import { ResponseManagerModule } from './responseManager/ResponseManagerModule.es.js';
13
+ import { createConsumerContext } from './createConsumerContext/createConsumerContext.es.js';
14
+ import { CommandModule } from './command/CommandModule.es.js';
15
+ import { PubSubModule } from './pubsub/PubSubModule.es.js';
16
+ import { providers } from './providers/serverProviders.es.js';
17
+ import { ActionModule } from './actions/ActionModule.es.js';
18
+ import { StateModule } from './state/StateModule.es.js';
19
+ import { CacheModule } from './cache/CacheModule.es.js';
20
+ import { ExecutionContextManager } from './executionContext/executionContextManager.es.js';
21
+
22
+ let CommonModule = class CommonModule {
23
+ };
24
+ CommonModule = __decorate([
25
+ Module({
26
+ imports: [
27
+ CommandModule,
28
+ EnvironmentModule,
29
+ PubSubModule,
30
+ LogModule,
31
+ CookieModule,
32
+ ActionModule,
33
+ StateModule,
34
+ RequestManagerModule,
35
+ ResponseManagerModule,
36
+ CacheModule,
37
+ ],
38
+ providers: [
39
+ provide({
40
+ // Инстанс хук системы
41
+ provide: HOOK_TOKEN,
42
+ scope: Scope.SINGLETON,
43
+ useClass: Hooks,
44
+ }),
45
+ provide({
46
+ // Регистр ui компонентов
47
+ provide: COMPONENT_REGISTRY_TOKEN,
48
+ scope: Scope.SINGLETON,
49
+ useClass: ComponentRegistry,
50
+ deps: {
51
+ componentList: { token: 'componentDefaultList', optional: true },
52
+ },
53
+ }),
54
+ provide({
55
+ // Управление бандлами, хранение и получение
56
+ provide: BUNDLE_MANAGER_TOKEN,
57
+ scope: Scope.SINGLETON,
58
+ useFactory: ({ additionalBundleList, ...bundleManagerDeps }) => {
59
+ additionalBundleList === null || additionalBundleList === void 0 ? void 0 : additionalBundleList.forEach((bundles) => {
60
+ eachObj((bundle, name) => {
61
+ const bundleAlreadyExists = name in bundleManagerDeps.bundleList;
62
+ if (!bundleAlreadyExists) {
63
+ // eslint-disable-next-line no-param-reassign
64
+ bundleManagerDeps.bundleList[name] = () => Promise.resolve({ default: bundle });
65
+ }
66
+ }, bundles);
67
+ });
68
+ return new BundleManager(bundleManagerDeps);
69
+ },
70
+ deps: {
71
+ bundleList: BUNDLE_LIST_TOKEN,
72
+ additionalBundleList: { token: ADDITIONAL_BUNDLE_TOKEN, optional: true },
73
+ componentRegistry: COMPONENT_REGISTRY_TOKEN,
74
+ actionRegistry: ACTION_REGISTRY_TOKEN,
75
+ dispatcher: DISPATCHER_TOKEN,
76
+ logger: LOGGER_TOKEN,
77
+ },
78
+ }),
79
+ provide({
80
+ // Клиентский контекст исполнения
81
+ provide: CONTEXT_TOKEN,
82
+ scope: Scope.REQUEST,
83
+ useFactory: createConsumerContext,
84
+ deps: {
85
+ di: DI_TOKEN,
86
+ pubsub: PUBSUB_TOKEN,
87
+ dispatcherContext: DISPATCHER_CONTEXT_TOKEN,
88
+ store: STORE_TOKEN,
89
+ },
90
+ }),
91
+ provide({
92
+ provide: EXECUTION_CONTEXT_MANAGER_TOKEN,
93
+ useClass: ExecutionContextManager,
94
+ }),
95
+ ...providers,
96
+ ],
97
+ })
98
+ ], CommonModule);
99
+
100
+ export { CommonModule };
@@ -0,0 +1,106 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var eachObj = require('@tinkoff/utils/object/each');
7
+ var core = require('@tramvai/core');
8
+ var moduleEnvironment = require('@tramvai/module-environment');
9
+ var moduleCookie = require('@tramvai/module-cookie');
10
+ var moduleLog = require('@tramvai/module-log');
11
+ var hookRunner = require('@tinkoff/hook-runner');
12
+ var tokensCommon = require('@tramvai/tokens-common');
13
+ var bundleManager = require('./bundleManager/bundleManager.js');
14
+ var componentRegistry = require('./componentRegistry/componentRegistry.js');
15
+ var RequestManagerModule = require('./requestManager/RequestManagerModule.js');
16
+ var ResponseManagerModule = require('./responseManager/ResponseManagerModule.js');
17
+ var createConsumerContext = require('./createConsumerContext/createConsumerContext.js');
18
+ var CommandModule = require('./command/CommandModule.js');
19
+ var PubSubModule = require('./pubsub/PubSubModule.js');
20
+ var serverProviders = require('./providers/serverProviders.js');
21
+ var ActionModule = require('./actions/ActionModule.js');
22
+ var StateModule = require('./state/StateModule.js');
23
+ var CacheModule = require('./cache/CacheModule.js');
24
+ var executionContextManager = require('./executionContext/executionContextManager.js');
25
+
26
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
+
28
+ var eachObj__default = /*#__PURE__*/_interopDefaultLegacy(eachObj);
29
+
30
+ exports.CommonModule = class CommonModule {
31
+ };
32
+ exports.CommonModule = tslib.__decorate([
33
+ core.Module({
34
+ imports: [
35
+ CommandModule.CommandModule,
36
+ moduleEnvironment.EnvironmentModule,
37
+ PubSubModule.PubSubModule,
38
+ moduleLog.LogModule,
39
+ moduleCookie.CookieModule,
40
+ ActionModule.ActionModule,
41
+ StateModule.StateModule,
42
+ RequestManagerModule.RequestManagerModule,
43
+ ResponseManagerModule.ResponseManagerModule,
44
+ CacheModule.CacheModule,
45
+ ],
46
+ providers: [
47
+ core.provide({
48
+ // Инстанс хук системы
49
+ provide: tokensCommon.HOOK_TOKEN,
50
+ scope: core.Scope.SINGLETON,
51
+ useClass: hookRunner.Hooks,
52
+ }),
53
+ core.provide({
54
+ // Регистр ui компонентов
55
+ provide: tokensCommon.COMPONENT_REGISTRY_TOKEN,
56
+ scope: core.Scope.SINGLETON,
57
+ useClass: componentRegistry.ComponentRegistry,
58
+ deps: {
59
+ componentList: { token: 'componentDefaultList', optional: true },
60
+ },
61
+ }),
62
+ core.provide({
63
+ // Управление бандлами, хранение и получение
64
+ provide: tokensCommon.BUNDLE_MANAGER_TOKEN,
65
+ scope: core.Scope.SINGLETON,
66
+ useFactory: ({ additionalBundleList, ...bundleManagerDeps }) => {
67
+ additionalBundleList === null || additionalBundleList === void 0 ? void 0 : additionalBundleList.forEach((bundles) => {
68
+ eachObj__default["default"]((bundle, name) => {
69
+ const bundleAlreadyExists = name in bundleManagerDeps.bundleList;
70
+ if (!bundleAlreadyExists) {
71
+ // eslint-disable-next-line no-param-reassign
72
+ bundleManagerDeps.bundleList[name] = () => Promise.resolve({ default: bundle });
73
+ }
74
+ }, bundles);
75
+ });
76
+ return new bundleManager.BundleManager(bundleManagerDeps);
77
+ },
78
+ deps: {
79
+ bundleList: core.BUNDLE_LIST_TOKEN,
80
+ additionalBundleList: { token: tokensCommon.ADDITIONAL_BUNDLE_TOKEN, optional: true },
81
+ componentRegistry: tokensCommon.COMPONENT_REGISTRY_TOKEN,
82
+ actionRegistry: tokensCommon.ACTION_REGISTRY_TOKEN,
83
+ dispatcher: tokensCommon.DISPATCHER_TOKEN,
84
+ logger: tokensCommon.LOGGER_TOKEN,
85
+ },
86
+ }),
87
+ core.provide({
88
+ // Клиентский контекст исполнения
89
+ provide: tokensCommon.CONTEXT_TOKEN,
90
+ scope: core.Scope.REQUEST,
91
+ useFactory: createConsumerContext.createConsumerContext,
92
+ deps: {
93
+ di: core.DI_TOKEN,
94
+ pubsub: tokensCommon.PUBSUB_TOKEN,
95
+ dispatcherContext: tokensCommon.DISPATCHER_CONTEXT_TOKEN,
96
+ store: tokensCommon.STORE_TOKEN,
97
+ },
98
+ }),
99
+ core.provide({
100
+ provide: tokensCommon.EXECUTION_CONTEXT_MANAGER_TOKEN,
101
+ useClass: executionContextManager.ExecutionContextManager,
102
+ }),
103
+ ...serverProviders.providers,
104
+ ],
105
+ })
106
+ ], exports.CommonModule);
@@ -0,0 +1,79 @@
1
+ import { __decorate } from 'tslib';
2
+ import { createToken, Module, provide, Scope, ACTIONS_LIST_TOKEN, DI_TOKEN } from '@tramvai/core';
3
+ import { COMBINE_REDUCERS, ACTION_REGISTRY_TOKEN, ACTION_EXECUTION_TOKEN, ACTION_CONDITIONALS, CONTEXT_TOKEN, STORE_TOKEN, EXECUTION_CONTEXT_MANAGER_TOKEN, ACTION_PAGE_RUNNER_TOKEN, COMMAND_LINE_EXECUTION_CONTEXT_TOKEN, LOGGER_TOKEN } from '@tramvai/tokens-common';
4
+ import { actionTramvaiReducer } from './actionTramvaiReducer.browser.js';
5
+ import { ActionExecution } from './actionExecution.browser.js';
6
+ import { ActionRegistry } from './actionRegistry.browser.js';
7
+ import { ActionPageRunner } from './actionPageRunner.browser.browser.js';
8
+ import { alwaysCondition } from './conditions/always.browser.js';
9
+ export { alwaysCondition } from './conditions/always.browser.js';
10
+ import { onlyServer } from './conditions/onlyServer.browser.js';
11
+ export { onlyServer } from './conditions/onlyServer.browser.js';
12
+ import { onlyBrowser } from './conditions/onlyBrowser.browser.js';
13
+ export { onlyBrowser } from './conditions/onlyBrowser.browser.js';
14
+ import { pageServer } from './conditions/pageServer.browser.js';
15
+ export { pageServer } from './conditions/pageServer.browser.js';
16
+ import { pageBrowser } from './conditions/pageBrowser.browser.js';
17
+ export { pageBrowser } from './conditions/pageBrowser.browser.js';
18
+
19
+ const LIMIT_ACTION_GLOBAL_TIME_RUN = createToken('limitActionGlobalTimeRun');
20
+ let ActionModule = class ActionModule {
21
+ };
22
+ ActionModule = __decorate([
23
+ Module({
24
+ providers: [
25
+ provide({
26
+ provide: COMBINE_REDUCERS,
27
+ multi: true,
28
+ useValue: actionTramvaiReducer,
29
+ }),
30
+ provide({
31
+ // Регистер глобальных экшенов
32
+ provide: ACTION_REGISTRY_TOKEN,
33
+ scope: Scope.SINGLETON,
34
+ useClass: ActionRegistry,
35
+ deps: { actionsList: ACTIONS_LIST_TOKEN },
36
+ }),
37
+ provide({
38
+ provide: ACTION_EXECUTION_TOKEN,
39
+ scope: Scope.REQUEST,
40
+ useClass: ActionExecution,
41
+ deps: {
42
+ actionConditionals: { token: ACTION_CONDITIONALS, optional: true },
43
+ context: CONTEXT_TOKEN,
44
+ store: STORE_TOKEN,
45
+ di: DI_TOKEN,
46
+ executionContextManager: EXECUTION_CONTEXT_MANAGER_TOKEN,
47
+ transformAction: {
48
+ token: 'actionTransformAction',
49
+ optional: true,
50
+ },
51
+ },
52
+ }),
53
+ provide({
54
+ provide: ACTION_PAGE_RUNNER_TOKEN,
55
+ scope: Scope.REQUEST,
56
+ useClass: ActionPageRunner,
57
+ deps: {
58
+ actionExecution: ACTION_EXECUTION_TOKEN,
59
+ executionContextManager: EXECUTION_CONTEXT_MANAGER_TOKEN,
60
+ commandLineExecutionContext: COMMAND_LINE_EXECUTION_CONTEXT_TOKEN,
61
+ store: STORE_TOKEN,
62
+ limitTime: LIMIT_ACTION_GLOBAL_TIME_RUN,
63
+ logger: LOGGER_TOKEN,
64
+ },
65
+ }),
66
+ provide({
67
+ provide: LIMIT_ACTION_GLOBAL_TIME_RUN,
68
+ useValue: 500,
69
+ }),
70
+ provide({
71
+ provide: ACTION_CONDITIONALS,
72
+ multi: true,
73
+ useValue: [alwaysCondition, onlyServer, onlyBrowser, pageServer, pageBrowser],
74
+ }),
75
+ ],
76
+ })
77
+ ], ActionModule);
78
+
79
+ export { ActionModule };
@@ -0,0 +1,79 @@
1
+ import { __decorate } from 'tslib';
2
+ import { createToken, Module, provide, Scope, ACTIONS_LIST_TOKEN, DI_TOKEN } from '@tramvai/core';
3
+ import { COMBINE_REDUCERS, ACTION_REGISTRY_TOKEN, ACTION_EXECUTION_TOKEN, ACTION_CONDITIONALS, CONTEXT_TOKEN, STORE_TOKEN, EXECUTION_CONTEXT_MANAGER_TOKEN, ACTION_PAGE_RUNNER_TOKEN, COMMAND_LINE_EXECUTION_CONTEXT_TOKEN, LOGGER_TOKEN } from '@tramvai/tokens-common';
4
+ import { actionTramvaiReducer } from './actionTramvaiReducer.es.js';
5
+ import { ActionExecution } from './actionExecution.es.js';
6
+ import { ActionRegistry } from './actionRegistry.es.js';
7
+ import { ActionPageRunner } from './actionPageRunner.es.js';
8
+ import { alwaysCondition } from './conditions/always.es.js';
9
+ export { alwaysCondition } from './conditions/always.es.js';
10
+ import { onlyServer } from './conditions/onlyServer.es.js';
11
+ export { onlyServer } from './conditions/onlyServer.es.js';
12
+ import { onlyBrowser } from './conditions/onlyBrowser.es.js';
13
+ export { onlyBrowser } from './conditions/onlyBrowser.es.js';
14
+ import { pageServer } from './conditions/pageServer.es.js';
15
+ export { pageServer } from './conditions/pageServer.es.js';
16
+ import { pageBrowser } from './conditions/pageBrowser.es.js';
17
+ export { pageBrowser } from './conditions/pageBrowser.es.js';
18
+
19
+ const LIMIT_ACTION_GLOBAL_TIME_RUN = createToken('limitActionGlobalTimeRun');
20
+ let ActionModule = class ActionModule {
21
+ };
22
+ ActionModule = __decorate([
23
+ Module({
24
+ providers: [
25
+ provide({
26
+ provide: COMBINE_REDUCERS,
27
+ multi: true,
28
+ useValue: actionTramvaiReducer,
29
+ }),
30
+ provide({
31
+ // Регистер глобальных экшенов
32
+ provide: ACTION_REGISTRY_TOKEN,
33
+ scope: Scope.SINGLETON,
34
+ useClass: ActionRegistry,
35
+ deps: { actionsList: ACTIONS_LIST_TOKEN },
36
+ }),
37
+ provide({
38
+ provide: ACTION_EXECUTION_TOKEN,
39
+ scope: Scope.REQUEST,
40
+ useClass: ActionExecution,
41
+ deps: {
42
+ actionConditionals: { token: ACTION_CONDITIONALS, optional: true },
43
+ context: CONTEXT_TOKEN,
44
+ store: STORE_TOKEN,
45
+ di: DI_TOKEN,
46
+ executionContextManager: EXECUTION_CONTEXT_MANAGER_TOKEN,
47
+ transformAction: {
48
+ token: 'actionTransformAction',
49
+ optional: true,
50
+ },
51
+ },
52
+ }),
53
+ provide({
54
+ provide: ACTION_PAGE_RUNNER_TOKEN,
55
+ scope: Scope.REQUEST,
56
+ useClass: ActionPageRunner,
57
+ deps: {
58
+ actionExecution: ACTION_EXECUTION_TOKEN,
59
+ executionContextManager: EXECUTION_CONTEXT_MANAGER_TOKEN,
60
+ commandLineExecutionContext: COMMAND_LINE_EXECUTION_CONTEXT_TOKEN,
61
+ store: STORE_TOKEN,
62
+ limitTime: LIMIT_ACTION_GLOBAL_TIME_RUN,
63
+ logger: LOGGER_TOKEN,
64
+ },
65
+ }),
66
+ provide({
67
+ provide: LIMIT_ACTION_GLOBAL_TIME_RUN,
68
+ useValue: 500,
69
+ }),
70
+ provide({
71
+ provide: ACTION_CONDITIONALS,
72
+ multi: true,
73
+ useValue: [alwaysCondition, onlyServer, onlyBrowser, pageServer, pageBrowser],
74
+ }),
75
+ ],
76
+ })
77
+ ], ActionModule);
78
+
79
+ export { ActionModule };
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var core = require('@tramvai/core');
7
+ var tokensCommon = require('@tramvai/tokens-common');
8
+ var actionTramvaiReducer = require('./actionTramvaiReducer.js');
9
+ var actionExecution = require('./actionExecution.js');
10
+ var actionRegistry = require('./actionRegistry.js');
11
+ var actionPageRunner = require('./actionPageRunner.js');
12
+ var always = require('./conditions/always.js');
13
+ var onlyServer = require('./conditions/onlyServer.js');
14
+ var onlyBrowser = require('./conditions/onlyBrowser.js');
15
+ var pageServer = require('./conditions/pageServer.js');
16
+ var pageBrowser = require('./conditions/pageBrowser.js');
17
+
18
+ const LIMIT_ACTION_GLOBAL_TIME_RUN = core.createToken('limitActionGlobalTimeRun');
19
+ exports.ActionModule = class ActionModule {
20
+ };
21
+ exports.ActionModule = tslib.__decorate([
22
+ core.Module({
23
+ providers: [
24
+ core.provide({
25
+ provide: tokensCommon.COMBINE_REDUCERS,
26
+ multi: true,
27
+ useValue: actionTramvaiReducer.actionTramvaiReducer,
28
+ }),
29
+ core.provide({
30
+ // Регистер глобальных экшенов
31
+ provide: tokensCommon.ACTION_REGISTRY_TOKEN,
32
+ scope: core.Scope.SINGLETON,
33
+ useClass: actionRegistry.ActionRegistry,
34
+ deps: { actionsList: core.ACTIONS_LIST_TOKEN },
35
+ }),
36
+ core.provide({
37
+ provide: tokensCommon.ACTION_EXECUTION_TOKEN,
38
+ scope: core.Scope.REQUEST,
39
+ useClass: actionExecution.ActionExecution,
40
+ deps: {
41
+ actionConditionals: { token: tokensCommon.ACTION_CONDITIONALS, optional: true },
42
+ context: tokensCommon.CONTEXT_TOKEN,
43
+ store: tokensCommon.STORE_TOKEN,
44
+ di: core.DI_TOKEN,
45
+ executionContextManager: tokensCommon.EXECUTION_CONTEXT_MANAGER_TOKEN,
46
+ transformAction: {
47
+ token: 'actionTransformAction',
48
+ optional: true,
49
+ },
50
+ },
51
+ }),
52
+ core.provide({
53
+ provide: tokensCommon.ACTION_PAGE_RUNNER_TOKEN,
54
+ scope: core.Scope.REQUEST,
55
+ useClass: actionPageRunner.ActionPageRunner,
56
+ deps: {
57
+ actionExecution: tokensCommon.ACTION_EXECUTION_TOKEN,
58
+ executionContextManager: tokensCommon.EXECUTION_CONTEXT_MANAGER_TOKEN,
59
+ commandLineExecutionContext: tokensCommon.COMMAND_LINE_EXECUTION_CONTEXT_TOKEN,
60
+ store: tokensCommon.STORE_TOKEN,
61
+ limitTime: LIMIT_ACTION_GLOBAL_TIME_RUN,
62
+ logger: tokensCommon.LOGGER_TOKEN,
63
+ },
64
+ }),
65
+ core.provide({
66
+ provide: LIMIT_ACTION_GLOBAL_TIME_RUN,
67
+ useValue: 500,
68
+ }),
69
+ core.provide({
70
+ provide: tokensCommon.ACTION_CONDITIONALS,
71
+ multi: true,
72
+ useValue: [always.alwaysCondition, onlyServer.onlyServer, onlyBrowser.onlyBrowser, pageServer.pageServer, pageBrowser.pageBrowser],
73
+ }),
74
+ ],
75
+ })
76
+ ], exports.ActionModule);
77
+
78
+ exports.alwaysCondition = always.alwaysCondition;
79
+ exports.onlyServer = onlyServer.onlyServer;
80
+ exports.onlyBrowser = onlyBrowser.onlyBrowser;
81
+ exports.pageServer = pageServer.pageServer;
82
+ exports.pageBrowser = pageBrowser.pageBrowser;
@@ -0,0 +1,52 @@
1
+ import { actionType } from './constants.browser.js';
2
+
3
+ const DEFAULT_CONDITIONS = {};
4
+ class ActionChecker {
5
+ // eslint-disable-next-line max-params
6
+ constructor(globalConditionals, payload, parameters, executionState, type) {
7
+ var _a;
8
+ this.globalConditionals = globalConditionals;
9
+ this.payload = payload;
10
+ this.parameters = parameters;
11
+ this.executionState = executionState;
12
+ this.type = type;
13
+ this.status = true;
14
+ this.forbiddenMarker = false;
15
+ this.key = null;
16
+ // для глобальных экшенов мы должны дедублицировать выполнение и меньше выполнять
17
+ if (type === actionType.global) {
18
+ // если экшен был уже выполнен, то считаем, что его не нужно больше выполнять
19
+ this.status = executionState.status !== 'success';
20
+ }
21
+ this.conditions = (_a = parameters.conditions) !== null && _a !== void 0 ? _a : DEFAULT_CONDITIONS;
22
+ }
23
+ check() {
24
+ this.globalConditionals.forEach((filter) => {
25
+ this.key = filter.key;
26
+ filter.fn(this);
27
+ });
28
+ return this.getStatus();
29
+ }
30
+ setState(value) {
31
+ this.executionState.state[this.key] = value;
32
+ }
33
+ getState() {
34
+ return this.executionState.state[this.key];
35
+ }
36
+ forbid() {
37
+ this.executionState.status = 'forbidden';
38
+ this.executionState.forbiddenBy = this.key;
39
+ this.forbiddenMarker = true;
40
+ }
41
+ allow() {
42
+ this.status = true;
43
+ }
44
+ getStatus() {
45
+ if (this.forbiddenMarker) {
46
+ return false;
47
+ }
48
+ return this.status;
49
+ }
50
+ }
51
+
52
+ export { ActionChecker };
@@ -0,0 +1,52 @@
1
+ import { actionType } from './constants.es.js';
2
+
3
+ const DEFAULT_CONDITIONS = {};
4
+ class ActionChecker {
5
+ // eslint-disable-next-line max-params
6
+ constructor(globalConditionals, payload, parameters, executionState, type) {
7
+ var _a;
8
+ this.globalConditionals = globalConditionals;
9
+ this.payload = payload;
10
+ this.parameters = parameters;
11
+ this.executionState = executionState;
12
+ this.type = type;
13
+ this.status = true;
14
+ this.forbiddenMarker = false;
15
+ this.key = null;
16
+ // для глобальных экшенов мы должны дедублицировать выполнение и меньше выполнять
17
+ if (type === actionType.global) {
18
+ // если экшен был уже выполнен, то считаем, что его не нужно больше выполнять
19
+ this.status = executionState.status !== 'success';
20
+ }
21
+ this.conditions = (_a = parameters.conditions) !== null && _a !== void 0 ? _a : DEFAULT_CONDITIONS;
22
+ }
23
+ check() {
24
+ this.globalConditionals.forEach((filter) => {
25
+ this.key = filter.key;
26
+ filter.fn(this);
27
+ });
28
+ return this.getStatus();
29
+ }
30
+ setState(value) {
31
+ this.executionState.state[this.key] = value;
32
+ }
33
+ getState() {
34
+ return this.executionState.state[this.key];
35
+ }
36
+ forbid() {
37
+ this.executionState.status = 'forbidden';
38
+ this.executionState.forbiddenBy = this.key;
39
+ this.forbiddenMarker = true;
40
+ }
41
+ allow() {
42
+ this.status = true;
43
+ }
44
+ getStatus() {
45
+ if (this.forbiddenMarker) {
46
+ return false;
47
+ }
48
+ return this.status;
49
+ }
50
+ }
51
+
52
+ export { ActionChecker };