taon 21.0.51 → 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 (226) 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/fesm2022/taon-browser.mjs +11 -1
  5. package/browser/fesm2022/taon-browser.mjs.map +1 -1
  6. package/browser/package.json +1 -1
  7. package/browser-prod/fesm2022/taon-browser.mjs +11 -1
  8. package/browser-prod/fesm2022/taon-browser.mjs.map +1 -1
  9. package/browser-prod/package.json +1 -1
  10. package/icon-menu-taon.svg +15 -15
  11. package/lib/build-info._auto-generated_.d.ts +1 -1
  12. package/lib/build-info._auto-generated_.js +1 -1
  13. package/lib/endpoint-context.d.ts +1 -1
  14. package/lib/endpoint-context.js +11 -6
  15. package/lib/endpoint-context.js.map +1 -1
  16. package/lib/package.json +1 -1
  17. package/lib/ui/index.js +2 -2
  18. package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
  19. package/lib-prod/base-classes/base-abstract-entity.js +33 -0
  20. package/lib-prod/base-classes/base-angular-service.js +56 -0
  21. package/lib-prod/base-classes/base-class.js +37 -0
  22. package/lib-prod/base-classes/base-context.js +21 -0
  23. package/lib-prod/base-classes/base-controller.js +162 -0
  24. package/lib-prod/base-classes/base-crud-controller.js +235 -0
  25. package/lib-prod/base-classes/base-custom-repository.js +20 -0
  26. package/lib-prod/base-classes/base-electron-service.js +0 -0
  27. package/lib-prod/base-classes/base-entity.js +32 -0
  28. package/lib-prod/base-classes/base-file-upload.middleware.js +78 -0
  29. package/lib-prod/base-classes/base-injector.js +202 -0
  30. package/lib-prod/base-classes/base-middleware.js +6 -0
  31. package/lib-prod/base-classes/base-migration.js +23 -0
  32. package/lib-prod/base-classes/base-provider.js +6 -0
  33. package/lib-prod/base-classes/base-repository.js +589 -0
  34. package/lib-prod/base-classes/base-subscriber-for-entity.js +154 -0
  35. package/lib-prod/base-classes/base.js +0 -0
  36. package/lib-prod/build-info._auto-generated_.js +14 -0
  37. package/lib-prod/config/controller-config.js +28 -0
  38. package/lib-prod/config/controller-options.js +6 -0
  39. package/lib-prod/config/method-config.js +9 -0
  40. package/lib-prod/config/param-config.js +9 -0
  41. package/lib-prod/constants.js +29 -0
  42. package/lib-prod/context-db-migrations.js +339 -0
  43. package/lib-prod/create-context.js +152 -0
  44. package/lib-prod/decorators/classes/controller-decorator.js +21 -0
  45. package/lib-prod/decorators/classes/entity-decorator.js +49 -0
  46. package/lib-prod/decorators/classes/middleware-decorator.js +26 -0
  47. package/lib-prod/decorators/classes/migration-decorator.js +24 -0
  48. package/lib-prod/decorators/classes/provider-decorator.js +25 -0
  49. package/lib-prod/decorators/classes/repository-decorator.js +24 -0
  50. package/lib-prod/decorators/classes/subscriber-decorator.js +25 -0
  51. package/lib-prod/decorators/decorator-abstract-opt.js +5 -0
  52. package/lib-prod/decorators/http/http-decorators.js +5 -0
  53. package/lib-prod/decorators/http/http-methods-decorators.js +144 -0
  54. package/lib-prod/decorators/http/http-params-decorators.js +68 -0
  55. package/lib-prod/dependency-injection/di-container.js +31 -0
  56. package/lib-prod/endpoint-context-storage.js +36 -0
  57. package/lib-prod/endpoint-context.js +2033 -0
  58. package/lib-prod/entity-process.js +214 -0
  59. package/lib-prod/env/env.angular-node-app.js +130 -0
  60. package/lib-prod/env/env.docs-webapp.js +130 -0
  61. package/lib-prod/env/env.electron-app.js +130 -0
  62. package/lib-prod/env/env.mobile-app.js +130 -0
  63. package/lib-prod/env/env.npm-lib-and-cli-tool.js +130 -0
  64. package/lib-prod/env/env.vscode-plugin.js +130 -0
  65. package/lib-prod/env/index.js +6 -0
  66. package/lib-prod/express-types.js +0 -0
  67. package/lib-prod/formly/formly.models.js +0 -0
  68. package/lib-prod/formly/fromly.js +184 -0
  69. package/lib-prod/formly/type-from-entity.js +58 -0
  70. package/lib-prod/get-response-value.js +19 -0
  71. package/lib-prod/global-state/taon-global-state/index.js +5 -0
  72. package/lib-prod/global-state/taon-global-state/taon-global-state.abstract.context.js +20 -0
  73. package/lib-prod/global-state/taon-global-state/taon-global-state.constants.js +10 -0
  74. package/lib-prod/global-state/taon-global-state/taon-global-state.controller.js +48 -0
  75. package/lib-prod/global-state/taon-global-state/taon-global-state.entity.js +48 -0
  76. package/lib-prod/global-state/taon-global-state/taon-global-state.middleware.js +22 -0
  77. package/lib-prod/global-state/taon-global-state/taon-global-state.models.js +34 -0
  78. package/lib-prod/global-state/taon-global-state/taon-global-state.provider.js +22 -0
  79. package/lib-prod/global-state/taon-global-state/taon-global-state.repository.js +47 -0
  80. package/lib-prod/global-state/taon-global-state/taon-global-state.subscriber.js +29 -0
  81. package/lib-prod/global-state/taon-global-state/taon-global-state.utils.js +11 -0
  82. package/lib-prod/global-state/taon-transaction-registry/index.js +10 -0
  83. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.js +22 -0
  84. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.constants.js +8 -0
  85. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.controller.js +41 -0
  86. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.entity.js +56 -0
  87. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.middleware.js +22 -0
  88. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.models.js +10 -0
  89. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.provider.js +22 -0
  90. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.repository.js +36 -0
  91. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.js +29 -0
  92. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.utils.js +6 -0
  93. package/lib-prod/helpers/class-helpers.js +195 -0
  94. package/lib-prod/helpers/clone-obj.js +21 -0
  95. package/lib-prod/helpers/taon-helpers.js +129 -0
  96. package/lib-prod/index._auto-generated_.js +0 -0
  97. package/lib-prod/index.js +231 -0
  98. package/lib-prod/inject.js +34 -0
  99. package/lib-prod/migrations/index.js +1 -0
  100. package/lib-prod/migrations/migrations_index._auto-generated_.js +0 -0
  101. package/lib-prod/models.js +109 -0
  102. package/lib-prod/orm/columns.js +124 -0
  103. package/lib-prod/orm/index.js +1 -0
  104. package/lib-prod/package.json +1 -1
  105. package/lib-prod/realtime/realtime-client.js +196 -0
  106. package/lib-prod/realtime/realtime-core.js +82 -0
  107. package/lib-prod/realtime/realtime-server.js +252 -0
  108. package/lib-prod/realtime/realtime-strategy/index.js +4 -0
  109. package/lib-prod/realtime/realtime-strategy/realtime-strategy-ipc.js +226 -0
  110. package/lib-prod/realtime/realtime-strategy/realtime-strategy-mock.js +262 -0
  111. package/lib-prod/realtime/realtime-strategy/realtime-strategy-socket-io.js +21 -0
  112. package/lib-prod/realtime/realtime-strategy/realtime-strategy.js +14 -0
  113. package/lib-prod/realtime/realtime-subs-manager.js +96 -0
  114. package/lib-prod/realtime/realtime.models.js +0 -0
  115. package/lib-prod/symbols.js +109 -0
  116. package/lib-prod/ui/index.js +5 -0
  117. package/lib-prod/ui/taon-admin-mode-configuration/index.js +5 -0
  118. package/lib-prod/validators.js +74 -0
  119. package/package.json +1 -1
  120. package/websql/fesm2022/taon-websql.mjs +11 -1
  121. package/websql/fesm2022/taon-websql.mjs.map +1 -1
  122. package/websql/package.json +1 -1
  123. package/websql-prod/fesm2022/taon-websql.mjs +11 -1
  124. package/websql-prod/fesm2022/taon-websql.mjs.map +1 -1
  125. package/websql-prod/package.json +1 -1
  126. package/lib-prod/base-classes/base-abstract-entity.ts +0 -34
  127. package/lib-prod/base-classes/base-angular-service.ts +0 -107
  128. package/lib-prod/base-classes/base-class.ts +0 -46
  129. package/lib-prod/base-classes/base-context.ts +0 -21
  130. package/lib-prod/base-classes/base-controller.ts +0 -240
  131. package/lib-prod/base-classes/base-crud-controller.ts +0 -298
  132. package/lib-prod/base-classes/base-custom-repository.ts +0 -10
  133. package/lib-prod/base-classes/base-electron-service.ts +0 -60
  134. package/lib-prod/base-classes/base-entity.ts +0 -28
  135. package/lib-prod/base-classes/base-file-upload.middleware.ts +0 -92
  136. package/lib-prod/base-classes/base-injector.ts +0 -278
  137. package/lib-prod/base-classes/base-middleware.ts +0 -71
  138. package/lib-prod/base-classes/base-migration.ts +0 -26
  139. package/lib-prod/base-classes/base-provider.ts +0 -8
  140. package/lib-prod/base-classes/base-repository.ts +0 -942
  141. package/lib-prod/base-classes/base-subscriber-for-entity.ts +0 -196
  142. package/lib-prod/base-classes/base.ts +0 -31
  143. package/lib-prod/build-info._auto-generated_.ts +0 -27
  144. package/lib-prod/config/controller-config.ts +0 -58
  145. package/lib-prod/config/controller-options.ts +0 -19
  146. package/lib-prod/config/method-config.ts +0 -55
  147. package/lib-prod/config/param-config.ts +0 -16
  148. package/lib-prod/constants.ts +0 -63
  149. package/lib-prod/context-db-migrations.ts +0 -488
  150. package/lib-prod/create-context.ts +0 -345
  151. package/lib-prod/decorators/classes/controller-decorator.ts +0 -25
  152. package/lib-prod/decorators/classes/entity-decorator.ts +0 -57
  153. package/lib-prod/decorators/classes/middleware-decorator.ts +0 -29
  154. package/lib-prod/decorators/classes/migration-decorator.ts +0 -27
  155. package/lib-prod/decorators/classes/provider-decorator.ts +0 -28
  156. package/lib-prod/decorators/classes/repository-decorator.ts +0 -26
  157. package/lib-prod/decorators/classes/subscriber-decorator.ts +0 -28
  158. package/lib-prod/decorators/decorator-abstract-opt.ts +0 -4
  159. package/lib-prod/decorators/http/http-decorators.ts +0 -26
  160. package/lib-prod/decorators/http/http-methods-decorators.ts +0 -275
  161. package/lib-prod/decorators/http/http-params-decorators.ts +0 -105
  162. package/lib-prod/dependency-injection/di-container.ts +0 -39
  163. package/lib-prod/endpoint-context-storage.ts +0 -47
  164. package/lib-prod/endpoint-context.ts +0 -3105
  165. package/lib-prod/entity-process.ts +0 -286
  166. package/lib-prod/env/env.angular-node-app.ts +0 -66
  167. package/lib-prod/env/env.docs-webapp.ts +0 -66
  168. package/lib-prod/env/env.electron-app.ts +0 -66
  169. package/lib-prod/env/env.mobile-app.ts +0 -66
  170. package/lib-prod/env/env.npm-lib-and-cli-tool.ts +0 -66
  171. package/lib-prod/env/env.vscode-plugin.ts +0 -66
  172. package/lib-prod/env/index.ts +0 -6
  173. package/lib-prod/express-types.ts +0 -4
  174. package/lib-prod/formly/formly.models.ts +0 -7
  175. package/lib-prod/formly/fromly.ts +0 -261
  176. package/lib-prod/formly/type-from-entity.ts +0 -80
  177. package/lib-prod/get-response-value.ts +0 -30
  178. package/lib-prod/global-state/taon-global-state/index.ts +0 -6
  179. package/lib-prod/global-state/taon-global-state/taon-global-state.abstract.context.ts +0 -21
  180. package/lib-prod/global-state/taon-global-state/taon-global-state.constants.ts +0 -9
  181. package/lib-prod/global-state/taon-global-state/taon-global-state.controller.ts +0 -44
  182. package/lib-prod/global-state/taon-global-state/taon-global-state.entity.ts +0 -40
  183. package/lib-prod/global-state/taon-global-state/taon-global-state.middleware.ts +0 -12
  184. package/lib-prod/global-state/taon-global-state/taon-global-state.models.ts +0 -48
  185. package/lib-prod/global-state/taon-global-state/taon-global-state.provider.ts +0 -16
  186. package/lib-prod/global-state/taon-global-state/taon-global-state.repository.ts +0 -47
  187. package/lib-prod/global-state/taon-global-state/taon-global-state.subscriber.ts +0 -18
  188. package/lib-prod/global-state/taon-global-state/taon-global-state.utils.ts +0 -21
  189. package/lib-prod/global-state/taon-transaction-registry/index.ts +0 -11
  190. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.ts +0 -23
  191. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.constants.ts +0 -7
  192. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.controller.ts +0 -38
  193. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.entity.ts +0 -54
  194. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.middleware.ts +0 -12
  195. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.models.ts +0 -6
  196. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.provider.ts +0 -16
  197. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.repository.ts +0 -29
  198. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.ts +0 -20
  199. package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.utils.ts +0 -9
  200. package/lib-prod/helpers/class-helpers.ts +0 -315
  201. package/lib-prod/helpers/clone-obj.ts +0 -24
  202. package/lib-prod/helpers/taon-helpers.ts +0 -181
  203. package/lib-prod/index._auto-generated_.ts +0 -5
  204. package/lib-prod/index.ts +0 -323
  205. package/lib-prod/inject.ts +0 -111
  206. package/lib-prod/lib-info.md +0 -8
  207. package/lib-prod/migrations/index.ts +0 -2
  208. package/lib-prod/migrations/migrations-info.md +0 -6
  209. package/lib-prod/migrations/migrations_index._auto-generated_.ts +0 -5
  210. package/lib-prod/models.ts +0 -427
  211. package/lib-prod/orm/columns.ts +0 -121
  212. package/lib-prod/orm/index.ts +0 -62
  213. package/lib-prod/realtime/realtime-client.ts +0 -288
  214. package/lib-prod/realtime/realtime-core.ts +0 -134
  215. package/lib-prod/realtime/realtime-server.ts +0 -398
  216. package/lib-prod/realtime/realtime-strategy/index.ts +0 -4
  217. package/lib-prod/realtime/realtime-strategy/realtime-strategy-ipc.ts +0 -344
  218. package/lib-prod/realtime/realtime-strategy/realtime-strategy-mock.ts +0 -349
  219. package/lib-prod/realtime/realtime-strategy/realtime-strategy-socket-io.ts +0 -30
  220. package/lib-prod/realtime/realtime-strategy/realtime-strategy.ts +0 -21
  221. package/lib-prod/realtime/realtime-subs-manager.ts +0 -127
  222. package/lib-prod/realtime/realtime.models.ts +0 -33
  223. package/lib-prod/symbols.ts +0 -136
  224. package/lib-prod/ui/index.ts +0 -1
  225. package/lib-prod/ui/taon-admin-mode-configuration/index.ts +0 -1
  226. package/lib-prod/validators.ts +0 -103
@@ -1,298 +0,0 @@
1
- //#region imports
2
- 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, 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 } from 'tnp-core/lib-prod';
3
-
4
- import { TaonController } from '../decorators/classes/controller-decorator';
5
- import { TaonEntityOptions } from '../decorators/classes/entity-decorator';
6
- import {
7
- GET,
8
- PUT,
9
- DELETE,
10
- POST,
11
- HEAD,
12
- PATCH,
13
- } from '../decorators/http/http-methods-decorators';
14
- import { Query, Path, Body } from '../decorators/http/http-params-decorators';
15
- 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';
16
- import { 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';
17
- import { Symbols__NS__classMethodsNames, Symbols__NS__classNameStaticProperty, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClass, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';
18
- import { Validators__NS__checkIfMethodsWithReponseTYpeAlowed, Validators__NS__classNameVlidation, Validators__NS__preventUndefinedModel, Validators__NS__validateClassFunctions } from '../validators';
19
-
20
- import { TaonBaseController } from './base-controller';
21
- import { TaonBaseRepository } from './base-repository';
22
- //#endregion
23
-
24
- /**
25
- * Please override property entityClassFn with entity class.
26
- */
27
- @TaonController({ className: 'TaonBaseCrudController' })
28
- export abstract class TaonBaseCrudController<
29
- Entity,
30
- UPLOAD_FILE_QUERY_PARAMS = {},
31
- > extends TaonBaseController<UPLOAD_FILE_QUERY_PARAMS> {
32
- //#region fields
33
- protected db: TaonBaseRepository<Entity>;
34
-
35
- /**
36
- * Please provide entity as class property entityClassFn:
37
- * @returns class function
38
- *
39
- */
40
- abstract entityClassResolveFn: () => any;
41
- //#endregion
42
-
43
- //#region init
44
- async _(): Promise<void> {
45
- if (!___NS__isFunction(this.entityClassResolveFn)) {
46
- Helpers__NS__warn(
47
- `Skipping initing CRUD controller ${ClassHelpers__NS__getName(
48
- this,
49
- )} because entityClassResolveFn is not provided.`,
50
- );
51
- return;
52
- }
53
-
54
- let entityClassFn = this.entityClassResolveFn();
55
- this.db = this.injectRepo(entityClassFn);
56
-
57
- if (entityClassFn) {
58
- const configEntity = Reflect.getMetadata(
59
- Symbols__NS__metadata.options.entity,
60
- ClassHelpers__NS__getClassFnFromObject(this),
61
- ) as TaonEntityOptions;
62
- if (configEntity?.createTable === false) {
63
- Helpers__NS__warn(
64
- `Table for entity ${ClassHelpers__NS__getName(
65
- entityClassFn,
66
- )} will not be created. Crud will not work properly.`,
67
- );
68
- }
69
- } else {
70
- Helpers__NS__error(`Entity class not provided for controller ${ClassHelpers__NS__getName(
71
- this,
72
- )}.
73
-
74
- Please provide entity as class property entityClassFn:
75
-
76
- class ${ClassHelpers__NS__getName(this)} extends TaonBaseCrudController<Entity> {
77
- // ...
78
- entityClassResolveFn = ()=> MyEntityClass;
79
- // ...
80
- }
81
-
82
- `);
83
- }
84
- await super._();
85
- }
86
- //#endregion
87
-
88
- //#region bufferd changes
89
- @GET()
90
- bufforedChanges(
91
- @Query(`id`) id: number | string,
92
- @Query(`property`) property: string,
93
- @Query('alreadyLength') alreadyLength?: number,
94
- ): Models__NS__Http__NS__Response<string | any[]> {
95
- //#region @websqlFunc
96
- return async (request, response) => {
97
- const model = await this.db.getBy(id);
98
- if (model === void 0) {
99
- return;
100
- }
101
- Validators__NS__preventUndefinedModel(model, id);
102
- let value = model[property];
103
- let result: any;
104
- if (___NS__isString(value) || ___NS__isArray(value)) {
105
- result = (value as string).slice(alreadyLength);
106
- }
107
-
108
- return result;
109
- };
110
- //#endregion
111
- }
112
- //#endregion
113
-
114
- //#region pagintation
115
- @GET()
116
- pagination(
117
- @Query('pageNumber') pageNumber: number = 1,
118
- @Query('pageSize') pageSize: number = 10,
119
- @Query('search') search: string = '',
120
- ): Models__NS__Http__NS__Response<Entity[]> {
121
- //#region @websqlFunc
122
- return async (request, response) => {
123
- if (this.db.repositoryExists) {
124
- const query = {
125
- page: pageNumber,
126
- take: pageSize,
127
- keyword: search,
128
- };
129
- // console.log({
130
- // query
131
- // })
132
-
133
- const take = query.take || 10;
134
- const page = query.page || 1;
135
- const skip = (page - 1) * take;
136
- const keyword = query.keyword || '';
137
-
138
- const [result, total] = await this.db.findAndCount({
139
- // where: { name: Like('%' + keyword + '%') },
140
- // order: { name: "DESC" },
141
- take: take,
142
- skip: skip,
143
- });
144
-
145
- response?.setHeader(Symbols__NS__old.X_TOTAL_COUNT, total);
146
- // const lastPage = Math.ceil(total / take);
147
- // const nextPage = page + 1 > lastPage ? null : page + 1;
148
- // const prevPage = page - 1 < 1 ? null : page - 1;
149
-
150
- // console.log({
151
- // result,
152
- // total
153
- // })
154
-
155
- return result as Entity[];
156
- }
157
- return [];
158
- };
159
- //#endregion
160
- }
161
- //#endregion
162
-
163
- //#region get all
164
- @GET()
165
- getAll(): Models__NS__Http__NS__Response<Entity[]> {
166
- //#region @websqlFunc
167
- return async (request, response) => {
168
- if (this.db.repositoryExists) {
169
- const { models, totalCount } = await this.db.getAll();
170
- response?.setHeader(Symbols__NS__old.X_TOTAL_COUNT, totalCount);
171
- return models;
172
- }
173
- return [];
174
- };
175
- //#endregion
176
- }
177
- //#endregion
178
-
179
- //#region get by id
180
- @GET()
181
- getBy(@Query(`id`) id: number | string): Models__NS__Http__NS__Response<Entity> {
182
- //#region @websqlFunc
183
- return async () => {
184
- const model = await this.db.getBy(id);
185
- return model;
186
- };
187
- //#endregion
188
- }
189
- //#endregion
190
-
191
- //#region update by id
192
- @PUT()
193
- updateById(
194
- @Query(`id`) id: number | string,
195
- @Body() item: Entity,
196
- ): Models__NS__Http__NS__Response<Entity> {
197
- //#region @websqlFunc
198
-
199
- return async () => {
200
- const model = await this.db.updateById<Entity>(id, item as any);
201
- return model;
202
- };
203
- //#endregion
204
- }
205
- //#endregion
206
-
207
- //#region patch by id
208
- @PATCH()
209
- patchById(
210
- @Query(`id`) id: number | string,
211
- @Body() item: Entity,
212
- ): Models__NS__Http__NS__Response<Entity> {
213
- //#region @websqlFunc
214
-
215
- return async () => {
216
- const model = await this.db.updateById<Entity>(id, item as any);
217
- return model;
218
- };
219
- //#endregion
220
- }
221
- //#endregion
222
-
223
- //#region bulk update
224
- @PUT()
225
- bulkUpdate(@Body() items: Entity[]): Models__NS__Http__NS__Response<Entity[]> {
226
- //#region @websqlFunc
227
- return async () => {
228
- if (!Array.isArray(items) || items?.length === 0) {
229
- return [];
230
- }
231
- const { models } = await this.db.bulkUpdate(items);
232
- return models;
233
- };
234
- //#endregion
235
- }
236
- //#endregion
237
-
238
- //#region delete by id
239
- @DELETE()
240
- deleteById(@Query(`id`) id: number | string): Models__NS__Http__NS__Response<Entity> {
241
- //#region @websqlFunc
242
- return async () => {
243
- const model = await this.db.deleteById(id as any);
244
- return model;
245
- };
246
- //#endregion
247
- }
248
- //#endregion
249
-
250
- //#region bulk delete
251
- @DELETE()
252
- bulkDelete(
253
- @Query(`ids`) ids: (number | string)[],
254
- ): Models__NS__Http__NS__Response<(number | string | Entity)[]> {
255
- //#region @websqlFunc
256
- return async () => {
257
- const models = await this.db.bulkDelete(ids);
258
- return models;
259
- };
260
- //#endregion
261
- }
262
- //#endregion
263
-
264
- //#region bulk delete
265
- @DELETE()
266
- clearTable(): Models__NS__Http__NS__Response<void> {
267
- //#region @websqlFunc
268
- return async () => {
269
- await this.db.clear()
270
- };
271
- //#endregion
272
- }
273
- //#endregion
274
-
275
- //#region create
276
- @POST()
277
- save(@Body() item: Entity): Models__NS__Http__NS__Response<Entity> {
278
- //#region @websqlFunc
279
- return async () => {
280
- const model = await this.db.save(item);
281
- return model as Entity;
282
- };
283
- //#endregion
284
- }
285
- //#endregion
286
-
287
- //#region bulk create
288
- @POST()
289
- bulkCreate(@Body() items: Entity): Models__NS__Http__NS__Response<Entity[]> {
290
- //#region @websqlFunc
291
- return async () => {
292
- const models = await this.db.bulkCreate(items as any);
293
- return models as Entity[];
294
- };
295
- //#endregion
296
- }
297
- //#endregion
298
- }
@@ -1,10 +0,0 @@
1
- //#region imports
2
- 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';
3
-
4
- import { TaonRepository } from '../decorators/classes/repository-decorator';
5
-
6
- import { TaonBaseInjector } from './base-injector';
7
- //#endregion
8
-
9
- @TaonRepository({ className: 'TaonBaseCustomRepository' })
10
- export abstract class TaonBaseCustomRepository extends TaonBaseInjector {}
@@ -1,60 +0,0 @@
1
- // TODO any purpose for this ?
2
- // //#region imports
3
- // import * as childProcess from 'child_process';
4
- // import * as fs from 'fs';
5
-
6
- // import { Injectable } from '@angular/core';
7
- // import { ipcRenderer, webFrame } from 'electron';
8
- // import { UtilsOs } from 'tnp-core/src';
9
- // //#endregion
10
-
11
- // // If you import a module but never use any of the imported values other than as TypeScript types,
12
- // // the resulting javascript file will look as if you never imported the module at all.
13
-
14
- // @Injectable({
15
- // providedIn: 'root',
16
- // })
17
- // export class TaonBaseElectronService {
18
- // ipcRenderer!: typeof ipcRenderer;
19
-
20
- // webFrame!: typeof webFrame;
21
-
22
- // childProcess!: typeof childProcess;
23
-
24
- // fs!: typeof fs;
25
-
26
- // constructor() {
27
- // // Conditional imports
28
- // if (UtilsOs.isElectron) {
29
- // this.ipcRenderer = (window as any).require('electron').ipcRenderer;
30
- // this.webFrame = (window as any).require('electron').webFrame;
31
-
32
- // this.fs = (window as any).require('fs');
33
-
34
- // this.childProcess = (window as any).require('child_process');
35
- // this.childProcess.exec('node -v', (error, stdout, stderr) => {
36
- // if (error) {
37
- // console.error(`error: ${error.message}`);
38
- // return;
39
- // }
40
- // if (stderr) {
41
- // console.error(`stderr: ${stderr}`);
42
- // return;
43
- // }
44
- // console.log(`stdout:\n${stdout}`);
45
- // });
46
-
47
- // // Notes :
48
- // // * A NodeJS's dependency imported with 'window.require' MUST BE present in `dependencies` of both `app/package.json`
49
- // // and `package.json (root folder)` in order to make it work here in Electron's Renderer process (src folder)
50
- // // because it will loaded at runtime by Electron.
51
- // // * A NodeJS's dependency imported with TS module import (ex: import { Dropbox } from 'dropbox') CAN only be present
52
- // // in `dependencies` of `package.json (root folder)` because it is loaded during build phase and does not need to be
53
- // // in the final bundle. Reminder : only if not used in Electron's Main process (app folder)
54
-
55
- // // If you want to use a NodeJS 3rd party deps in Renderer process,
56
- // // ipcRenderer.invoke can serve many common use cases.
57
- // // https://www.electronjs.org/docs/latest/api/ipc-renderer#ipcrendererinvokechannel-args
58
- // }
59
- // }
60
- // }
@@ -1,28 +0,0 @@
1
- import { Entity } from 'taon-typeorm/lib-prod'; // @websql
2
- import { RelationPath } from 'taon-typeorm/lib-prod';
3
-
4
- import { TaonBaseClass } from './base-class';
5
-
6
- //#region @websql
7
- @Entity()
8
- //#endregion
9
- export abstract class TaonBaseEntity<
10
- /**
11
- * type for cloning
12
- */
13
- CloneT extends TaonBaseClass = any,
14
- > extends TaonBaseClass<CloneT> {
15
- /**
16
- * simple check if relation is ok
17
- */
18
- relation(relationName: RelationPath<CloneT>): string {
19
- return relationName as string;
20
- }
21
-
22
- /**
23
- * simple check if relation is ok
24
- */
25
- relations(relationNames: RelationPath<CloneT>[]): string[] {
26
- return relationNames as string[];
27
- }
28
- }
@@ -1,92 +0,0 @@
1
- //#region imports
2
- import * as crypto from 'crypto';
3
-
4
- import type { RequestHandler } from 'express';
5
- import * as multer from 'multer';
6
- import {
7
- TaonClientMiddlewareInterceptOptions,
8
- TaonServerMiddlewareInterceptOptions,
9
- } from 'ng2-rest/lib-prod';
10
- import { Observable } from 'rxjs';
11
- import { crossPlatformPath, fse, path } from 'tnp-core/lib-prod';
12
-
13
- import { TaonMiddleware } from '../decorators/classes/middleware-decorator';
14
-
15
- import {
16
- TaonBaseMiddleware,
17
- TaonAdditionalMiddlewareMethodInfo,
18
- } from './base-middleware';
19
- //#endregion
20
-
21
- /**
22
- * Configurable file upload middleware (multer based)
23
- */
24
- @TaonMiddleware({
25
- className: 'TaonBaseFileUploadMiddleware',
26
- })
27
- export class TaonBaseFileUploadMiddleware extends TaonBaseMiddleware {
28
- async interceptServerMethod(
29
- { req, res, next }: TaonServerMiddlewareInterceptOptions,
30
- { methodName, expressPath }: TaonAdditionalMiddlewareMethodInfo,
31
- ): Promise<void> {
32
- return this.middleware()(req, res, next);
33
- }
34
-
35
- //#region upload Dir
36
- uploadDir(): string {
37
- return crossPlatformPath([this.ctx.cwd, 'uploaded-files']);
38
- }
39
- //#endregion
40
-
41
- //#region storage
42
- storage(): multer.StorageEngine {
43
- //#region @backendFunc
44
- const uploadDir = this.uploadDir();
45
- if (!fse.existsSync(uploadDir)) {
46
- try {
47
- fse.mkdirSync(uploadDir, { recursive: true });
48
- } catch (error) {}
49
- }
50
- return multer.diskStorage({
51
- destination: (_req, _file, cb) => cb(null, uploadDir),
52
- filename: (_req, file, cb) => {
53
- const ext = path.extname(file.originalname).toLowerCase();
54
- const base = path
55
- .basename(file.originalname, ext)
56
- .replace(/[^\w.-]/g, '_');
57
- const uniq = `${Date.now()}-${crypto.randomBytes(6).toString('hex')}`;
58
- const filenameToProcess = `${base}-${uniq}${ext}`;
59
- cb(null, filenameToProcess);
60
- },
61
- });
62
- //#endregion
63
- }
64
- //#endregion
65
-
66
- //#region upload
67
- upload(): multer.Multer {
68
- //#region @backendFunc
69
- return multer({
70
- storage: this.storage(),
71
- limits: { fileSize: 1024 * 1024 * 1024 }, // 1 GiB cap; tweak as needed
72
- // TODO implement file filter if needed
73
- // fileFilter: (_req, file, cb) => {
74
- // // accept only .zip by filename extension
75
- // if (path.extname(file.originalname).toLowerCase() !== '.zip') {
76
- // return cb(new Error('Only .zip files are allowed'));
77
- // }
78
- // cb(null, true);
79
- // },
80
- });
81
- //#endregion
82
- }
83
- //#endregion
84
-
85
- //#region middleware
86
- middleware(): RequestHandler {
87
- //#region @backendFunc
88
- return this.upload().any();
89
- //#endregion
90
- }
91
- //#endregion
92
- }