taon 21.0.52 → 21.0.53

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 (215) hide show
  1. package/bin/taon +5 -5
  2. package/bin/taon-debug +5 -5
  3. package/bin/taon-debug-brk +4 -4
  4. package/browser/package.json +1 -1
  5. package/browser-prod/package.json +1 -1
  6. package/icon-menu-taon.svg +15 -15
  7. package/lib/build-info._auto-generated_.d.ts +1 -1
  8. package/lib/build-info._auto-generated_.js +1 -1
  9. package/lib/package.json +1 -1
  10. package/lib/ui/index.js +2 -2
  11. package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
  12. package/lib-prod/base-classes/base-abstract-entity.js +33 -0
  13. package/lib-prod/base-classes/base-angular-service.js +56 -0
  14. package/lib-prod/base-classes/base-class.js +37 -0
  15. package/lib-prod/base-classes/base-context.js +21 -0
  16. package/lib-prod/base-classes/base-controller.js +162 -0
  17. package/lib-prod/base-classes/base-crud-controller.js +235 -0
  18. package/lib-prod/base-classes/base-custom-repository.js +20 -0
  19. package/lib-prod/base-classes/base-electron-service.js +0 -0
  20. package/lib-prod/base-classes/base-entity.js +32 -0
  21. package/lib-prod/base-classes/base-file-upload.middleware.js +78 -0
  22. package/lib-prod/base-classes/base-injector.js +202 -0
  23. package/lib-prod/base-classes/base-middleware.js +6 -0
  24. package/lib-prod/base-classes/base-migration.js +23 -0
  25. package/lib-prod/base-classes/base-provider.js +6 -0
  26. package/lib-prod/base-classes/base-repository.js +589 -0
  27. package/lib-prod/base-classes/base-subscriber-for-entity.js +154 -0
  28. package/lib-prod/base-classes/base.js +0 -0
  29. package/lib-prod/build-info._auto-generated_.js +14 -0
  30. package/lib-prod/config/controller-config.js +28 -0
  31. package/lib-prod/config/controller-options.js +6 -0
  32. package/lib-prod/config/method-config.js +9 -0
  33. package/lib-prod/config/param-config.js +9 -0
  34. package/lib-prod/constants.js +29 -0
  35. package/lib-prod/context-db-migrations.js +339 -0
  36. package/lib-prod/create-context.js +152 -0
  37. package/lib-prod/decorators/classes/controller-decorator.js +21 -0
  38. package/lib-prod/decorators/classes/entity-decorator.js +49 -0
  39. package/lib-prod/decorators/classes/middleware-decorator.js +26 -0
  40. package/lib-prod/decorators/classes/migration-decorator.js +24 -0
  41. package/lib-prod/decorators/classes/provider-decorator.js +25 -0
  42. package/lib-prod/decorators/classes/repository-decorator.js +24 -0
  43. package/lib-prod/decorators/classes/subscriber-decorator.js +25 -0
  44. package/lib-prod/decorators/decorator-abstract-opt.js +5 -0
  45. package/lib-prod/decorators/http/http-decorators.js +5 -0
  46. package/lib-prod/decorators/http/http-methods-decorators.js +144 -0
  47. package/lib-prod/decorators/http/http-params-decorators.js +68 -0
  48. package/lib-prod/dependency-injection/di-container.js +31 -0
  49. package/lib-prod/endpoint-context-storage.js +36 -0
  50. package/lib-prod/endpoint-context.js +2033 -0
  51. package/lib-prod/entity-process.js +214 -0
  52. package/lib-prod/env/env.angular-node-app.js +130 -0
  53. package/lib-prod/env/env.docs-webapp.js +130 -0
  54. package/lib-prod/env/env.electron-app.js +130 -0
  55. package/lib-prod/env/env.mobile-app.js +130 -0
  56. package/lib-prod/env/env.npm-lib-and-cli-tool.js +130 -0
  57. package/lib-prod/env/env.vscode-plugin.js +130 -0
  58. package/lib-prod/env/index.js +6 -0
  59. package/lib-prod/express-types.js +0 -0
  60. package/lib-prod/formly/formly.models.js +0 -0
  61. package/lib-prod/formly/fromly.js +184 -0
  62. package/lib-prod/formly/type-from-entity.js +58 -0
  63. package/lib-prod/get-response-value.js +19 -0
  64. package/lib-prod/global-state/taon-global-state/index.js +5 -0
  65. package/lib-prod/global-state/taon-global-state/taon-global-state.abstract.context.js +20 -0
  66. package/lib-prod/global-state/taon-global-state/taon-global-state.constants.js +10 -0
  67. package/lib-prod/global-state/taon-global-state/taon-global-state.controller.js +48 -0
  68. package/lib-prod/global-state/taon-global-state/taon-global-state.entity.js +48 -0
  69. package/lib-prod/global-state/taon-global-state/taon-global-state.middleware.js +22 -0
  70. package/lib-prod/global-state/taon-global-state/taon-global-state.models.js +34 -0
  71. package/lib-prod/global-state/taon-global-state/taon-global-state.provider.js +22 -0
  72. package/lib-prod/global-state/taon-global-state/taon-global-state.repository.js +47 -0
  73. package/lib-prod/global-state/taon-global-state/taon-global-state.subscriber.js +29 -0
  74. package/lib-prod/global-state/taon-global-state/taon-global-state.utils.js +11 -0
  75. package/lib-prod/global-state/taon-transaction-registry/index.js +10 -0
  76. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.js +22 -0
  77. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.constants.js +8 -0
  78. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.controller.js +41 -0
  79. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.entity.js +56 -0
  80. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.middleware.js +22 -0
  81. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.models.js +10 -0
  82. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.provider.js +22 -0
  83. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.repository.js +36 -0
  84. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.js +29 -0
  85. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.utils.js +6 -0
  86. package/lib-prod/helpers/class-helpers.js +195 -0
  87. package/lib-prod/helpers/clone-obj.js +21 -0
  88. package/lib-prod/helpers/taon-helpers.js +129 -0
  89. package/lib-prod/index._auto-generated_.js +0 -0
  90. package/lib-prod/index.js +231 -0
  91. package/lib-prod/inject.js +34 -0
  92. package/lib-prod/migrations/index.js +1 -0
  93. package/lib-prod/migrations/migrations_index._auto-generated_.js +0 -0
  94. package/lib-prod/models.js +109 -0
  95. package/lib-prod/orm/columns.js +124 -0
  96. package/lib-prod/orm/index.js +1 -0
  97. package/lib-prod/package.json +1 -1
  98. package/lib-prod/realtime/realtime-client.js +196 -0
  99. package/lib-prod/realtime/realtime-core.js +82 -0
  100. package/lib-prod/realtime/realtime-server.js +252 -0
  101. package/lib-prod/realtime/realtime-strategy/index.js +4 -0
  102. package/lib-prod/realtime/realtime-strategy/realtime-strategy-ipc.js +226 -0
  103. package/lib-prod/realtime/realtime-strategy/realtime-strategy-mock.js +262 -0
  104. package/lib-prod/realtime/realtime-strategy/realtime-strategy-socket-io.js +21 -0
  105. package/lib-prod/realtime/realtime-strategy/realtime-strategy.js +14 -0
  106. package/lib-prod/realtime/realtime-subs-manager.js +96 -0
  107. package/lib-prod/realtime/realtime.models.js +0 -0
  108. package/lib-prod/symbols.js +109 -0
  109. package/lib-prod/ui/index.js +5 -0
  110. package/lib-prod/ui/taon-admin-mode-configuration/index.js +5 -0
  111. package/lib-prod/validators.js +74 -0
  112. package/package.json +1 -1
  113. package/websql/package.json +1 -1
  114. package/websql-prod/package.json +1 -1
  115. package/lib-prod/base-classes/base-abstract-entity.ts +0 -34
  116. package/lib-prod/base-classes/base-angular-service.ts +0 -107
  117. package/lib-prod/base-classes/base-class.ts +0 -46
  118. package/lib-prod/base-classes/base-context.ts +0 -21
  119. package/lib-prod/base-classes/base-controller.ts +0 -240
  120. package/lib-prod/base-classes/base-crud-controller.ts +0 -298
  121. package/lib-prod/base-classes/base-custom-repository.ts +0 -10
  122. package/lib-prod/base-classes/base-electron-service.ts +0 -60
  123. package/lib-prod/base-classes/base-entity.ts +0 -28
  124. package/lib-prod/base-classes/base-file-upload.middleware.ts +0 -92
  125. package/lib-prod/base-classes/base-injector.ts +0 -278
  126. package/lib-prod/base-classes/base-middleware.ts +0 -71
  127. package/lib-prod/base-classes/base-migration.ts +0 -26
  128. package/lib-prod/base-classes/base-provider.ts +0 -8
  129. package/lib-prod/base-classes/base-repository.ts +0 -942
  130. package/lib-prod/base-classes/base-subscriber-for-entity.ts +0 -196
  131. package/lib-prod/base-classes/base.ts +0 -31
  132. package/lib-prod/build-info._auto-generated_.ts +0 -27
  133. package/lib-prod/config/controller-config.ts +0 -58
  134. package/lib-prod/config/controller-options.ts +0 -19
  135. package/lib-prod/config/method-config.ts +0 -55
  136. package/lib-prod/config/param-config.ts +0 -16
  137. package/lib-prod/constants.ts +0 -63
  138. package/lib-prod/context-db-migrations.ts +0 -488
  139. package/lib-prod/create-context.ts +0 -345
  140. package/lib-prod/decorators/classes/controller-decorator.ts +0 -25
  141. package/lib-prod/decorators/classes/entity-decorator.ts +0 -57
  142. package/lib-prod/decorators/classes/middleware-decorator.ts +0 -29
  143. package/lib-prod/decorators/classes/migration-decorator.ts +0 -27
  144. package/lib-prod/decorators/classes/provider-decorator.ts +0 -28
  145. package/lib-prod/decorators/classes/repository-decorator.ts +0 -26
  146. package/lib-prod/decorators/classes/subscriber-decorator.ts +0 -28
  147. package/lib-prod/decorators/decorator-abstract-opt.ts +0 -4
  148. package/lib-prod/decorators/http/http-decorators.ts +0 -26
  149. package/lib-prod/decorators/http/http-methods-decorators.ts +0 -275
  150. package/lib-prod/decorators/http/http-params-decorators.ts +0 -105
  151. package/lib-prod/dependency-injection/di-container.ts +0 -39
  152. package/lib-prod/endpoint-context-storage.ts +0 -47
  153. package/lib-prod/endpoint-context.ts +0 -3110
  154. package/lib-prod/entity-process.ts +0 -286
  155. package/lib-prod/env/env.angular-node-app.ts +0 -66
  156. package/lib-prod/env/env.docs-webapp.ts +0 -66
  157. package/lib-prod/env/env.electron-app.ts +0 -66
  158. package/lib-prod/env/env.mobile-app.ts +0 -66
  159. package/lib-prod/env/env.npm-lib-and-cli-tool.ts +0 -66
  160. package/lib-prod/env/env.vscode-plugin.ts +0 -66
  161. package/lib-prod/env/index.ts +0 -6
  162. package/lib-prod/express-types.ts +0 -4
  163. package/lib-prod/formly/formly.models.ts +0 -7
  164. package/lib-prod/formly/fromly.ts +0 -261
  165. package/lib-prod/formly/type-from-entity.ts +0 -80
  166. package/lib-prod/get-response-value.ts +0 -30
  167. package/lib-prod/global-state/taon-global-state/index.ts +0 -6
  168. package/lib-prod/global-state/taon-global-state/taon-global-state.abstract.context.ts +0 -21
  169. package/lib-prod/global-state/taon-global-state/taon-global-state.constants.ts +0 -9
  170. package/lib-prod/global-state/taon-global-state/taon-global-state.controller.ts +0 -44
  171. package/lib-prod/global-state/taon-global-state/taon-global-state.entity.ts +0 -40
  172. package/lib-prod/global-state/taon-global-state/taon-global-state.middleware.ts +0 -12
  173. package/lib-prod/global-state/taon-global-state/taon-global-state.models.ts +0 -48
  174. package/lib-prod/global-state/taon-global-state/taon-global-state.provider.ts +0 -16
  175. package/lib-prod/global-state/taon-global-state/taon-global-state.repository.ts +0 -47
  176. package/lib-prod/global-state/taon-global-state/taon-global-state.subscriber.ts +0 -18
  177. package/lib-prod/global-state/taon-global-state/taon-global-state.utils.ts +0 -21
  178. package/lib-prod/global-state/taon-transaction-registry/index.ts +0 -11
  179. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.ts +0 -23
  180. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.constants.ts +0 -7
  181. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.controller.ts +0 -38
  182. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.entity.ts +0 -54
  183. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.middleware.ts +0 -12
  184. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.models.ts +0 -6
  185. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.provider.ts +0 -16
  186. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.repository.ts +0 -29
  187. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.ts +0 -20
  188. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.utils.ts +0 -9
  189. package/lib-prod/helpers/class-helpers.ts +0 -315
  190. package/lib-prod/helpers/clone-obj.ts +0 -24
  191. package/lib-prod/helpers/taon-helpers.ts +0 -181
  192. package/lib-prod/index._auto-generated_.ts +0 -5
  193. package/lib-prod/index.ts +0 -323
  194. package/lib-prod/inject.ts +0 -111
  195. package/lib-prod/lib-info.md +0 -8
  196. package/lib-prod/migrations/index.ts +0 -2
  197. package/lib-prod/migrations/migrations-info.md +0 -6
  198. package/lib-prod/migrations/migrations_index._auto-generated_.ts +0 -5
  199. package/lib-prod/models.ts +0 -427
  200. package/lib-prod/orm/columns.ts +0 -121
  201. package/lib-prod/orm/index.ts +0 -62
  202. package/lib-prod/realtime/realtime-client.ts +0 -288
  203. package/lib-prod/realtime/realtime-core.ts +0 -134
  204. package/lib-prod/realtime/realtime-server.ts +0 -398
  205. package/lib-prod/realtime/realtime-strategy/index.ts +0 -4
  206. package/lib-prod/realtime/realtime-strategy/realtime-strategy-ipc.ts +0 -344
  207. package/lib-prod/realtime/realtime-strategy/realtime-strategy-mock.ts +0 -349
  208. package/lib-prod/realtime/realtime-strategy/realtime-strategy-socket-io.ts +0 -30
  209. package/lib-prod/realtime/realtime-strategy/realtime-strategy.ts +0 -21
  210. package/lib-prod/realtime/realtime-subs-manager.ts +0 -127
  211. package/lib-prod/realtime/realtime.models.ts +0 -33
  212. package/lib-prod/symbols.ts +0 -136
  213. package/lib-prod/ui/index.ts +0 -1
  214. package/lib-prod/ui/taon-admin-mode-configuration/index.ts +0 -1
  215. package/lib-prod/validators.ts +0 -103
@@ -1,107 +0,0 @@
1
- /* */
2
- /* */
3
- /* */
4
-
5
- import {
6
- CURRENT_HOST_BACKEND_PORT,
7
- CURRENT_HOST_URL,
8
- TAON_CONTEXT,
9
- } from '../constants';
10
- import { TaonContext } from '../create-context';
11
- import { inject as taonInject } from '../inject';
12
-
13
- /**
14
- * TODO prevent calling methods when not initialized
15
- * with init(ctx)
16
- */
17
- /* */
18
- /* */
19
-
20
- export abstract class TaonBaseAngularService {
21
- /* */
22
- /* */
23
- /* */
24
- /* */
25
- /* */
26
- /* */
27
- /* */
28
- /* */
29
- /* */
30
- /* */
31
- /* */
32
- /* */
33
- /* */
34
- /* */
35
- /* */
36
- /* */
37
- /* */
38
-
39
- constructor() {
40
- /* */
41
- /* */
42
- /* */
43
- /* */
44
- /* */
45
- /* */
46
- /* */
47
-
48
- }
49
-
50
- /**
51
- * Returns true if the application is running in SSR (server-side rendering) mode only.
52
- */
53
- public get isSsrPlatform(): boolean {
54
- /* */
55
- /* */
56
-
57
- return false;
58
- }
59
-
60
- /**
61
- * Returns true if the application is running in browser-only mode.
62
- */
63
- public get isBrowserPlatform(): boolean {
64
- /* */
65
- /* */
66
-
67
- return false;
68
- }
69
-
70
- /**
71
- * @deprecated
72
- * Returns the host URL for the backend service
73
- * that is running on localhost (normal NodeJS/ExpressJS mode).
74
- */
75
- get host(): string {
76
- /* */
77
- /* */
78
- /* */
79
- /* */
80
- /* */
81
-
82
- return void 0;
83
- }
84
-
85
- injectController<T>(
86
- ctor: new (...args: any[]) => T,
87
- /**
88
- * optional override context
89
- */
90
- overrideCurrentContext?: TaonContext,
91
- ): T {
92
- return taonInject(() => {
93
- let currentContext: TaonContext;
94
- /* */
95
- /* */
96
- /* */
97
- /* */
98
-
99
- if (!currentContext) {
100
- throw new Error(
101
- 'No context available. Make sure to initialize the context before injecting controllers.',
102
- );
103
- }
104
- return currentContext ? currentContext.getClass(ctor) : void 0;
105
- }) as T;
106
- }
107
- }
@@ -1,46 +0,0 @@
1
- //#region imports
2
- import { walk } from 'lodash-walk-object/lib-prod';
3
- import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/lib-prod';
4
-
5
- import { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';
6
- import { cloneObj } from '../helpers/clone-obj';
7
-
8
- //#endregion
9
-
10
- export class TaonBaseClass<CloneT extends TaonBaseClass = any> {
11
- //#region class initialization hook
12
- /**
13
- * class initialization hook
14
- * taon after class instance creation
15
- */
16
- async _(): Promise<void> {}
17
- //#endregion
18
-
19
- //#region clone
20
- /**
21
- *
22
- * @param overrideObjOrFn if object is provided it will override values in cloned object,
23
- * if function is provided it will be called with old cloned values and should return
24
- * object with values to override
25
- * @returns cloned instance of the class
26
- */
27
- public clone(
28
- overrideObjOrFn?:
29
- | Partial<CloneT>
30
- | ((oldValues: Partial<CloneT>) => Partial<CloneT>),
31
- ): CloneT {
32
- if(___NS__isString(overrideObjOrFn)) {
33
- console.log(overrideObjOrFn);
34
- throw new Error('String is not supported as .clone() method argument');
35
- }
36
- const classFn = ClassHelpers__NS__getClassFnFromObject(this);
37
- if (___NS__isFunction(overrideObjOrFn)) {
38
- // console.log('clone with fn');
39
- const oldValues = (___NS__cloneDeep(this) || {}) as any as Partial<CloneT>;
40
- return cloneObj<CloneT>(overrideObjOrFn(oldValues), classFn);
41
- }
42
- // console.log('clone normal');
43
- return cloneObj<CloneT>(overrideObjOrFn as any, classFn);
44
- }
45
- //#endregion
46
- }
@@ -1,21 +0,0 @@
1
- import { createContext } from '../create-context';
2
- import { TaonGlobalStateContext } from '../global-state/taon-global-state/taon-global-state.abstract.context';
3
- import { TaonBaseFileUploadMiddleware } from './base-file-upload.middleware';
4
- import { TaonBaseRepository } from './base-repository';
5
-
6
- const TaonBaseContext = createContext(() => ({
7
- contextName: 'TaonBaseContext',
8
- abstract: true,
9
- contexts: {
10
- TaonGlobalStateContext,
11
- },
12
- middlewares: {
13
- TaonBaseFileUploadMiddleware,
14
- },
15
- repositories: {
16
- // @ts-ignore
17
- TaonBaseRepository,
18
- },
19
- }));
20
-
21
- export { TaonBaseContext };
@@ -1,240 +0,0 @@
1
- import * as FormData from 'form-data'; // @backend
2
- import {
3
- RestErrorResponseWrapper,
4
- RestResponseWrapper,
5
- HttpResponseError,
6
- } from 'ng2-rest/lib-prod';
7
- import { Models__NS__BackendError as Ng2RestModels__NS__BackendError, Models__NS__BaseBody as Ng2RestModels__NS__BaseBody, Models__NS__BaseResponse as Ng2RestModels__NS__BaseResponse, Models__NS__ErrorBody as Ng2RestModels__NS__ErrorBody, Models__NS__FnMethodsHttp as Ng2RestModels__NS__FnMethodsHttp, Models__NS__FnMethodsHttpWithMock as Ng2RestModels__NS__FnMethodsHttpWithMock, Models__NS__HandleResultOptions as Ng2RestModels__NS__HandleResultOptions, Models__NS__HandleResultSourceRequestOptions as Ng2RestModels__NS__HandleResultSourceRequestOptions, Models__NS__HttpBody as Ng2RestModels__NS__HttpBody, Models__NS__HttpCode as Ng2RestModels__NS__HttpCode, Models__NS__HttpResponse as Ng2RestModels__NS__HttpResponse, Models__NS__MetaRequest as Ng2RestModels__NS__MetaRequest, Models__NS__MethodWithBody as Ng2RestModels__NS__MethodWithBody, Models__NS__MockController as Ng2RestModels__NS__MockController, Models__NS__MockHttp as Ng2RestModels__NS__MockHttp, Models__NS__MockResponse as Ng2RestModels__NS__MockResponse, Models__NS__NestedParams as Ng2RestModels__NS__NestedParams, Models__NS__Ng2RestAxiosRequestConfig as Ng2RestModels__NS__Ng2RestAxiosRequestConfig, Models__NS__Ng2RestMethods as Ng2RestModels__NS__Ng2RestMethods, Models__NS__PromiseObservableMix as Ng2RestModels__NS__PromiseObservableMix, Models__NS__ReplayData as Ng2RestModels__NS__ReplayData, Models__NS__ReqParams as Ng2RestModels__NS__ReqParams, Models__NS__ResourceModel as Ng2RestModels__NS__ResourceModel, Models__NS__ResponseTypeAxios as Ng2RestModels__NS__ResponseTypeAxios, Models__NS__UrlParams as Ng2RestModels__NS__UrlParams } from 'ng2-rest/lib-prod';
8
- import { crossPlatformPath, fse, path, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpMethod, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__compilationWrapper, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsTerminal__NS__clearConsole, UtilsTerminal__NS__confirm, UtilsTerminal__NS__drawBigText, UtilsTerminal__NS__getTerminalHeight, UtilsTerminal__NS__input, UtilsTerminal__NS__isVerboseModeTaon, UtilsTerminal__NS__multiselect, UtilsTerminal__NS__multiselectActionAndExecute, UtilsTerminal__NS__pipeEnterToStdin, UtilsTerminal__NS__pressAnyKey, UtilsTerminal__NS__pressAnyKeyToContinueAsync, UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred, UtilsTerminal__NS__pressKeyAndContinueSync, UtilsTerminal__NS__previewLongList, UtilsTerminal__NS__previewLongListGitLogLike, UtilsTerminal__NS__select, UtilsTerminal__NS__selectActionAndExecute, UtilsTerminal__NS__SelectChoice, UtilsTerminal__NS__SelectChoiceValue, UtilsTerminal__NS__wait, UtilsTerminal__NS__waitForUserAnyKey, UtilsTerminal__NS__waitMilliseconds } from 'tnp-core/lib-prod';
9
-
10
- import { TaonController } from '../decorators/classes/controller-decorator';
11
- import { POST } from '../decorators/http/http-methods-decorators';
12
- import { Body, Path, Query } from '../decorators/http/http-params-decorators';
13
- import type { EndpointContext } from '../endpoint-context';
14
- import type { ContextsEndpointStorage } from '../endpoint-context-storage';
15
- import type { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__AuthCallBack, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__ISession, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../models';
16
-
17
- import { TaonBaseFileUploadMiddleware } from './base-file-upload.middleware';
18
- import { TaonBaseInjector } from './base-injector';
19
-
20
- export interface MulterFileUploadResponse {
21
- ok: boolean;
22
- originalName: string;
23
- /**
24
- * name change to this to avoid confusion with originalname
25
- * (similar to originalname with added uniq part)
26
- */
27
- savedAs: string;
28
- size: number;
29
- mimetype: string;
30
- }
31
-
32
- @TaonController<TaonBaseController>({
33
- className: 'TaonBaseController',
34
- })
35
- export class TaonBaseController<
36
- UPLOAD_FILE_QUERY_PARAMS = {},
37
- > extends TaonBaseInjector {
38
- /**
39
- * Hook that is called when taon app is inited
40
- * (all contexts are created and inited)
41
- */
42
- async afterAllCtxInited(options: {
43
- ctxStorage: ContextsEndpointStorage;
44
- }): Promise<void> {}
45
-
46
- //#region upload form data to server
47
- @POST({
48
- overrideContentType: 'multipart/form-data',
49
- middlewares: ({ parentMiddlewares }) => ({
50
- ...parentMiddlewares,
51
- TaonBaseFileUploadMiddleware,
52
- }),
53
- })
54
- uploadFormDataToServer(
55
- @Body() formData: FormData,
56
- @Query() queryParams?: UPLOAD_FILE_QUERY_PARAMS,
57
- ): Models__NS__Http__NS__Response<MulterFileUploadResponse[]> {
58
- //#region @backendFunc
59
- return async (req, res) => {
60
- const files = req.files;
61
- if (!files) {
62
- throw 'No file(s) received';
63
- }
64
- const responseArr = (files as any[]).map(f => {
65
- const savedAbs = crossPlatformPath(path.resolve(f.path));
66
- // const savedRel = crossPlatformPath(
67
- // path.relative(this.ctx.cwd, savedAbs),
68
- // );
69
- return {
70
- ok: true,
71
- originalName: f.originalname,
72
- savedAs: path.basename(savedAbs),
73
- // savedPath: void 0, // not needed
74
- size: f.size,
75
- mimetype: f.mimetype,
76
- };
77
- });
78
- // console.log(responseArr);
79
- for (const res of responseArr) {
80
- await this.afterFileUploadAction(res, queryParams || ({} as any));
81
- }
82
- return responseArr;
83
- };
84
- //#endregion
85
- }
86
- //#endregion
87
-
88
- //#region after file upload hook
89
- /**
90
- * Hook after file is uploaded
91
- * through `uploadFormDataToServer` or `uploadLocalFileToServer`
92
- */
93
- protected afterFileUploadAction(
94
- file?: MulterFileUploadResponse,
95
- queryParams?: UPLOAD_FILE_QUERY_PARAMS,
96
- ): void | Promise<void> {
97
- // empty
98
- }
99
-
100
- //#region upload local file to server
101
- async uploadLocalFileToServer(
102
- absFilePath: string,
103
- options?: Pick<Ng2RestModels__NS__Ng2RestAxiosRequestConfig, 'onUploadProgress'>,
104
- queryParams?: UPLOAD_FILE_QUERY_PARAMS,
105
- ): Promise<MulterFileUploadResponse[]> {
106
- //#region @backendFunc
107
- const stat = fse.statSync(absFilePath);
108
- const stream = fse.createReadStream(absFilePath);
109
-
110
- const form = new FormData();
111
- form.append('file', stream, {
112
- filename: path.basename(absFilePath),
113
- knownLength: stat.size,
114
- });
115
-
116
- const data = await this.uploadFormDataToServer(form, queryParams).request(
117
- options || {},
118
- );
119
- return data.body.json;
120
- //#endregion
121
- }
122
- //#endregion
123
-
124
- // async check() {
125
- // await this._waitForProperStatusChange({
126
- // request: () => this.uploadFormDataToServer(void 0, void 0).request(),
127
- // statusCheck: resp => resp.body.json[0].ok,
128
- // });
129
- // }
130
-
131
- /**
132
- * Easy way to wait for status change with http (1s default) pooling.
133
- *
134
- * example (in sub class):
135
- * ```ts
136
- async check() {
137
- await this.waitForProperStatusChange({
138
- request: () => this.uploadFormDataToServer(void 0, void 0).request(),
139
- statusCheck: resp => resp.body.json[0].ok,
140
- });
141
- }
142
- * ```
143
- */
144
- public async _waitForProperStatusChange<T>(options: {
145
- actionName: string;
146
- /**
147
- * Request for pooling
148
- */
149
- request: (opt?: {
150
- /**
151
- * optional index number to identify request in logs
152
- * (starts from 0 and increments by 1 on each try)
153
- */
154
- reqIndexNum?: number;
155
- httpErrorsCount?: number;
156
- }) => ReturnType<Models__NS__Http__NS__Response<T>['request']>;
157
- poolingInterval?: number;
158
- /**
159
- * default infinite tries
160
- */
161
- maxTries?: number;
162
- /**
163
- * default infiniti allowed http errors
164
- */
165
- allowedHttpErrors?: number;
166
- /**
167
- * condition to be met
168
- */
169
- statusCheck?: (
170
- response: Awaited<ReturnType<typeof options.request>>,
171
- ) => boolean;
172
- /**
173
- * if return true.. loop will continue
174
- * if false .. will exit the loop
175
- */
176
- loopRequestsOnBackendError?: (opt: {
177
- unknownError: Error;
178
- unknownHttpError: HttpResponseError<any>;
179
- taonError: HttpResponseError<RestErrorResponseWrapper>;
180
- reqIndexNum?: number;
181
- httpErrorsCount?: number;
182
- }) => boolean | Promise<boolean>;
183
- }): Promise<void> {
184
- const poolingInterval = options.poolingInterval || 1000;
185
- const taonRequest = options.request;
186
- let maxTries = options.maxTries || Number.POSITIVE_INFINITY;
187
- let i = 0;
188
- let httpErrorsCount = 0;
189
- while (true) {
190
- await UtilsTerminal__NS__waitMilliseconds(poolingInterval);
191
- try {
192
- const resp = await taonRequest({
193
- reqIndexNum: i,
194
- httpErrorsCount,
195
- });
196
- if (options.statusCheck && options.statusCheck(resp)) {
197
- return;
198
- }
199
- } catch (error: Error | HttpResponseError | any) {
200
- httpErrorsCount++;
201
- if (options.loopRequestsOnBackendError) {
202
- const isProperTaonError =
203
- error instanceof HttpResponseError &&
204
- error.body.json[CoreModels__NS__TaonHttpErrorCustomProp];
205
- const isHttpError =
206
- error instanceof HttpResponseError && !isProperTaonError;
207
- const isUnknownError = !(error instanceof HttpResponseError);
208
-
209
- const resBool = await options.loopRequestsOnBackendError({
210
- taonError: isProperTaonError ? error : void 0,
211
- unknownHttpError: isHttpError ? error : void 0,
212
- unknownError: isUnknownError ? (error as Error) : void 0,
213
- reqIndexNum: i,
214
- httpErrorsCount,
215
- });
216
- if (resBool) {
217
- i++;
218
- continue;
219
- } else {
220
- return;
221
- }
222
- }
223
- if (
224
- httpErrorsCount >
225
- (options.allowedHttpErrors || Number.POSITIVE_INFINITY)
226
- ) {
227
- throw new Error(
228
- `Too many http errors (${httpErrorsCount}) for "${options.actionName}".`,
229
- );
230
- }
231
- }
232
-
233
- if (i++ > maxTries) {
234
- throw new Error(
235
- `Timeout waiting for "${options.actionName}" to be finished. Waited for ${maxTries} seconds`,
236
- );
237
- }
238
- }
239
- }
240
- }