@sap/cds-dk 10.1.2 → 10.2.1

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 (898) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/bin/add.js +7 -2
  3. package/bin/bind.js +5 -6
  4. package/bin/bindings.js +35 -0
  5. package/bin/build.js +11 -6
  6. package/bin/compile/index.js +1 -0
  7. package/bin/completion/index.js +10 -448
  8. package/bin/completion/scripts/cds.fish +28 -19
  9. package/bin/completion/scripts/cds.ps1 +30 -29
  10. package/bin/completion/scripts/cds.sh +26 -23
  11. package/bin/completion/scripts/cds.zsh +26 -23
  12. package/bin/debug.js +3 -3
  13. package/bin/deploy/index.js +3 -3
  14. package/bin/deploy/to-hana/hana.js +6 -5
  15. package/bin/deploy/to-hana/hdiDeployUtil.js +25 -14
  16. package/bin/env.js +0 -1
  17. package/bin/eval.js +9 -5
  18. package/bin/export.js +6 -4
  19. package/bin/help/export.md +28 -4
  20. package/bin/import.js +6 -5
  21. package/bin/inspect.js +0 -1
  22. package/bin/login.js +28 -3
  23. package/bin/repl.js +82 -26
  24. package/bin/run.js +6 -7
  25. package/bin/serve.js +6 -7
  26. package/bin/up.js +10 -5
  27. package/bin/upgrade/steps/install.js +6 -6
  28. package/bin/version.js +1 -1
  29. package/bin/watch/index.js +1 -0
  30. package/bin/watch/vite-watch.js +12 -6
  31. package/lib/bind/shared.js +1 -1
  32. package/lib/build/index.js +11 -7
  33. package/lib/build/plugins/featureToggles.js +2 -2
  34. package/lib/build/plugins/hana/index.js +1 -1
  35. package/lib/build/plugins/helm/files/subcharts/web-application/Chart.yaml +1 -1
  36. package/lib/build/plugins/helm/files/subcharts/web-application/templates/_helpers.tpl +7 -0
  37. package/lib/build/plugins/helm/files/subcharts/web-application/templates/api-rule.yaml +1 -0
  38. package/lib/build/plugins/helm/files/subcharts/web-application/templates/service-binding.yaml +4 -4
  39. package/lib/build/plugins/helm/files/subcharts/web-application/values.schema.json +13 -0
  40. package/lib/build/plugins/helm/files/subcharts/web-application/values.yaml +7 -1
  41. package/lib/build/plugins/java/index.js +5 -1
  42. package/lib/build/plugins/nodejs/index.js +5 -1
  43. package/lib/build/util.js +4 -5
  44. package/lib/env/schemas/cds-rc.js +5 -0
  45. package/lib/import/importapi.js +2 -3
  46. package/lib/init/constants.js +1 -1
  47. package/lib/init/index.js +9 -3
  48. package/lib/init/plugin.js +1 -1
  49. package/lib/init/projectReader.js +16 -12
  50. package/lib/init/registries/mta.js +0 -6
  51. package/lib/init/template/ai/index.js +4 -4
  52. package/lib/init/template/ams/files/extensionDeveloper.dcl +6 -0
  53. package/lib/init/template/ams/files/mta.yaml.hbs +6 -0
  54. package/lib/init/template/ams/files/sidecar.package.json.hbs +5 -0
  55. package/lib/init/template/ams/index.js +42 -40
  56. package/lib/init/template/app-frontend/files/mta.yaml.hbs +2 -0
  57. package/lib/init/template/app-frontend/files/ui5.yaml.hbs +0 -4
  58. package/lib/init/template/app-frontend/index.js +29 -24
  59. package/lib/init/template/application-logging/index.js +6 -6
  60. package/lib/init/template/approuter/files/values.yaml.hbs +0 -9
  61. package/lib/init/template/approuter/index.js +19 -13
  62. package/lib/init/template/attachments/index.js +3 -3
  63. package/lib/init/template/audit-logging/index.js +4 -4
  64. package/lib/init/template/cloud-logging/index.js +12 -6
  65. package/lib/init/template/completion/completionSetup.js +19 -6
  66. package/lib/init/template/connectivity/index.js +3 -3
  67. package/lib/init/template/data/as-csv.js +7 -4
  68. package/lib/init/template/data/as-json.js +77 -20
  69. package/lib/init/template/destination/index.js +12 -9
  70. package/lib/init/template/dynatrace/index.js +5 -5
  71. package/lib/init/template/enterprise-messaging/index.js +6 -6
  72. package/lib/init/template/enterprise-messaging-shared/index.js +4 -4
  73. package/lib/init/template/extensibility/index.js +2 -2
  74. package/lib/init/template/extension/index.js +26 -0
  75. package/lib/init/template/github-actions/index.js +3 -3
  76. package/lib/init/template/hana/files/package.json.hbs +3 -2
  77. package/lib/init/template/hana/index.js +5 -5
  78. package/lib/init/template/hana-serverless/index.js +3 -3
  79. package/lib/init/template/html5-repo/files/mta.yaml.hbs +2 -0
  80. package/lib/init/template/html5-repo/files/ui5.yaml.hbs +0 -4
  81. package/lib/init/template/html5-repo/index.js +80 -40
  82. package/lib/init/template/http/index.js +1 -1
  83. package/lib/init/template/ias/index.js +7 -7
  84. package/lib/init/template/initial/files/.gitignore.hbs +1 -0
  85. package/lib/init/template/kafka/index.js +3 -3
  86. package/lib/init/template/kyma/index.js +7 -9
  87. package/lib/init/template/malware-scanner/index.js +3 -3
  88. package/lib/init/template/mta/index.js +6 -3
  89. package/lib/init/template/multitenancy/index.js +6 -7
  90. package/lib/init/template/notifications/index.js +2 -2
  91. package/lib/init/template/portal/index.js +16 -10
  92. package/lib/init/template/postgres/index.js +5 -5
  93. package/lib/init/template/react/files/index.html.hbs +1 -1
  94. package/lib/init/template/react/files/package.json.hbs +3 -2
  95. package/lib/init/template/react/files/src/{App.jsx.hbs → App.{{jsxExtension}}.hbs} +8 -2
  96. package/lib/init/template/react/files/src/{main.jsx → main.{{jsxExtension}}.hbs} +2 -2
  97. package/lib/init/template/react/files/{vite.config.js.hbs → vite.config.{{extension}}.hbs} +2 -3
  98. package/lib/init/template/react/index.js +22 -5
  99. package/lib/init/template/react/typescript/src/vite-env.d.ts +1 -0
  100. package/lib/init/template/react/typescript/tsconfig.json.hbs +16 -0
  101. package/lib/init/template/redis/index.js +2 -2
  102. package/lib/init/template/sample/files/app/index.html.hbs +18 -0
  103. package/lib/init/template/sample/index.js +1 -0
  104. package/lib/init/template/side-by-side-extensibility/index.js +6 -3
  105. package/lib/init/template/typescript/files/tsconfig.json +3 -1
  106. package/lib/init/template/vue/files/index.html.hbs +1 -1
  107. package/lib/init/template/vue/files/package.json.hbs +2 -1
  108. package/lib/init/template/vue/files/src/App.vue.hbs +8 -2
  109. package/lib/init/template/vue/files/{vite.config.js.hbs → vite.config.{{extension}}.hbs} +2 -3
  110. package/lib/init/template/vue/index.js +19 -5
  111. package/lib/init/template/vue/typescript/tsconfig.json +11 -0
  112. package/lib/init/template/workzone-standard/files/mta.yaml.hbs +2 -2
  113. package/lib/init/template/workzone-standard/index.js +29 -27
  114. package/lib/init/template/xsuaa/files/mta.yaml.hbs +1 -1
  115. package/lib/init/template/xsuaa/files/values.yaml.hbs +1 -1
  116. package/lib/init/template/xsuaa/index.js +34 -22
  117. package/lib/mtx/auth_manager.js +8 -2
  118. package/lib/mtx/browser_login.js +181 -0
  119. package/lib/mtx/params.js +6 -0
  120. package/lib/mtx/push.js +7 -1
  121. package/lib/mtx/settings_manager.js +29 -4
  122. package/lib/util/cf.js +44 -8
  123. package/lib/util/fs.js +2 -2
  124. package/node_modules/@cap-js/asyncapi/README.md +4 -14
  125. package/node_modules/@cap-js/asyncapi/cds-plugin.js +12 -0
  126. package/node_modules/@cap-js/asyncapi/index.js +3 -2
  127. package/node_modules/@cap-js/asyncapi/lib/compile/components/messages/index.js +4 -2
  128. package/node_modules/@cap-js/asyncapi/lib/compile/components/schemas/definition.js +11 -1
  129. package/node_modules/@cap-js/asyncapi/lib/compile/components/schemas/utils.js +16 -0
  130. package/node_modules/@cap-js/asyncapi/lib/compile/utils.js +4 -3
  131. package/node_modules/@cap-js/asyncapi/lib/import/importAsyncAPI.js +34 -0
  132. package/node_modules/@cap-js/asyncapi/lib/import/index.js +18 -0
  133. package/node_modules/@cap-js/asyncapi/lib/import/message.js +9 -0
  134. package/node_modules/@cap-js/asyncapi/lib/import/parserContext.js +368 -0
  135. package/node_modules/@cap-js/asyncapi/lib/import/utils.js +85 -0
  136. package/node_modules/@cap-js/asyncapi/package.json +89 -1
  137. package/node_modules/@cap-js/db-service/CHANGELOG.md +10 -0
  138. package/node_modules/@cap-js/db-service/lib/cqn2pql.js +4 -0
  139. package/node_modules/@cap-js/db-service/lib/cqn2sql.js +3 -0
  140. package/node_modules/@cap-js/db-service/lib/cqn4sql.js +8 -23
  141. package/node_modules/@cap-js/db-service/lib/infer/index.js +20 -27
  142. package/node_modules/@cap-js/db-service/package.json +1 -1
  143. package/node_modules/@cap-js/openapi/cds-plugin.js +12 -0
  144. package/node_modules/@cap-js/openapi/index.js +3 -1
  145. package/node_modules/@cap-js/openapi/lib/compile/csdl2openapi.js +652 -413
  146. package/node_modules/@cap-js/openapi/lib/compile/diagram.js +16 -13
  147. package/node_modules/@cap-js/openapi/lib/compile/index.js +10 -7
  148. package/node_modules/@cap-js/openapi/lib/compile/property-util.js +51 -0
  149. package/{lib/import/openapi → node_modules/@cap-js/openapi/lib/import}/importOpenAPI.js +12 -9
  150. package/{lib/import/openapi → node_modules/@cap-js/openapi/lib/import}/index.js +4 -3
  151. package/node_modules/@cap-js/openapi/package.json +71 -3
  152. package/node_modules/@cap-js/sqlite/CHANGELOG.md +9 -0
  153. package/node_modules/@cap-js/sqlite/package.json +3 -3
  154. package/node_modules/@isaacs/fs-minipass/LICENSE +15 -0
  155. package/node_modules/@isaacs/fs-minipass/README.md +71 -0
  156. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts +118 -0
  157. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts.map +1 -0
  158. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +430 -0
  159. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js.map +1 -0
  160. package/node_modules/@isaacs/fs-minipass/dist/commonjs/package.json +3 -0
  161. package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts +118 -0
  162. package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts.map +1 -0
  163. package/node_modules/@isaacs/fs-minipass/dist/esm/index.js +420 -0
  164. package/node_modules/@isaacs/fs-minipass/dist/esm/index.js.map +1 -0
  165. package/node_modules/@isaacs/fs-minipass/dist/esm/package.json +3 -0
  166. package/node_modules/@isaacs/fs-minipass/package.json +72 -0
  167. package/node_modules/@sap/cds/CHANGELOG.md +62 -1
  168. package/node_modules/@sap/cds/_i18n/messages_ar.properties +1 -0
  169. package/node_modules/@sap/cds/_i18n/messages_bg.properties +1 -0
  170. package/node_modules/@sap/cds/_i18n/messages_cs.properties +1 -0
  171. package/node_modules/@sap/cds/_i18n/messages_da.properties +1 -0
  172. package/node_modules/@sap/cds/_i18n/messages_de.properties +1 -0
  173. package/node_modules/@sap/cds/_i18n/messages_el.properties +1 -0
  174. package/node_modules/@sap/cds/_i18n/messages_en.properties +1 -0
  175. package/node_modules/@sap/cds/_i18n/messages_es.properties +1 -0
  176. package/node_modules/@sap/cds/_i18n/messages_es_MX.properties +1 -0
  177. package/node_modules/@sap/cds/_i18n/messages_fi.properties +1 -0
  178. package/node_modules/@sap/cds/_i18n/messages_fr.properties +1 -0
  179. package/node_modules/@sap/cds/_i18n/messages_he.properties +1 -0
  180. package/node_modules/@sap/cds/_i18n/messages_hr.properties +1 -0
  181. package/node_modules/@sap/cds/_i18n/messages_hu.properties +1 -0
  182. package/node_modules/@sap/cds/_i18n/messages_it.properties +1 -0
  183. package/node_modules/@sap/cds/_i18n/messages_ja.properties +1 -0
  184. package/node_modules/@sap/cds/_i18n/messages_kk.properties +1 -0
  185. package/node_modules/@sap/cds/_i18n/messages_ko.properties +1 -0
  186. package/node_modules/@sap/cds/_i18n/messages_ms.properties +1 -0
  187. package/node_modules/@sap/cds/_i18n/messages_nl.properties +1 -0
  188. package/node_modules/@sap/cds/_i18n/messages_no.properties +1 -0
  189. package/node_modules/@sap/cds/_i18n/messages_pl.properties +1 -0
  190. package/node_modules/@sap/cds/_i18n/messages_pt.properties +1 -0
  191. package/node_modules/@sap/cds/_i18n/messages_ro.properties +1 -0
  192. package/node_modules/@sap/cds/_i18n/messages_ru.properties +1 -0
  193. package/node_modules/@sap/cds/_i18n/messages_sh.properties +1 -0
  194. package/node_modules/@sap/cds/_i18n/messages_sk.properties +1 -0
  195. package/node_modules/@sap/cds/_i18n/messages_sl.properties +1 -0
  196. package/node_modules/@sap/cds/_i18n/messages_sv.properties +1 -0
  197. package/node_modules/@sap/cds/_i18n/messages_th.properties +1 -0
  198. package/node_modules/@sap/cds/_i18n/messages_tr.properties +1 -0
  199. package/node_modules/@sap/cds/_i18n/messages_uk.properties +1 -0
  200. package/node_modules/@sap/cds/_i18n/messages_vi.properties +1 -0
  201. package/node_modules/@sap/cds/_i18n/messages_zh_CN.properties +1 -0
  202. package/node_modules/@sap/cds/_i18n/messages_zh_TW.properties +1 -0
  203. package/node_modules/@sap/cds/app/index-client.js +164 -0
  204. package/node_modules/@sap/cds/app/index.css +598 -87
  205. package/node_modules/@sap/cds/app/index.html +54 -30
  206. package/node_modules/@sap/cds/app/index.js +311 -67
  207. package/node_modules/@sap/cds/app/table.html +226 -0
  208. package/node_modules/@sap/cds/app/table.js +302 -0
  209. package/node_modules/@sap/cds/bin/serve.js +3 -2
  210. package/node_modules/@sap/cds/eslint.config.mjs +2 -0
  211. package/node_modules/@sap/cds/lib/compile/cdsc.js +7 -0
  212. package/node_modules/@sap/cds/lib/compile/for/embeddings.js +27 -0
  213. package/node_modules/@sap/cds/lib/compile/load.js +2 -2
  214. package/node_modules/@sap/cds/lib/compile/minify.js +17 -4
  215. package/node_modules/@sap/cds/lib/compile/parse.js +3 -0
  216. package/node_modules/@sap/cds/lib/compile/resolve.js +16 -14
  217. package/node_modules/@sap/cds/lib/core/classes.js +1 -0
  218. package/node_modules/@sap/cds/lib/dbs/cds-deploy.js +4 -5
  219. package/node_modules/@sap/cds/lib/env/cds-env.js +132 -70
  220. package/node_modules/@sap/cds/lib/env/cds-requires/auth-strategies.js +62 -0
  221. package/node_modules/@sap/cds/lib/env/cds-requires/databases.js +49 -0
  222. package/node_modules/@sap/cds/lib/env/cds-requires/embeddings.js +8 -0
  223. package/node_modules/@sap/cds/lib/env/cds-requires/index.js +27 -0
  224. package/node_modules/@sap/cds/lib/env/cds-requires/messaging.js +82 -0
  225. package/node_modules/@sap/cds/lib/env/cds-requires/platform.js +23 -0
  226. package/node_modules/@sap/cds/lib/env/cds-requires/queues.js +34 -0
  227. package/node_modules/@sap/cds/lib/env/cds-requires/services.js +32 -0
  228. package/node_modules/@sap/cds/lib/env/defaults.js +9 -1
  229. package/node_modules/@sap/cds/lib/env/schemas/cds-package.js +0 -2
  230. package/node_modules/@sap/cds/lib/env/schemas/cds-rc.js +3 -3
  231. package/node_modules/@sap/cds/lib/env/schemas/index.js +4 -4
  232. package/node_modules/@sap/cds/lib/i18n/files.js +4 -4
  233. package/node_modules/@sap/cds/lib/i18n/locale.js +1 -1
  234. package/node_modules/@sap/cds/lib/index.js +9 -9
  235. package/node_modules/@sap/cds/lib/log/cds-log.js +3 -3
  236. package/node_modules/@sap/cds/lib/ql/SELECT.js +2 -0
  237. package/node_modules/@sap/cds/lib/ql/UPDATE.js +1 -1
  238. package/node_modules/@sap/cds/lib/ql/cds.ql-Query.js +4 -1
  239. package/node_modules/@sap/cds/lib/ql/core/@types/cqn.d.ts +146 -0
  240. package/node_modules/@sap/cds/lib/ql/core/@types/exprs.d.ts +51 -0
  241. package/node_modules/@sap/cds/lib/ql/core/@types/index.d.ts +29 -0
  242. package/node_modules/@sap/cds/lib/ql/core/@types/package.json +7 -0
  243. package/node_modules/@sap/cds/lib/ql/core/@types/ql/delete.d.ts +8 -0
  244. package/node_modules/@sap/cds/lib/ql/core/@types/ql/insert.d.ts +19 -0
  245. package/node_modules/@sap/cds/lib/ql/core/@types/ql/select.d.ts +24 -0
  246. package/node_modules/@sap/cds/lib/ql/core/@types/ql/update.d.ts +10 -0
  247. package/node_modules/@sap/cds/lib/ql/core/@types/query.d.ts +18 -0
  248. package/node_modules/@sap/cds/lib/ql/core/cql/parser.min.js +1 -0
  249. package/node_modules/@sap/cds/lib/ql/core/lib/index.js +69 -0
  250. package/node_modules/@sap/cds/lib/ql/core/lib/ql/cache.js +34 -0
  251. package/node_modules/@sap/cds/lib/ql/core/lib/ql/call-action.js +6 -0
  252. package/node_modules/@sap/cds/lib/ql/core/lib/ql/delete.js +8 -0
  253. package/node_modules/@sap/cds/lib/ql/core/lib/ql/insert.js +26 -0
  254. package/node_modules/@sap/cds/lib/ql/core/lib/ql/select.js +22 -0
  255. package/node_modules/@sap/cds/lib/ql/core/lib/ql/update.js +26 -0
  256. package/node_modules/@sap/cds/lib/ql/core/lib/query.js +85 -0
  257. package/node_modules/@sap/cds/lib/ql/core/lib/xl/fluent.js +47 -0
  258. package/node_modules/@sap/cds/lib/ql/core/lib/xl/ttl.js +24 -0
  259. package/node_modules/@sap/cds/lib/ql/core/license +201 -0
  260. package/node_modules/@sap/cds/lib/ql/core/package.json +24 -0
  261. package/node_modules/@sap/cds/lib/ql/core/readme.md +99 -0
  262. package/node_modules/@sap/cds/lib/ql/core/upstream.json +5 -0
  263. package/node_modules/@sap/cds/lib/req/spawn.js +1 -1
  264. package/node_modules/@sap/cds/lib/srv/bindings.js +111 -115
  265. package/node_modules/@sap/cds/lib/srv/cds-connect.js +11 -10
  266. package/node_modules/@sap/cds/lib/srv/cds-serve.js +16 -7
  267. package/node_modules/@sap/cds/lib/srv/cds.Service.js +13 -7
  268. package/node_modules/@sap/cds/lib/srv/factory.js +8 -10
  269. package/node_modules/@sap/cds/lib/srv/middlewares/auth/ias-auth.js +35 -32
  270. package/node_modules/@sap/cds/lib/srv/middlewares/auth/jwt-auth.js +5 -1
  271. package/node_modules/@sap/cds/lib/srv/middlewares/auth/mocked-users.js +1 -1
  272. package/node_modules/@sap/cds/lib/srv/protocols/hcql.js +230 -79
  273. package/node_modules/@sap/cds/lib/srv/protocols/http.js +7 -3
  274. package/node_modules/@sap/cds/lib/srv/protocols/index.js +7 -2
  275. package/node_modules/@sap/cds/lib/srv/srv-dispatch.js +2 -2
  276. package/node_modules/@sap/cds/lib/utils/cds-utils.js +50 -0
  277. package/node_modules/@sap/cds/lib/utils/csv-reader.js +2 -2
  278. package/node_modules/@sap/cds/libx/_runtime/common/generic/assert.js +18 -27
  279. package/node_modules/@sap/cds/libx/_runtime/common/generic/crud.js +1 -1
  280. package/node_modules/@sap/cds/libx/_runtime/common/utils/rewriteAsterisks.js +1 -1
  281. package/node_modules/@sap/cds/libx/_runtime/fiori/lean-draft.js +121 -84
  282. package/node_modules/@sap/cds/libx/_runtime/messaging/common-utils/authorizedRequest.js +24 -1
  283. package/node_modules/@sap/cds/libx/_runtime/messaging/common-utils/connections.js +45 -39
  284. package/node_modules/@sap/cds/libx/_runtime/remote/Service.js +2 -2
  285. package/node_modules/@sap/cds/libx/_runtime/remote/utils/client.js +3 -2
  286. package/node_modules/@sap/cds/libx/_runtime/remote/utils/query.js +11 -6
  287. package/node_modules/@sap/cds/libx/odata/ODataAdapter.js +1 -1
  288. package/node_modules/@sap/cds/libx/odata/middleware/create.js +4 -0
  289. package/node_modules/@sap/cds/libx/odata/middleware/metadata.js +1 -1
  290. package/node_modules/@sap/cds/libx/odata/middleware/operation.js +3 -0
  291. package/node_modules/@sap/cds/libx/odata/middleware/parse.js +9 -0
  292. package/node_modules/@sap/cds/libx/odata/middleware/read.js +6 -0
  293. package/node_modules/@sap/cds/libx/odata/middleware/update.js +5 -1
  294. package/node_modules/@sap/cds/libx/odata/parse/afterburner.js +3 -3
  295. package/node_modules/@sap/cds/libx/odata/parse/multipartToJson.js +1 -1
  296. package/node_modules/@sap/cds/libx/odata/utils/ieee754.js +20 -0
  297. package/node_modules/@sap/cds/libx/queue/TaskRunner.js +22 -5
  298. package/node_modules/@sap/cds/libx/queue/api.js +1 -1
  299. package/node_modules/@sap/cds/libx/queue/index.js +3 -1
  300. package/node_modules/@sap/cds/libx/queue/processing.js +5 -0
  301. package/node_modules/@sap/cds/libx/rest/RestAdapter.js +1 -0
  302. package/node_modules/@sap/cds/package.json +2 -2
  303. package/node_modules/@sap/cds/server.js +1 -0
  304. package/node_modules/@sap/cds/srv/ucl-service.cds +1 -0
  305. package/node_modules/@sap/cds-compiler/CHANGELOG.md +83 -0
  306. package/node_modules/@sap/cds-compiler/bin/cdsse.js +1 -1
  307. package/node_modules/@sap/cds-compiler/doc/EffectiveCSN.md +3314 -0
  308. package/node_modules/@sap/cds-compiler/lib/api/main.js +9 -6
  309. package/node_modules/@sap/cds-compiler/lib/api/options.js +3 -3
  310. package/node_modules/@sap/cds-compiler/lib/{model → base}/csnUtils.js +5 -5
  311. package/node_modules/@sap/cds-compiler/lib/base/message-registry.js +54 -6
  312. package/node_modules/@sap/cds-compiler/lib/base/optionProcessor.js +4 -4
  313. package/node_modules/@sap/cds-compiler/lib/{model → base}/sortViews.js +1 -1
  314. package/node_modules/@sap/cds-compiler/lib/checks/assocOutsideService.js +1 -1
  315. package/node_modules/@sap/cds-compiler/lib/checks/checkForTypes.js +1 -1
  316. package/node_modules/@sap/cds-compiler/lib/checks/checkPathsInStoredCalcElement.js +1 -1
  317. package/node_modules/@sap/cds-compiler/lib/checks/elements.js +37 -3
  318. package/node_modules/@sap/cds-compiler/lib/checks/enricher.js +1 -1
  319. package/node_modules/@sap/cds-compiler/lib/checks/existsInForbiddenPlaces.js +1 -1
  320. package/node_modules/@sap/cds-compiler/lib/checks/hasPersistedElements.js +1 -1
  321. package/node_modules/@sap/cds-compiler/lib/checks/manyExpand.js +1 -1
  322. package/node_modules/@sap/cds-compiler/lib/checks/manyNavigations.js +1 -1
  323. package/node_modules/@sap/cds-compiler/lib/checks/onConditions.js +1 -1
  324. package/node_modules/@sap/cds-compiler/lib/checks/parameters.js +1 -1
  325. package/node_modules/@sap/cds-compiler/lib/checks/queryNoDbArtifacts.js +1 -1
  326. package/node_modules/@sap/cds-compiler/lib/checks/selectItems.js +1 -1
  327. package/node_modules/@sap/cds-compiler/lib/checks/structuredAnnoExpressions.js +1 -1
  328. package/node_modules/@sap/cds-compiler/lib/checks/typeParameters.js +1 -1
  329. package/node_modules/@sap/cds-compiler/lib/checks/types.js +1 -1
  330. package/node_modules/@sap/cds-compiler/lib/checks/validator.js +1 -1
  331. package/node_modules/@sap/cds-compiler/lib/compiler/assert-consistency.js +20 -12
  332. package/node_modules/@sap/cds-compiler/lib/compiler/builtins.js +9 -4
  333. package/node_modules/@sap/cds-compiler/lib/compiler/checks.js +50 -0
  334. package/node_modules/@sap/cds-compiler/lib/compiler/define.js +303 -323
  335. package/node_modules/@sap/cds-compiler/lib/compiler/dictionaries.js +5 -0
  336. package/node_modules/@sap/cds-compiler/lib/compiler/extend.js +1015 -1177
  337. package/node_modules/@sap/cds-compiler/lib/compiler/generate.js +55 -42
  338. package/node_modules/@sap/cds-compiler/lib/compiler/populate.js +74 -45
  339. package/node_modules/@sap/cds-compiler/lib/compiler/propagator.js +1 -0
  340. package/node_modules/@sap/cds-compiler/lib/compiler/resolve.js +6 -4
  341. package/node_modules/@sap/cds-compiler/lib/compiler/shared.js +30 -49
  342. package/node_modules/@sap/cds-compiler/lib/compiler/utils.js +32 -18
  343. package/node_modules/@sap/cds-compiler/lib/edm/annotations/edmJson.js +3 -3
  344. package/node_modules/@sap/cds-compiler/lib/edm/annotations/genericTranslation.js +2 -2
  345. package/node_modules/@sap/cds-compiler/lib/edm/annotations/preprocessAnnotations.js +2 -3
  346. package/node_modules/@sap/cds-compiler/lib/edm/csn2edm.js +1 -1
  347. package/node_modules/@sap/cds-compiler/lib/edm/edm.js +6 -7
  348. package/node_modules/@sap/cds-compiler/lib/edm/edmAnnoPreprocessor.js +1 -1
  349. package/node_modules/@sap/cds-compiler/lib/edm/edmInboundChecks.js +1 -1
  350. package/node_modules/@sap/cds-compiler/lib/edm/edmPreprocessor.js +1 -1
  351. package/node_modules/@sap/cds-compiler/lib/edm/edmUtils.js +12 -7
  352. package/node_modules/@sap/cds-compiler/lib/gen/CdlGrammar.checksum +1 -1
  353. package/node_modules/@sap/cds-compiler/lib/gen/CdlParser.js +15 -15
  354. package/node_modules/@sap/cds-compiler/lib/gen/Dictionary.json +7 -0
  355. package/node_modules/@sap/cds-compiler/lib/json/from-csn.js +30 -30
  356. package/node_modules/@sap/cds-compiler/lib/json/to-csn.js +2 -1
  357. package/node_modules/@sap/cds-compiler/lib/main.js +4 -1
  358. package/node_modules/@sap/cds-compiler/lib/parsers/AstBuildingParser.js +42 -15
  359. package/node_modules/@sap/cds-compiler/lib/render/DuplicateChecker.js +37 -11
  360. package/node_modules/@sap/cds-compiler/lib/render/manageConstraints.js +1 -1
  361. package/node_modules/@sap/cds-compiler/lib/render/toCdl.js +11 -6
  362. package/node_modules/@sap/cds-compiler/lib/render/toRename.js +1 -1
  363. package/node_modules/@sap/cds-compiler/lib/render/toSql.js +74 -24
  364. package/node_modules/@sap/cds-compiler/lib/render/utils/common.js +1 -1
  365. package/node_modules/@sap/cds-compiler/lib/render/utils/operators.js +81 -0
  366. package/node_modules/@sap/cds-compiler/lib/render/utils/sql.js +17 -10
  367. package/node_modules/@sap/cds-compiler/lib/transform/db/assertUnique.js +1 -1
  368. package/node_modules/@sap/cds-compiler/lib/transform/db/associations.js +3 -4
  369. package/node_modules/@sap/cds-compiler/lib/transform/db/assocsToQueries/transformExists.js +1 -1
  370. package/node_modules/@sap/cds-compiler/lib/transform/db/backlinks.js +2 -2
  371. package/node_modules/@sap/cds-compiler/lib/transform/db/cdsPersistence.js +1 -1
  372. package/node_modules/@sap/cds-compiler/lib/transform/db/constraints.js +6 -5
  373. package/node_modules/@sap/cds-compiler/lib/transform/db/expansion.js +7 -1
  374. package/node_modules/@sap/cds-compiler/lib/transform/db/flattening.js +2 -2
  375. package/node_modules/@sap/cds-compiler/lib/{modelCompare/compare.js → transform/db/migration/diffModels.js} +5 -5
  376. package/node_modules/@sap/cds-compiler/lib/{modelCompare/utils/filter.js → transform/db/migration/filterDiff.js} +2 -2
  377. package/node_modules/@sap/cds-compiler/lib/transform/db/processSqlServices.js +1 -1
  378. package/node_modules/@sap/cds-compiler/lib/transform/db/rewriteCalculatedElements.js +1 -1
  379. package/node_modules/@sap/cds-compiler/lib/transform/db/temporal.js +1 -1
  380. package/node_modules/@sap/cds-compiler/lib/transform/db/views.js +2 -6
  381. package/node_modules/@sap/cds-compiler/lib/transform/draft/db.js +1 -1
  382. package/node_modules/@sap/cds-compiler/lib/transform/draft/odata.js +1 -1
  383. package/node_modules/@sap/cds-compiler/lib/transform/effective/annotations.js +1 -1
  384. package/node_modules/@sap/cds-compiler/lib/transform/effective/associations.js +1 -1
  385. package/node_modules/@sap/cds-compiler/lib/transform/effective/flattening.js +1 -1
  386. package/node_modules/@sap/cds-compiler/lib/transform/effective/main.js +3 -2
  387. package/node_modules/@sap/cds-compiler/lib/transform/effective/misc.js +2 -1
  388. package/node_modules/@sap/cds-compiler/lib/transform/effective/queries.js +1 -1
  389. package/node_modules/@sap/cds-compiler/lib/transform/effective/types.js +1 -1
  390. package/node_modules/@sap/cds-compiler/lib/transform/forOdata.js +1 -1
  391. package/node_modules/@sap/cds-compiler/lib/transform/forRelationalDB.js +9 -4
  392. package/node_modules/@sap/cds-compiler/lib/transform/localized.js +1 -1
  393. package/node_modules/@sap/cds-compiler/lib/transform/odata/adaptAnnotationRefs.js +5 -11
  394. package/node_modules/@sap/cds-compiler/lib/transform/odata/createForeignKeys.js +1 -1
  395. package/node_modules/@sap/cds-compiler/lib/transform/odata/flattening.js +4 -4
  396. package/node_modules/@sap/cds-compiler/lib/transform/odata/foreignKeyRefsInXprAnnos.js +5 -3
  397. package/node_modules/@sap/cds-compiler/lib/transform/odata/toFinalBaseType.js +29 -5
  398. package/node_modules/@sap/cds-compiler/lib/transform/odata/typesExposure.js +13 -3
  399. package/node_modules/@sap/cds-compiler/lib/transform/odata/utils.js +9 -0
  400. package/node_modules/@sap/cds-compiler/lib/transform/transformUtils.js +2 -2
  401. package/node_modules/@sap/cds-compiler/lib/transform/translateAssocsToJoins.js +1 -1
  402. package/node_modules/@sap/cds-compiler/lib/transform/tupleExpansion.js +1 -1
  403. package/node_modules/@sap/cds-compiler/lib/transform/universalCsn/coreComputed.js +1 -1
  404. package/node_modules/@sap/cds-compiler/lib/transform/universalCsn/universalCsnEnricher.js +1 -1
  405. package/node_modules/@sap/cds-compiler/lib/transform/universalCsn/utils.js +1 -1
  406. package/node_modules/@sap/cds-compiler/package.json +1 -1
  407. package/node_modules/@sap/cds-mtxs/CHANGELOG.md +55 -0
  408. package/node_modules/@sap/cds-mtxs/bin/cds-mtx-migrate.js +4 -6
  409. package/node_modules/@sap/cds-mtxs/bin/cds-mtx.js +5 -4
  410. package/node_modules/@sap/cds-mtxs/cds-plugin.js +38 -2
  411. package/node_modules/@sap/cds-mtxs/db/t0.cds +7 -0
  412. package/node_modules/@sap/cds-mtxs/lib/utils.js +129 -20
  413. package/node_modules/@sap/cds-mtxs/package.json +15 -14
  414. package/node_modules/@sap/cds-mtxs/srv/cf/abstract-provisioning-service.js +13 -12
  415. package/node_modules/@sap/cds-mtxs/srv/cf/saas-provisioning-service.cds +1 -0
  416. package/node_modules/@sap/cds-mtxs/srv/cf/sms-provisioning-service.cds +1 -0
  417. package/node_modules/@sap/cds-mtxs/srv/extensibility/compat/update.js +5 -2
  418. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/config.js +1 -2
  419. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/csv-allowlist.js +64 -0
  420. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/index.js +4 -2
  421. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/protected-namespace.js +67 -5
  422. package/node_modules/@sap/cds-mtxs/srv/extensibility-service.js +199 -19
  423. package/node_modules/@sap/cds-mtxs/srv/jobs-service.js +39 -15
  424. package/node_modules/@sap/cds-mtxs/srv/plugins/common.js +33 -12
  425. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/ctnr-mgr-base.js +24 -6
  426. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/hdi-ctnr-mgr.js +3 -1
  427. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/hdi-native.js +752 -0
  428. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/serverless.js +17 -20
  429. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/srv-mgr-v2.js +511 -0
  430. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/srv-mgr.js +11 -4
  431. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/tms.js +8 -0
  432. package/node_modules/@sap/cds-mtxs/srv/plugins/hana.js +58 -43
  433. package/node_modules/@sap/cds-mtxs/srv/worker/job-worker-pool.js +1 -1
  434. package/node_modules/@sap/cds-mtxs/srv/worker/job-worker.js +1 -1
  435. package/node_modules/body-parser/README.md +17 -13
  436. package/node_modules/body-parser/lib/read.js +74 -57
  437. package/node_modules/body-parser/lib/types/json.js +11 -11
  438. package/node_modules/body-parser/lib/types/urlencoded.js +5 -5
  439. package/node_modules/body-parser/lib/utils.js +0 -15
  440. package/node_modules/body-parser/package.json +7 -12
  441. package/node_modules/chownr/LICENSE.md +63 -0
  442. package/node_modules/chownr/README.md +3 -0
  443. package/node_modules/chownr/dist/commonjs/index.d.ts +3 -0
  444. package/node_modules/chownr/dist/commonjs/index.d.ts.map +1 -0
  445. package/node_modules/chownr/dist/commonjs/index.js +93 -0
  446. package/node_modules/chownr/dist/commonjs/index.js.map +1 -0
  447. package/node_modules/chownr/dist/commonjs/package.json +3 -0
  448. package/node_modules/chownr/dist/esm/index.d.ts +3 -0
  449. package/node_modules/chownr/dist/esm/index.d.ts.map +1 -0
  450. package/node_modules/chownr/dist/esm/index.js +85 -0
  451. package/node_modules/chownr/dist/esm/index.js.map +1 -0
  452. package/node_modules/chownr/dist/esm/package.json +3 -0
  453. package/node_modules/chownr/package.json +69 -0
  454. package/node_modules/content-disposition/README.md +105 -35
  455. package/node_modules/content-disposition/dist/index.d.ts +72 -0
  456. package/node_modules/content-disposition/dist/index.js +388 -0
  457. package/node_modules/content-disposition/dist/index.js.map +1 -0
  458. package/node_modules/content-disposition/package.json +31 -19
  459. package/node_modules/content-type/README.md +34 -57
  460. package/node_modules/content-type/package.json +35 -25
  461. package/node_modules/encodeurl/README.md +14 -0
  462. package/node_modules/encodeurl/index.js +5 -10
  463. package/node_modules/encodeurl/package.json +10 -6
  464. package/node_modules/express/Readme.md +15 -9
  465. package/node_modules/express/lib/application.js +2 -2
  466. package/node_modules/express/lib/request.js +32 -19
  467. package/node_modules/express/lib/response.js +27 -30
  468. package/node_modules/express/package.json +10 -10
  469. package/node_modules/handlebars/bin/handlebars +1 -1
  470. package/node_modules/handlebars/dist/amd/handlebars/base.js +2 -2
  471. package/node_modules/handlebars/dist/amd/handlebars/compiler/base.js +2 -59
  472. package/node_modules/handlebars/dist/amd/handlebars/compiler/code-gen.js +68 -5
  473. package/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js +160 -19
  474. package/node_modules/handlebars/dist/amd/handlebars/compiler/javascript-compiler.js +23 -7
  475. package/node_modules/handlebars/dist/amd/handlebars/compiler/node-types.js +12 -0
  476. package/node_modules/handlebars/dist/amd/handlebars/compiler/visitor.js +26 -7
  477. package/node_modules/handlebars/dist/amd/handlebars/compiler/whitespace-control.js +9 -4
  478. package/node_modules/handlebars/dist/amd/handlebars/exception.js +8 -4
  479. package/node_modules/handlebars/dist/amd/handlebars/helpers/each.js +40 -14
  480. package/node_modules/handlebars/dist/amd/handlebars/internal/proto-access.js +21 -1
  481. package/node_modules/handlebars/dist/amd/handlebars/runtime.js +24 -4
  482. package/node_modules/handlebars/dist/amd/handlebars/utils.js +4 -3
  483. package/node_modules/handlebars/dist/amd/precompiler.js +13 -7
  484. package/node_modules/handlebars/dist/cjs/handlebars/base.js +2 -2
  485. package/node_modules/handlebars/dist/cjs/handlebars/compiler/base.js +1 -60
  486. package/node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js +64 -4
  487. package/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js +161 -18
  488. package/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js +23 -7
  489. package/node_modules/handlebars/dist/cjs/handlebars/compiler/node-types.js +10 -0
  490. package/node_modules/handlebars/dist/cjs/handlebars/compiler/visitor.js +29 -6
  491. package/node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js +9 -4
  492. package/node_modules/handlebars/dist/cjs/handlebars/exception.js +8 -4
  493. package/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js +40 -14
  494. package/node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js +21 -1
  495. package/node_modules/handlebars/dist/cjs/handlebars/runtime.js +24 -4
  496. package/node_modules/handlebars/dist/cjs/handlebars/utils.js +4 -3
  497. package/node_modules/handlebars/dist/cjs/precompiler.js +14 -6
  498. package/node_modules/handlebars/dist/handlebars.amd.js +401 -130
  499. package/node_modules/handlebars/dist/handlebars.amd.min.js +4 -4
  500. package/node_modules/handlebars/dist/handlebars.js +396 -125
  501. package/node_modules/handlebars/dist/handlebars.min.js +4 -4
  502. package/node_modules/handlebars/dist/handlebars.runtime.amd.js +100 -29
  503. package/node_modules/handlebars/dist/handlebars.runtime.amd.min.js +2 -2
  504. package/node_modules/handlebars/dist/handlebars.runtime.js +94 -23
  505. package/node_modules/handlebars/dist/handlebars.runtime.min.js +2 -2
  506. package/node_modules/handlebars/lib/handlebars/base.js +1 -1
  507. package/node_modules/handlebars/lib/handlebars/compiler/base.js +0 -67
  508. package/node_modules/handlebars/lib/handlebars/compiler/code-gen.js +65 -11
  509. package/node_modules/handlebars/lib/handlebars/compiler/compiler.js +164 -23
  510. package/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js +23 -7
  511. package/node_modules/handlebars/lib/handlebars/compiler/node-types.js +24 -0
  512. package/node_modules/handlebars/lib/handlebars/compiler/visitor.js +29 -5
  513. package/node_modules/handlebars/lib/handlebars/compiler/whitespace-control.js +16 -5
  514. package/node_modules/handlebars/lib/handlebars/exception.js +7 -3
  515. package/node_modules/handlebars/lib/handlebars/helpers/each.js +39 -16
  516. package/node_modules/handlebars/lib/handlebars/internal/proto-access.js +22 -0
  517. package/node_modules/handlebars/lib/handlebars/runtime.js +36 -4
  518. package/node_modules/handlebars/lib/handlebars/utils.js +3 -2
  519. package/node_modules/handlebars/lib/precompiler.js +14 -5
  520. package/node_modules/handlebars/package.json +2 -2
  521. package/node_modules/handlebars/release-notes.md +20 -1
  522. package/node_modules/handlebars/types/index.d.ts +8 -0
  523. package/node_modules/hdb/cfg/VERSION +1 -1
  524. package/node_modules/hdb/lib/Client.js +6 -2
  525. package/node_modules/hdb/lib/protocol/ClientInfo.js +28 -15
  526. package/node_modules/hdb/lib/protocol/Connection.js +30 -3
  527. package/node_modules/hdb/lib/protocol/Writer.js +2 -2
  528. package/node_modules/hdb/lib/protocol/common/ConnectOption.js +2 -0
  529. package/node_modules/hdb/lib/protocol/common/ConnectOptionFlagSet1.js +18 -0
  530. package/node_modules/hdb/lib/protocol/common/ConnectOptionType.js +2 -0
  531. package/node_modules/hdb/lib/protocol/common/Constants.js +1 -0
  532. package/node_modules/hdb/lib/protocol/common/MessageType.js +3 -2
  533. package/node_modules/hdb/lib/protocol/common/PartKind.js +2 -1
  534. package/node_modules/hdb/lib/protocol/common/index.js +1 -0
  535. package/node_modules/hdb/lib/protocol/data/TextList.js +25 -17
  536. package/node_modules/hdb/lib/protocol/data/index.js +1 -0
  537. package/node_modules/hdb/lib/protocol/part/ConnectOptions.js +7 -0
  538. package/node_modules/hdb/lib/protocol/request/index.js +7 -0
  539. package/node_modules/hdb/package.json +1 -2
  540. package/node_modules/livereload-js/.github/workflows/main.yml +4 -4
  541. package/node_modules/livereload-js/README.md +3 -3
  542. package/node_modules/livereload-js/dist/livereload.js +839 -2742
  543. package/node_modules/livereload-js/dist/livereload.min.js +1 -1
  544. package/node_modules/livereload-js/package.json +11 -11
  545. package/node_modules/minipass/LICENSE.md +55 -0
  546. package/node_modules/minipass/README.md +825 -0
  547. package/node_modules/minipass/dist/commonjs/index.d.ts +545 -0
  548. package/node_modules/minipass/dist/commonjs/index.d.ts.map +1 -0
  549. package/node_modules/minipass/dist/commonjs/index.js +1038 -0
  550. package/node_modules/minipass/dist/commonjs/index.js.map +1 -0
  551. package/node_modules/minipass/dist/commonjs/package.json +3 -0
  552. package/node_modules/minipass/dist/esm/index.d.ts +545 -0
  553. package/node_modules/minipass/dist/esm/index.d.ts.map +1 -0
  554. package/node_modules/minipass/dist/esm/index.js +1020 -0
  555. package/node_modules/minipass/dist/esm/index.js.map +1 -0
  556. package/node_modules/minipass/dist/esm/package.json +3 -0
  557. package/node_modules/minipass/package.json +77 -0
  558. package/node_modules/minizlib/LICENSE +26 -0
  559. package/node_modules/minizlib/README.md +64 -0
  560. package/node_modules/minizlib/dist/commonjs/constants.d.ts +2 -0
  561. package/node_modules/minizlib/dist/commonjs/constants.d.ts.map +1 -0
  562. package/node_modules/minizlib/dist/commonjs/constants.js +123 -0
  563. package/node_modules/minizlib/dist/commonjs/constants.js.map +1 -0
  564. package/node_modules/minizlib/dist/commonjs/index.d.ts +99 -0
  565. package/node_modules/minizlib/dist/commonjs/index.d.ts.map +1 -0
  566. package/node_modules/minizlib/dist/commonjs/index.js +416 -0
  567. package/node_modules/minizlib/dist/commonjs/index.js.map +1 -0
  568. package/node_modules/minizlib/dist/commonjs/package.json +3 -0
  569. package/node_modules/minizlib/dist/esm/constants.d.ts +2 -0
  570. package/node_modules/minizlib/dist/esm/constants.d.ts.map +1 -0
  571. package/node_modules/minizlib/dist/esm/constants.js +117 -0
  572. package/node_modules/minizlib/dist/esm/constants.js.map +1 -0
  573. package/node_modules/minizlib/dist/esm/index.d.ts +99 -0
  574. package/node_modules/minizlib/dist/esm/index.d.ts.map +1 -0
  575. package/node_modules/minizlib/dist/esm/index.js +363 -0
  576. package/node_modules/minizlib/dist/esm/index.js.map +1 -0
  577. package/node_modules/minizlib/dist/esm/package.json +3 -0
  578. package/node_modules/minizlib/package.json +80 -0
  579. package/node_modules/on-finished/index.js +14 -2
  580. package/node_modules/on-finished/package.json +11 -7
  581. package/node_modules/qs/.editorconfig +1 -1
  582. package/node_modules/qs/.github/THREAT_MODEL.md +4 -2
  583. package/node_modules/qs/CHANGELOG.md +103 -14
  584. package/node_modules/qs/README.md +90 -9
  585. package/node_modules/qs/dist/qs.js +19 -19
  586. package/node_modules/qs/eslint.config.mjs +61 -50
  587. package/node_modules/qs/lib/formats.js +7 -2
  588. package/node_modules/qs/lib/parse.js +121 -12
  589. package/node_modules/qs/lib/stringify.js +9 -7
  590. package/node_modules/qs/lib/utils.js +158 -15
  591. package/node_modules/qs/package.json +8 -8
  592. package/node_modules/qs/test/parse.js +509 -2
  593. package/node_modules/qs/test/stringify.js +485 -33
  594. package/node_modules/qs/test/utils.js +245 -3
  595. package/node_modules/semver/classes/range.js +2 -2
  596. package/node_modules/semver/internal/constants.js +30 -0
  597. package/node_modules/semver/internal/trim-comparator-whitespace.js +438 -0
  598. package/node_modules/semver/package.json +1 -1
  599. package/node_modules/tar/LICENSE.md +55 -0
  600. package/node_modules/tar/README.md +1233 -0
  601. package/node_modules/tar/dist/commonjs/create.d.ts +3 -0
  602. package/node_modules/tar/dist/commonjs/create.d.ts.map +1 -0
  603. package/node_modules/tar/dist/commonjs/create.js +82 -0
  604. package/node_modules/tar/dist/commonjs/create.js.map +1 -0
  605. package/node_modules/tar/dist/commonjs/cwd-error.d.ts +8 -0
  606. package/node_modules/tar/dist/commonjs/cwd-error.d.ts.map +1 -0
  607. package/node_modules/tar/dist/commonjs/cwd-error.js +18 -0
  608. package/node_modules/tar/dist/commonjs/cwd-error.js.map +1 -0
  609. package/node_modules/tar/dist/commonjs/extract.d.ts +3 -0
  610. package/node_modules/tar/dist/commonjs/extract.d.ts.map +1 -0
  611. package/node_modules/tar/dist/commonjs/extract.js +88 -0
  612. package/node_modules/tar/dist/commonjs/extract.js.map +1 -0
  613. package/node_modules/tar/dist/commonjs/get-write-flag.d.ts +2 -0
  614. package/node_modules/tar/dist/commonjs/get-write-flag.d.ts.map +1 -0
  615. package/node_modules/tar/dist/commonjs/get-write-flag.js +32 -0
  616. package/node_modules/tar/dist/commonjs/get-write-flag.js.map +1 -0
  617. package/node_modules/tar/dist/commonjs/header.d.ts +53 -0
  618. package/node_modules/tar/dist/commonjs/header.d.ts.map +1 -0
  619. package/node_modules/tar/dist/commonjs/header.js +348 -0
  620. package/node_modules/tar/dist/commonjs/header.js.map +1 -0
  621. package/node_modules/tar/dist/commonjs/index.d.ts +20 -0
  622. package/node_modules/tar/dist/commonjs/index.d.ts.map +1 -0
  623. package/node_modules/tar/dist/commonjs/index.js +64 -0
  624. package/node_modules/tar/dist/commonjs/index.js.map +1 -0
  625. package/node_modules/tar/dist/commonjs/index.min.js +4 -0
  626. package/node_modules/tar/dist/commonjs/index.min.js.map +7 -0
  627. package/node_modules/tar/dist/commonjs/large-numbers.d.ts +3 -0
  628. package/node_modules/tar/dist/commonjs/large-numbers.d.ts.map +1 -0
  629. package/node_modules/tar/dist/commonjs/large-numbers.js +99 -0
  630. package/node_modules/tar/dist/commonjs/large-numbers.js.map +1 -0
  631. package/node_modules/tar/dist/commonjs/list.d.ts +7 -0
  632. package/node_modules/tar/dist/commonjs/list.d.ts.map +1 -0
  633. package/node_modules/tar/dist/commonjs/list.js +153 -0
  634. package/node_modules/tar/dist/commonjs/list.js.map +1 -0
  635. package/node_modules/tar/dist/commonjs/make-command.d.ts +49 -0
  636. package/node_modules/tar/dist/commonjs/make-command.d.ts.map +1 -0
  637. package/node_modules/tar/dist/commonjs/make-command.js +52 -0
  638. package/node_modules/tar/dist/commonjs/make-command.js.map +1 -0
  639. package/node_modules/tar/dist/commonjs/mkdir.d.ts +25 -0
  640. package/node_modules/tar/dist/commonjs/mkdir.d.ts.map +1 -0
  641. package/node_modules/tar/dist/commonjs/mkdir.js +187 -0
  642. package/node_modules/tar/dist/commonjs/mkdir.js.map +1 -0
  643. package/node_modules/tar/dist/commonjs/mode-fix.d.ts +2 -0
  644. package/node_modules/tar/dist/commonjs/mode-fix.d.ts.map +1 -0
  645. package/node_modules/tar/dist/commonjs/mode-fix.js +29 -0
  646. package/node_modules/tar/dist/commonjs/mode-fix.js.map +1 -0
  647. package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts +2 -0
  648. package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts.map +1 -0
  649. package/node_modules/tar/dist/commonjs/normalize-unicode.js +38 -0
  650. package/node_modules/tar/dist/commonjs/normalize-unicode.js.map +1 -0
  651. package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts +2 -0
  652. package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts.map +1 -0
  653. package/node_modules/tar/dist/commonjs/normalize-windows-path.js +12 -0
  654. package/node_modules/tar/dist/commonjs/normalize-windows-path.js.map +1 -0
  655. package/node_modules/tar/dist/commonjs/options.d.ts +604 -0
  656. package/node_modules/tar/dist/commonjs/options.d.ts.map +1 -0
  657. package/node_modules/tar/dist/commonjs/options.js +66 -0
  658. package/node_modules/tar/dist/commonjs/options.js.map +1 -0
  659. package/node_modules/tar/dist/commonjs/pack.d.ts +105 -0
  660. package/node_modules/tar/dist/commonjs/pack.d.ts.map +1 -0
  661. package/node_modules/tar/dist/commonjs/pack.js +544 -0
  662. package/node_modules/tar/dist/commonjs/pack.js.map +1 -0
  663. package/node_modules/tar/dist/commonjs/package.json +3 -0
  664. package/node_modules/tar/dist/commonjs/parse.d.ts +92 -0
  665. package/node_modules/tar/dist/commonjs/parse.d.ts.map +1 -0
  666. package/node_modules/tar/dist/commonjs/parse.js +655 -0
  667. package/node_modules/tar/dist/commonjs/parse.js.map +1 -0
  668. package/node_modules/tar/dist/commonjs/path-reservations.d.ts +11 -0
  669. package/node_modules/tar/dist/commonjs/path-reservations.d.ts.map +1 -0
  670. package/node_modules/tar/dist/commonjs/path-reservations.js +170 -0
  671. package/node_modules/tar/dist/commonjs/path-reservations.js.map +1 -0
  672. package/node_modules/tar/dist/commonjs/pax.d.ts +26 -0
  673. package/node_modules/tar/dist/commonjs/pax.d.ts.map +1 -0
  674. package/node_modules/tar/dist/commonjs/pax.js +182 -0
  675. package/node_modules/tar/dist/commonjs/pax.js.map +1 -0
  676. package/node_modules/tar/dist/commonjs/process-umask.d.ts +2 -0
  677. package/node_modules/tar/dist/commonjs/process-umask.d.ts.map +1 -0
  678. package/node_modules/tar/dist/commonjs/process-umask.js +7 -0
  679. package/node_modules/tar/dist/commonjs/process-umask.js.map +1 -0
  680. package/node_modules/tar/dist/commonjs/read-entry.d.ts +36 -0
  681. package/node_modules/tar/dist/commonjs/read-entry.d.ts.map +1 -0
  682. package/node_modules/tar/dist/commonjs/read-entry.js +136 -0
  683. package/node_modules/tar/dist/commonjs/read-entry.js.map +1 -0
  684. package/node_modules/tar/dist/commonjs/replace.d.ts +2 -0
  685. package/node_modules/tar/dist/commonjs/replace.d.ts.map +1 -0
  686. package/node_modules/tar/dist/commonjs/replace.js +227 -0
  687. package/node_modules/tar/dist/commonjs/replace.js.map +1 -0
  688. package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts +2 -0
  689. package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts.map +1 -0
  690. package/node_modules/tar/dist/commonjs/strip-absolute-path.js +29 -0
  691. package/node_modules/tar/dist/commonjs/strip-absolute-path.js.map +1 -0
  692. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts +2 -0
  693. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts.map +1 -0
  694. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +18 -0
  695. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js.map +1 -0
  696. package/node_modules/tar/dist/commonjs/symlink-error.d.ts +9 -0
  697. package/node_modules/tar/dist/commonjs/symlink-error.d.ts.map +1 -0
  698. package/node_modules/tar/dist/commonjs/symlink-error.js +19 -0
  699. package/node_modules/tar/dist/commonjs/symlink-error.js.map +1 -0
  700. package/node_modules/tar/dist/commonjs/types.d.ts +16 -0
  701. package/node_modules/tar/dist/commonjs/types.d.ts.map +1 -0
  702. package/node_modules/tar/dist/commonjs/types.js +70 -0
  703. package/node_modules/tar/dist/commonjs/types.js.map +1 -0
  704. package/node_modules/tar/dist/commonjs/unpack.d.ts +101 -0
  705. package/node_modules/tar/dist/commonjs/unpack.d.ts.map +1 -0
  706. package/node_modules/tar/dist/commonjs/unpack.js +932 -0
  707. package/node_modules/tar/dist/commonjs/unpack.js.map +1 -0
  708. package/node_modules/tar/dist/commonjs/update.d.ts +2 -0
  709. package/node_modules/tar/dist/commonjs/update.d.ts.map +1 -0
  710. package/node_modules/tar/dist/commonjs/update.js +33 -0
  711. package/node_modules/tar/dist/commonjs/update.js.map +1 -0
  712. package/node_modules/tar/dist/commonjs/warn-method.d.ts +24 -0
  713. package/node_modules/tar/dist/commonjs/warn-method.d.ts.map +1 -0
  714. package/node_modules/tar/dist/commonjs/warn-method.js +31 -0
  715. package/node_modules/tar/dist/commonjs/warn-method.js.map +1 -0
  716. package/node_modules/tar/dist/commonjs/winchars.d.ts +3 -0
  717. package/node_modules/tar/dist/commonjs/winchars.d.ts.map +1 -0
  718. package/node_modules/tar/dist/commonjs/winchars.js +14 -0
  719. package/node_modules/tar/dist/commonjs/winchars.js.map +1 -0
  720. package/node_modules/tar/dist/commonjs/write-entry.d.ts +129 -0
  721. package/node_modules/tar/dist/commonjs/write-entry.d.ts.map +1 -0
  722. package/node_modules/tar/dist/commonjs/write-entry.js +698 -0
  723. package/node_modules/tar/dist/commonjs/write-entry.js.map +1 -0
  724. package/node_modules/tar/dist/esm/create.d.ts +3 -0
  725. package/node_modules/tar/dist/esm/create.d.ts.map +1 -0
  726. package/node_modules/tar/dist/esm/create.js +76 -0
  727. package/node_modules/tar/dist/esm/create.js.map +1 -0
  728. package/node_modules/tar/dist/esm/cwd-error.d.ts +8 -0
  729. package/node_modules/tar/dist/esm/cwd-error.d.ts.map +1 -0
  730. package/node_modules/tar/dist/esm/cwd-error.js +14 -0
  731. package/node_modules/tar/dist/esm/cwd-error.js.map +1 -0
  732. package/node_modules/tar/dist/esm/extract.d.ts +3 -0
  733. package/node_modules/tar/dist/esm/extract.d.ts.map +1 -0
  734. package/node_modules/tar/dist/esm/extract.js +49 -0
  735. package/node_modules/tar/dist/esm/extract.js.map +1 -0
  736. package/node_modules/tar/dist/esm/get-write-flag.d.ts +2 -0
  737. package/node_modules/tar/dist/esm/get-write-flag.d.ts.map +1 -0
  738. package/node_modules/tar/dist/esm/get-write-flag.js +26 -0
  739. package/node_modules/tar/dist/esm/get-write-flag.js.map +1 -0
  740. package/node_modules/tar/dist/esm/header.d.ts +53 -0
  741. package/node_modules/tar/dist/esm/header.d.ts.map +1 -0
  742. package/node_modules/tar/dist/esm/header.js +311 -0
  743. package/node_modules/tar/dist/esm/header.js.map +1 -0
  744. package/node_modules/tar/dist/esm/index.d.ts +20 -0
  745. package/node_modules/tar/dist/esm/index.d.ts.map +1 -0
  746. package/node_modules/tar/dist/esm/index.js +20 -0
  747. package/node_modules/tar/dist/esm/index.js.map +1 -0
  748. package/node_modules/tar/dist/esm/index.min.js +4 -0
  749. package/node_modules/tar/dist/esm/index.min.js.map +7 -0
  750. package/node_modules/tar/dist/esm/large-numbers.d.ts +3 -0
  751. package/node_modules/tar/dist/esm/large-numbers.d.ts.map +1 -0
  752. package/node_modules/tar/dist/esm/large-numbers.js +94 -0
  753. package/node_modules/tar/dist/esm/large-numbers.js.map +1 -0
  754. package/node_modules/tar/dist/esm/list.d.ts +7 -0
  755. package/node_modules/tar/dist/esm/list.d.ts.map +1 -0
  756. package/node_modules/tar/dist/esm/list.js +113 -0
  757. package/node_modules/tar/dist/esm/list.js.map +1 -0
  758. package/node_modules/tar/dist/esm/make-command.d.ts +49 -0
  759. package/node_modules/tar/dist/esm/make-command.d.ts.map +1 -0
  760. package/node_modules/tar/dist/esm/make-command.js +48 -0
  761. package/node_modules/tar/dist/esm/make-command.js.map +1 -0
  762. package/node_modules/tar/dist/esm/mkdir.d.ts +25 -0
  763. package/node_modules/tar/dist/esm/mkdir.d.ts.map +1 -0
  764. package/node_modules/tar/dist/esm/mkdir.js +179 -0
  765. package/node_modules/tar/dist/esm/mkdir.js.map +1 -0
  766. package/node_modules/tar/dist/esm/mode-fix.d.ts +2 -0
  767. package/node_modules/tar/dist/esm/mode-fix.d.ts.map +1 -0
  768. package/node_modules/tar/dist/esm/mode-fix.js +25 -0
  769. package/node_modules/tar/dist/esm/mode-fix.js.map +1 -0
  770. package/node_modules/tar/dist/esm/normalize-unicode.d.ts +2 -0
  771. package/node_modules/tar/dist/esm/normalize-unicode.d.ts.map +1 -0
  772. package/node_modules/tar/dist/esm/normalize-unicode.js +34 -0
  773. package/node_modules/tar/dist/esm/normalize-unicode.js.map +1 -0
  774. package/node_modules/tar/dist/esm/normalize-windows-path.d.ts +2 -0
  775. package/node_modules/tar/dist/esm/normalize-windows-path.d.ts.map +1 -0
  776. package/node_modules/tar/dist/esm/normalize-windows-path.js +9 -0
  777. package/node_modules/tar/dist/esm/normalize-windows-path.js.map +1 -0
  778. package/node_modules/tar/dist/esm/options.d.ts +604 -0
  779. package/node_modules/tar/dist/esm/options.d.ts.map +1 -0
  780. package/node_modules/tar/dist/esm/options.js +54 -0
  781. package/node_modules/tar/dist/esm/options.js.map +1 -0
  782. package/node_modules/tar/dist/esm/pack.d.ts +105 -0
  783. package/node_modules/tar/dist/esm/pack.d.ts.map +1 -0
  784. package/node_modules/tar/dist/esm/pack.js +502 -0
  785. package/node_modules/tar/dist/esm/pack.js.map +1 -0
  786. package/node_modules/tar/dist/esm/package.json +3 -0
  787. package/node_modules/tar/dist/esm/parse.d.ts +92 -0
  788. package/node_modules/tar/dist/esm/parse.d.ts.map +1 -0
  789. package/node_modules/tar/dist/esm/parse.js +651 -0
  790. package/node_modules/tar/dist/esm/parse.js.map +1 -0
  791. package/node_modules/tar/dist/esm/path-reservations.d.ts +11 -0
  792. package/node_modules/tar/dist/esm/path-reservations.d.ts.map +1 -0
  793. package/node_modules/tar/dist/esm/path-reservations.js +166 -0
  794. package/node_modules/tar/dist/esm/path-reservations.js.map +1 -0
  795. package/node_modules/tar/dist/esm/pax.d.ts +26 -0
  796. package/node_modules/tar/dist/esm/pax.d.ts.map +1 -0
  797. package/node_modules/tar/dist/esm/pax.js +178 -0
  798. package/node_modules/tar/dist/esm/pax.js.map +1 -0
  799. package/node_modules/tar/dist/esm/process-umask.d.ts +2 -0
  800. package/node_modules/tar/dist/esm/process-umask.d.ts.map +1 -0
  801. package/node_modules/tar/dist/esm/process-umask.js +3 -0
  802. package/node_modules/tar/dist/esm/process-umask.js.map +1 -0
  803. package/node_modules/tar/dist/esm/read-entry.d.ts +36 -0
  804. package/node_modules/tar/dist/esm/read-entry.d.ts.map +1 -0
  805. package/node_modules/tar/dist/esm/read-entry.js +132 -0
  806. package/node_modules/tar/dist/esm/read-entry.js.map +1 -0
  807. package/node_modules/tar/dist/esm/replace.d.ts +2 -0
  808. package/node_modules/tar/dist/esm/replace.d.ts.map +1 -0
  809. package/node_modules/tar/dist/esm/replace.js +221 -0
  810. package/node_modules/tar/dist/esm/replace.js.map +1 -0
  811. package/node_modules/tar/dist/esm/strip-absolute-path.d.ts +2 -0
  812. package/node_modules/tar/dist/esm/strip-absolute-path.d.ts.map +1 -0
  813. package/node_modules/tar/dist/esm/strip-absolute-path.js +25 -0
  814. package/node_modules/tar/dist/esm/strip-absolute-path.js.map +1 -0
  815. package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts +2 -0
  816. package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts.map +1 -0
  817. package/node_modules/tar/dist/esm/strip-trailing-slashes.js +14 -0
  818. package/node_modules/tar/dist/esm/strip-trailing-slashes.js.map +1 -0
  819. package/node_modules/tar/dist/esm/symlink-error.d.ts +9 -0
  820. package/node_modules/tar/dist/esm/symlink-error.d.ts.map +1 -0
  821. package/node_modules/tar/dist/esm/symlink-error.js +15 -0
  822. package/node_modules/tar/dist/esm/symlink-error.js.map +1 -0
  823. package/node_modules/tar/dist/esm/types.d.ts +16 -0
  824. package/node_modules/tar/dist/esm/types.d.ts.map +1 -0
  825. package/node_modules/tar/dist/esm/types.js +65 -0
  826. package/node_modules/tar/dist/esm/types.js.map +1 -0
  827. package/node_modules/tar/dist/esm/unpack.d.ts +101 -0
  828. package/node_modules/tar/dist/esm/unpack.d.ts.map +1 -0
  829. package/node_modules/tar/dist/esm/unpack.js +891 -0
  830. package/node_modules/tar/dist/esm/unpack.js.map +1 -0
  831. package/node_modules/tar/dist/esm/update.d.ts +2 -0
  832. package/node_modules/tar/dist/esm/update.d.ts.map +1 -0
  833. package/node_modules/tar/dist/esm/update.js +30 -0
  834. package/node_modules/tar/dist/esm/update.js.map +1 -0
  835. package/node_modules/tar/dist/esm/warn-method.d.ts +24 -0
  836. package/node_modules/tar/dist/esm/warn-method.d.ts.map +1 -0
  837. package/node_modules/tar/dist/esm/warn-method.js +27 -0
  838. package/node_modules/tar/dist/esm/warn-method.js.map +1 -0
  839. package/node_modules/tar/dist/esm/winchars.d.ts +3 -0
  840. package/node_modules/tar/dist/esm/winchars.d.ts.map +1 -0
  841. package/node_modules/tar/dist/esm/winchars.js +9 -0
  842. package/node_modules/tar/dist/esm/winchars.js.map +1 -0
  843. package/node_modules/tar/dist/esm/write-entry.d.ts +129 -0
  844. package/node_modules/tar/dist/esm/write-entry.d.ts.map +1 -0
  845. package/node_modules/tar/dist/esm/write-entry.js +656 -0
  846. package/node_modules/tar/dist/esm/write-entry.js.map +1 -0
  847. package/node_modules/tar/package.json +298 -0
  848. package/node_modules/ws/README.md +21 -29
  849. package/node_modules/ws/lib/buffer-util.js +13 -2
  850. package/node_modules/ws/lib/sender.js +4 -1
  851. package/node_modules/ws/lib/websocket.js +25 -6
  852. package/node_modules/ws/package.json +1 -1
  853. package/node_modules/yallist/LICENSE.md +63 -0
  854. package/node_modules/yallist/README.md +205 -0
  855. package/node_modules/yallist/dist/commonjs/index.d.ts +39 -0
  856. package/node_modules/yallist/dist/commonjs/index.d.ts.map +1 -0
  857. package/node_modules/yallist/dist/commonjs/index.js +384 -0
  858. package/node_modules/yallist/dist/commonjs/index.js.map +1 -0
  859. package/node_modules/yallist/dist/commonjs/package.json +3 -0
  860. package/node_modules/yallist/dist/esm/index.d.ts +39 -0
  861. package/node_modules/yallist/dist/esm/index.d.ts.map +1 -0
  862. package/node_modules/yallist/dist/esm/index.js +379 -0
  863. package/node_modules/yallist/dist/esm/index.js.map +1 -0
  864. package/node_modules/yallist/dist/esm/package.json +3 -0
  865. package/node_modules/yallist/package.json +68 -0
  866. package/package.json +7 -1
  867. package/bin/completion/templates/cds-tmpl.fish +0 -65
  868. package/bin/completion/templates/cds-tmpl.ps1 +0 -217
  869. package/bin/completion/templates/cds-tmpl.sh +0 -93
  870. package/bin/completion/templates/cds-tmpl.zsh +0 -74
  871. package/node_modules/@cap-js/db-service/lib/recursion-guard.js +0 -40
  872. package/node_modules/@sap/cds/lib/env/cds-requires.js +0 -327
  873. package/node_modules/@sap/cds-mtxs/srv/bootstrap.cds +0 -2
  874. package/node_modules/@sap/cds-mtxs/srv/bootstrap.js +0 -33
  875. package/node_modules/body-parser/node_modules/content-type/LICENSE +0 -22
  876. package/node_modules/body-parser/node_modules/content-type/README.md +0 -71
  877. package/node_modules/body-parser/node_modules/content-type/package.json +0 -52
  878. package/node_modules/content-disposition/index.js +0 -536
  879. package/node_modules/content-type/HISTORY.md +0 -29
  880. package/node_modules/content-type/index.js +0 -225
  881. package/node_modules/negotiator/node_modules/content-type/LICENSE +0 -22
  882. package/node_modules/negotiator/node_modules/content-type/README.md +0 -71
  883. package/node_modules/negotiator/node_modules/content-type/dist/index.d.ts +0 -46
  884. package/node_modules/negotiator/node_modules/content-type/dist/index.js +0 -176
  885. package/node_modules/negotiator/node_modules/content-type/dist/index.js.map +0 -1
  886. package/node_modules/negotiator/node_modules/content-type/package.json +0 -52
  887. package/node_modules/on-finished/HISTORY.md +0 -98
  888. package/node_modules/type-is/node_modules/content-type/LICENSE +0 -22
  889. package/node_modules/type-is/node_modules/content-type/README.md +0 -71
  890. package/node_modules/type-is/node_modules/content-type/dist/index.d.ts +0 -46
  891. package/node_modules/type-is/node_modules/content-type/dist/index.js +0 -176
  892. package/node_modules/type-is/node_modules/content-type/dist/index.js.map +0 -1
  893. package/node_modules/type-is/node_modules/content-type/package.json +0 -52
  894. /package/lib/init/template/vue/files/src/{main.js → main.{{extension}}.hbs} +0 -0
  895. /package/{lib/import/openapi → node_modules/@cap-js/openapi/lib/import}/utilities.js +0 -0
  896. /package/node_modules/{body-parser/node_modules/content-type → content-type}/dist/index.d.ts +0 -0
  897. /package/node_modules/{body-parser/node_modules/content-type → content-type}/dist/index.js +0 -0
  898. /package/node_modules/{body-parser/node_modules/content-type → content-type}/dist/index.js.map +0 -0
@@ -195,6 +195,22 @@ const _cleanUpOldDrafts = (service, tenant) => {
195
195
  if (lastCheck && Date.now() - lastCheck < Number(interval)) return
196
196
 
197
197
  cds.spawn({ tenant, user: cds.User.privileged }, async () => {
198
+ //> Clean up orphaned drafts (drafts without DraftAdministrativeData)
199
+ if (cds.env.fiori.draft_orphan_cleanup) {
200
+ const orphanCleanups = []
201
+ for (const name in service.model.definitions) {
202
+ const target = service.model.definitions[name]
203
+ if (target.drafts) {
204
+ orphanCleanups.push(
205
+ DELETE.from(target.drafts).where({
206
+ DraftAdministrativeData_DraftUUID: { 'not in': SELECT('DraftUUID').from('DRAFT.DraftAdministrativeData') }
207
+ }).then(orphans => orphans > 0 && LOG.warn(`Cleaned up ${orphans} orphaned drafts from ${target.drafts.name}`))
208
+ )
209
+ }
210
+ }
211
+ await Promise.allSettled(orphanCleanups)
212
+ }
213
+
198
214
  const expiredDrafts = await SELECT.from('DRAFT.DraftAdministrativeData', ['DraftUUID']).where(
199
215
  `LastChangeDateTime <`,
200
216
  expiryDate
@@ -223,7 +239,7 @@ const _cleanUpOldDrafts = (service, tenant) => {
223
239
  for (let i = 0; i < draftRoots.length; i++) {
224
240
  const ids = draftRootIds[i]
225
241
  if (!ids.length) continue
226
- const srv = await cds.connect.to(draftRoots[i]._service.name).catch(() => {})
242
+ const srv = await cds.connect.to(draftRoots[i]._service.name).catch(() => { })
227
243
  if (!srv) continue // srv might not be loaded
228
244
  for (const idObj of ids) {
229
245
  promises.push(srv.send({ event: 'CANCEL', query: DELETE.from(draftRoots[i], idObj), data: idObj }))
@@ -1031,10 +1047,14 @@ const draftHandle = async function (req) {
1031
1047
  }
1032
1048
 
1033
1049
  // Delete draft artefacts
1034
- await _promiseAll([
1035
- DELETE.from({ ref: draftRef }).where(query.SELECT.where),
1036
- DELETE.from('DRAFT.DraftAdministrativeData').where({ DraftUUID: DraftAdministrativeData_DraftUUID })
1037
- ])
1050
+ if (cds.env.fiori.draft_admin_integrity) {
1051
+ await DELETE.from('DRAFT.DraftAdministrativeData').where({ DraftUUID: DraftAdministrativeData_DraftUUID })
1052
+ } else {
1053
+ await _promiseAll([
1054
+ DELETE.from({ ref: draftRef }).where(query.SELECT.where),
1055
+ DELETE.from('DRAFT.DraftAdministrativeData').where({ DraftUUID: DraftAdministrativeData_DraftUUID })
1056
+ ])
1057
+ }
1038
1058
 
1039
1059
  if (req.res) {
1040
1060
  // status code must be set in handler to allow overriding for FE V2
@@ -1352,6 +1372,7 @@ const Read = {
1352
1372
  LOG.debug('List Editing Status: Own Draft')
1353
1373
 
1354
1374
  if (!query._drafts) cds.error({ status: 400, message: 'INVALID_DRAFT_REQUEST' }) // only via drafts
1375
+ if (query.SELECT.groupBy) cds.error({status: 400, message: '$groupby is not supported for drafts'})
1355
1376
 
1356
1377
  // read active from draft
1357
1378
  if (!query._drafts._target?.name.endsWith('.drafts')) {
@@ -1369,13 +1390,16 @@ const Read = {
1369
1390
  return result
1370
1391
  }
1371
1392
 
1393
+ let innerQuery = query._drafts
1394
+ while (innerQuery.SELECT.from.SELECT) innerQuery = innerQuery.SELECT.from
1395
+
1372
1396
  const selectedColumnNames = query._drafts.SELECT.columns?.map(c => c.ref?.[0] || c) || ['*']
1373
1397
  const isAllKeysSelected =
1374
1398
  selectedColumnNames.includes('*') ||
1375
1399
  Object.keys(query._drafts._target.keys).every(k => selectedColumnNames.includes(k))
1376
1400
 
1377
1401
  let txModel
1378
- if (IS_PERSISTED_DRAFT_MESSAGES_ENABLED && isAllKeysSelected) {
1402
+ if (IS_PERSISTED_DRAFT_MESSAGES_ENABLED && isAllKeysSelected && !innerQuery.SELECT.groupBy) {
1379
1403
  // Replace selection of 'DraftMessages' with the proper path expression
1380
1404
 
1381
1405
  query._drafts.SELECT.columns = [
@@ -1386,13 +1410,9 @@ const Read = {
1386
1410
  txModel = cds.context.tx.model
1387
1411
  }
1388
1412
 
1389
- const draftsQuery = query._drafts.where(
1390
- { ref: ['DraftAdministrativeData', 'InProcessByUser'] },
1391
- '=',
1392
- cds.context.user.id
1393
- )
1413
+ innerQuery.where({ ref: ['DraftAdministrativeData', 'InProcessByUser'] }, '=', cds.context.user.id)
1394
1414
 
1395
- const drafts = await run(draftsQuery)
1415
+ const drafts = await run(query._drafts)
1396
1416
  Read.merge(query._target, drafts, [], row => {
1397
1417
  Object.assign(row, {
1398
1418
  HasDraftEntity: false
@@ -1403,8 +1423,10 @@ const Read = {
1403
1423
  // Based on the query for own drafts, compile the ref of a query matching
1404
1424
  // the format produced by cds.odata.parse to compare against message prefixes
1405
1425
 
1406
- const queryRootEntity = txModel.definitions[draftsQuery.SELECT.from.ref[0].id || draftsQuery.SELECT.from.ref[0]]
1407
- const queryPrefixRef = _extractPrefixRef(draftsQuery.SELECT.from.ref, queryRootEntity)
1426
+ const querySubjectRef = innerQuery.SELECT.from.ref
1427
+
1428
+ const queryRootEntity = txModel.definitions[querySubjectRef[0].id || querySubjectRef[0]]
1429
+ const queryPrefixRef = _extractPrefixRef(querySubjectRef, queryRootEntity)
1408
1430
 
1409
1431
  if (queryPrefixRef.length > 1) {
1410
1432
  let targetRef = queryPrefixRef[queryPrefixRef.length - 1]
@@ -1416,8 +1438,8 @@ const Read = {
1416
1438
  // This repliactes the strucutally equivalent logic from _compileUpdatedDraftMessages
1417
1439
  // > This is necessary to enable filtering for messages realted to a newly created entity
1418
1440
  // > Since readAfterRide will put key info into a filter rather than into the path
1419
- for (const k in draftsQuery._target.actives.keys) {
1420
- const key = draftsQuery._target.actives.keys[k]
1441
+ for (const k in query._drafts._target.actives.keys) {
1442
+ const key = query._drafts._target.actives.keys[k]
1421
1443
  let v = row[key.name]
1422
1444
  if (v === undefined)
1423
1445
  if (key.name === 'IsActiveEntity') v = false
@@ -1489,19 +1511,21 @@ const Read = {
1489
1511
  const getOrderByColumns = columns => {
1490
1512
  const selectAll = columns === undefined || columns.includes('*')
1491
1513
  const queryColumns = !selectAll && columns && columns.map(column => column.as || column?.ref?.[0]).filter(c => c)
1492
- const newColumns = []
1514
+ const newColumns = new Map()
1493
1515
 
1494
1516
  for (const column of orderByExpr) {
1517
+ const alias = column.ref.join('_')
1518
+ if (newColumns.has(alias)) continue
1495
1519
  if (selectAll || !queryColumns.includes(column.ref.join('_'))) {
1496
1520
  if (column.ref.length === 1 && selectAll) continue
1497
1521
  const columnClone = { ...column }
1498
1522
  delete columnClone.sort
1499
- columnClone.as = columnClone.ref.join('_')
1500
- newColumns.push(columnClone)
1523
+ columnClone.as = alias
1524
+ newColumns.set(alias, columnClone)
1501
1525
  }
1502
1526
  }
1503
1527
 
1504
- return newColumns
1528
+ return [...newColumns.values()]
1505
1529
  }
1506
1530
 
1507
1531
  let orderByDraftColumns
@@ -1617,29 +1641,29 @@ const Read = {
1617
1641
 
1618
1642
  const getSortFn =
1619
1643
  (index = 0) =>
1620
- (entityA, entityB) => {
1621
- const orderBy = orderByExpr[index]
1622
- const elementName = elementNamesToSort[index]
1623
- const collator = collatorMap.get(elementName)
1624
- const valueA = entityA[elementName]
1625
- const valueB = entityB[elementName]
1626
-
1627
- if (valueA == null && valueB == null) {
1628
- // continue to next sort criterion
1629
- if (index + 1 < orderByExpr.length) return getSortFn(index + 1)(entityA, entityB)
1630
- return 0
1631
- }
1644
+ (entityA, entityB) => {
1645
+ const orderBy = orderByExpr[index]
1646
+ const elementName = elementNamesToSort[index]
1647
+ const collator = collatorMap.get(elementName)
1648
+ const valueA = entityA[elementName]
1649
+ const valueB = entityB[elementName]
1650
+
1651
+ if (valueA == null && valueB == null) {
1652
+ // continue to next sort criterion
1653
+ if (index + 1 < orderByExpr.length) return getSortFn(index + 1)(entityA, entityB)
1654
+ return 0
1655
+ }
1632
1656
 
1633
- const nullsFirst = orderBy.nulls ? orderBy.nulls.toLowerCase() === 'first' : orderBy.sort === 'asc'
1634
- if (valueA == null) return nullsFirst ? -1 : 1
1635
- if (valueB == null) return nullsFirst ? 1 : -1
1657
+ const nullsFirst = orderBy.nulls ? orderBy.nulls.toLowerCase() === 'first' : orderBy.sort === 'asc'
1658
+ if (valueA == null) return nullsFirst ? -1 : 1
1659
+ if (valueB == null) return nullsFirst ? 1 : -1
1636
1660
 
1637
- const diff = collator.compare(valueA, valueB)
1661
+ const diff = collator.compare(valueA, valueB)
1638
1662
 
1639
- if (diff === 0 && index + 1 < orderByExpr.length) return getSortFn(index + 1)(entityA, entityB)
1640
- if (orderBy.sort === 'desc') return diff * -1
1641
- return diff
1642
- }
1663
+ if (diff === 0 && index + 1 < orderByExpr.length) return getSortFn(index + 1)(entityA, entityB)
1664
+ if (orderBy.sort === 'desc') return diff * -1
1665
+ return diff
1666
+ }
1643
1667
 
1644
1668
  resultSet.sort(getSortFn())
1645
1669
  }
@@ -1660,8 +1684,8 @@ const Read = {
1660
1684
 
1661
1685
  const additionalCols = draftsQuery.SELECT.columns
1662
1686
  ? draftsQuery.SELECT.columns.filter(
1663
- c => c.ref && ['DraftAdministrativeData', 'DraftAdministrativeData_DraftUUID'].includes(c.ref[0])
1664
- )
1687
+ c => c.ref && ['DraftAdministrativeData', 'DraftAdministrativeData_DraftUUID'].includes(c.ref[0])
1688
+ )
1665
1689
  : [{ ref: ['DraftAdministrativeData_DraftUUID'] }]
1666
1690
  draftsQuery.SELECT.columns = _entityKeys(query._target)
1667
1691
  .map(k => ({ ref: [k] }))
@@ -1941,6 +1965,7 @@ function _cleansed(query, model) {
1941
1965
  if (target.drafts && cqn.where) cqn.where = _cleanseWhere(cqn.where, draftParams, DRAFT_ELEMENTS)
1942
1966
  if (target.drafts && cqn.orderBy) cqn.orderBy = _cleanseCols(cqn.orderBy, DRAFT_ELEMENTS, target) // allowed to reuse
1943
1967
  if (cqn.columns) cqn.columns = _cleanseCols(cqn.columns, DRAFT_ELEMENTS, target)
1968
+
1944
1969
  return q
1945
1970
  }
1946
1971
 
@@ -2015,13 +2040,16 @@ function _cleansed(query, model) {
2015
2040
 
2016
2041
  function _cleanseWhere(xpr, draftParams, ignoredElements) {
2017
2042
  const cleansed = []
2043
+
2018
2044
  for (let i = 0; i < xpr.length; ++i) {
2019
2045
  let x = xpr[i]
2020
- const e = x.ref?.[0]
2021
- if (ignoredElements.has(e) && !xpr[i + 2]) {
2046
+
2047
+ const xprElement = x.ref?.[0]
2048
+ if (ignoredElements.has(xprElement) && !xpr[i + 2]) {
2022
2049
  continue
2023
2050
  }
2024
- if (ignoredElements.has(e) && xpr[i + 2]) {
2051
+
2052
+ if (ignoredElements.has(xprElement) && xpr[i + 2]) {
2025
2053
  let { val } = xpr[i + 2]
2026
2054
  const param = x.ref.join('_')
2027
2055
  // outer-most parameters win
@@ -2032,6 +2060,7 @@ function _cleansed(query, model) {
2032
2060
  if (last === 'and' || last === 'or') cleansed.pop()
2033
2061
  continue
2034
2062
  }
2063
+
2035
2064
  if (x.xpr) {
2036
2065
  x = { xpr: _cleanseWhere(x.xpr, draftParams, ignoredElements) }
2037
2066
  if (!x.xpr) {
@@ -2039,8 +2068,10 @@ function _cleansed(query, model) {
2039
2068
  continue
2040
2069
  }
2041
2070
  }
2071
+
2042
2072
  cleansed.push(x)
2043
2073
  }
2074
+
2044
2075
  const first = cleansed[0]
2045
2076
  if (first === 'and' || first === 'or') cleansed.shift()
2046
2077
  const last = cleansed[cleansed.length - 1]
@@ -2169,24 +2200,24 @@ async function onNew(req, next) {
2169
2200
 
2170
2201
  const adminDataCQN = isDirectAccess
2171
2202
  ? INSERT.into('DRAFT.DraftAdministrativeData').entries({
2172
- DraftUUID,
2173
- CreationDateTime: timestamp,
2174
- CreatedByUser: req.user.id,
2175
- LastChangeDateTime: timestamp,
2176
- LastChangedByUser: req.user.id,
2177
- DraftIsCreatedByMe: true, // Dummy values
2178
- DraftIsProcessedByMe: true, // Dummy values
2203
+ DraftUUID,
2204
+ CreationDateTime: timestamp,
2205
+ CreatedByUser: req.user.id,
2206
+ LastChangeDateTime: timestamp,
2207
+ LastChangedByUser: req.user.id,
2208
+ DraftIsCreatedByMe: true, // Dummy values
2209
+ DraftIsProcessedByMe: true, // Dummy values
2210
+ InProcessByUser: req.user.id,
2211
+ ...(IS_PERSISTED_DRAFT_MESSAGES_ENABLED ? { DraftMessages: nextDraftMessages } : {})
2212
+ })
2213
+ : UPDATE('DRAFT.DraftAdministrativeData')
2214
+ .data({
2179
2215
  InProcessByUser: req.user.id,
2216
+ LastChangedByUser: req.user.id,
2217
+ LastChangeDateTime: timestamp,
2180
2218
  ...(IS_PERSISTED_DRAFT_MESSAGES_ENABLED ? { DraftMessages: nextDraftMessages } : {})
2181
2219
  })
2182
- : UPDATE('DRAFT.DraftAdministrativeData')
2183
- .data({
2184
- InProcessByUser: req.user.id,
2185
- LastChangedByUser: req.user.id,
2186
- LastChangeDateTime: timestamp,
2187
- ...(IS_PERSISTED_DRAFT_MESSAGES_ENABLED ? { DraftMessages: nextDraftMessages } : {})
2188
- })
2189
- .where({ DraftUUID })
2220
+ .where({ DraftUUID })
2190
2221
 
2191
2222
  await adminDataCQN
2192
2223
 
@@ -2278,15 +2309,15 @@ async function onEdit(req, next) {
2278
2309
  transition.mapping.size === 0
2279
2310
  ? rootWhere
2280
2311
  : (() => {
2281
- const whereKeys = Object.keys(rootWhere)
2282
- const w = {}
2283
- whereKeys.forEach(key => {
2284
- const mappedKey = transition.mapping.get(key)
2285
- const lockKey = mappedKey ? mappedKey.ref[0] : key
2286
- w[lockKey] = rootWhere[key]
2287
- })
2288
- return w
2289
- })()
2312
+ const whereKeys = Object.keys(rootWhere)
2313
+ const w = {}
2314
+ whereKeys.forEach(key => {
2315
+ const mappedKey = transition.mapping.get(key)
2316
+ const lockKey = mappedKey ? mappedKey.ref[0] : key
2317
+ w[lockKey] = rootWhere[key]
2318
+ })
2319
+ return w
2320
+ })()
2290
2321
 
2291
2322
  const activeLockCQN = SELECT.from(lockTarget, [1]).where(lockWhere).forUpdate({ wait: 0 })
2292
2323
  activeLockCQN.SELECT.localized = false
@@ -2305,7 +2336,7 @@ async function onEdit(req, next) {
2305
2336
  existingDraft
2306
2337
  ]
2307
2338
 
2308
- ;[res, draft] = await _promiseAll(cqns)
2339
+ ;[res, draft] = await _promiseAll(cqns)
2309
2340
  } else {
2310
2341
  const activeLockCQN = SELECT.from({ ref: req.query.SELECT.from.ref }, [1]).forUpdate({ wait: 0 })
2311
2342
  activeLockCQN.SELECT.localized = false
@@ -2411,21 +2442,29 @@ async function onCancel(req, next) {
2411
2442
  if (!cds.context.user._is_privileged && processByUser && processByUser !== cds.context.user.id)
2412
2443
  cds.error({ status: 403, message: 'DRAFT_LOCKED_BY_ANOTHER_USER', args: [processByUser] })
2413
2444
 
2414
- const deleteQuery = DELETE.from({ ref: req.query.DELETE.from.ref })
2415
- const deleteReq = _newReq(req, deleteQuery, draftParams, {})
2416
- const queries = [this.dispatch(deleteReq)]
2417
-
2418
2445
  if (req.target['@Common.DraftRoot.ActivationAction']) {
2419
2446
  // The root entity is being deleted and draft admin data can be deleted
2420
2447
 
2421
- queries.push(
2422
- DELETE.from('DRAFT.DraftAdministrativeData').where({
2448
+ if (cds.env.fiori.draft_admin_integrity) {
2449
+ await DELETE.from('DRAFT.DraftAdministrativeData').where({
2423
2450
  DraftUUID: draft.DraftAdministrativeData_DraftUUID
2424
2451
  })
2425
- )
2452
+ } else {
2453
+ const deleteQuery = DELETE.from({ ref: req.query.DELETE.from.ref })
2454
+ const deleteReq = _newReq(req, deleteQuery, draftParams, {})
2455
+ await _promiseAll([
2456
+ this.dispatch(deleteReq),
2457
+ DELETE.from('DRAFT.DraftAdministrativeData').where({
2458
+ DraftUUID: draft.DraftAdministrativeData_DraftUUID
2459
+ })
2460
+ ])
2461
+ }
2426
2462
  } else {
2427
2463
  // A child entity is being deleted and draft admin data must be updated
2428
2464
 
2465
+ const deleteQuery = DELETE.from({ ref: req.query.DELETE.from.ref })
2466
+ const deleteReq = _newReq(req, deleteQuery, draftParams, {})
2467
+
2429
2468
  const nextDraftAdminData = {
2430
2469
  InProcessByUser: cds.context.user.id,
2431
2470
  LastChangedByUser: cds.context.user.id,
@@ -2463,11 +2502,9 @@ async function onCancel(req, next) {
2463
2502
  .data(nextDraftAdminData)
2464
2503
  .where({ DraftUUID: draft.DraftAdministrativeData_DraftUUID })
2465
2504
 
2466
- queries.push(updateDraftAdminDataQuery)
2505
+ await _promiseAll([this.dispatch(deleteReq), updateDraftAdminDataQuery])
2467
2506
  }
2468
2507
 
2469
- await _promiseAll(queries)
2470
-
2471
2508
  return Object.assign([], { affected: 1 })
2472
2509
  }
2473
2510
 
@@ -2594,11 +2631,11 @@ module.exports = cds.service.impl(function () {
2594
2631
  this.handle = !cds.env.features.legacy_srv_results
2595
2632
  ? draftHandle
2596
2633
  : async function (req) {
2597
- if (req.protocol?.match(/odata/) && req.event in { NEW: 1 }) req._.readAfterWrite = true
2634
+ if (req.protocol?.match(/odata/) && req.event in { NEW: 1 }) req._.readAfterWrite = true
2598
2635
 
2599
- const res = await draftHandle.call(this, req)
2600
- return Array.isArray(res) && 'affected' in res ? req.data : res
2601
- }
2636
+ const res = await draftHandle.call(this, req)
2637
+ return Array.isArray(res) && 'affected' in res ? req.data : res
2638
+ }
2602
2639
 
2603
2640
  // NOTE: These handler registrations MUST use inline functions
2604
2641
  // NOTE: > Arrow functions or functions bound with `.bind` will
@@ -9,7 +9,30 @@ const authorizedRequest = ({ method, uri, path, oa2, tenant, dataObj, headers, t
9
9
  tokenStore = tokenStore[tenant]
10
10
  }
11
11
  return new Promise((resolve, reject) => {
12
- if (LOG._debug) LOG.debug({ method, uri, path, oa2, tenant, dataObj, headers, tokenStore })
12
+ if (LOG._debug) {
13
+ const safeHeaders =
14
+ headers &&
15
+ Object.fromEntries(
16
+ Object.entries(headers).map(([k, v]) => [
17
+ k,
18
+ /^authorization$/i.test(k) ? String(v).split(' ')[0] + ' ...' : v
19
+ ])
20
+ )
21
+ // redacted() masks oa2.secret and mTLS cert/key by field name, but its key regex
22
+ // covers neither the bearer token in tokenStore nor the Authorization header.
23
+ LOG.debug(
24
+ cds.utils.redacted({
25
+ method,
26
+ uri,
27
+ path,
28
+ oa2,
29
+ tenant,
30
+ dataObj,
31
+ headers: safeHeaders,
32
+ tokenStore: tokenStore && { token: tokenStore.token ? '...' : undefined, expires_in: tokenStore.expires_in }
33
+ })
34
+ )
35
+ }
13
36
  ;((tokenStore.token && Promise.resolve(tokenStore.token)) || requestToken(oa2, tenant, tokenStore))
14
37
  .catch(err => reject(err))
15
38
  .then(token => {
@@ -10,45 +10,24 @@ const connect = (client, LOG, keepAlive) => {
10
10
  return new Promise((resolve, reject) => {
11
11
  _rmHandlers(client)
12
12
 
13
- client
14
- .once('connected', function () {
15
- _rmHandlers(client)
16
-
17
- // It's important to _always_ keep an error listener,
18
- // otherwise it will throw and crash the server
19
- client.on('error', err => LOG(err?.message))
20
-
21
- if (keepAlive) {
22
- client.on('disconnected', () => {
23
- let connected = false
24
- client.once('connected', () => {
25
- LOG('Reconnected')
26
- connected = true
27
- })
28
- let x = 1
29
- const _untilConnected = async () => {
30
- if (!connected) {
31
- LOG('Reconnecting')
32
- try {
33
- client.connect()
34
- } catch {
35
- // we try again...
36
- }
37
- setTimeout(_untilConnected, waitingTime(x++)).unref()
38
- }
39
- }
40
- _untilConnected()
41
- })
42
- }
43
-
44
- resolve(client)
45
- })
46
- .once('error', err => {
47
- _rmHandlers(client)
48
- const e = new Error('Connection error')
49
- e.cause = err
50
- reject(e)
51
- })
13
+ client.once('connected', function () {
14
+ _rmHandlers(client)
15
+
16
+ // It's important to _always_ keep an error listener,
17
+ // otherwise it will throw and crash the server
18
+ client.on('error', err => LOG(err?.message))
19
+
20
+ if (keepAlive) client.once('disconnected', reconnect(client, LOG))
21
+
22
+ resolve(client)
23
+ })
24
+
25
+ client.once('error', err => {
26
+ _rmHandlers(client)
27
+ const e = new Error('Connection error')
28
+ e.cause = err
29
+ reject(e)
30
+ })
52
31
 
53
32
  try {
54
33
  client.connect()
@@ -58,6 +37,33 @@ const connect = (client, LOG, keepAlive) => {
58
37
  })
59
38
  }
60
39
 
40
+ const reconnect = (client, LOG) => () => {
41
+ let connected = false
42
+
43
+ client.once('connected', () => {
44
+ LOG('Reconnected')
45
+ connected = true
46
+ client.once('disconnected', reconnect(client, LOG))
47
+ })
48
+
49
+ let retries = 1
50
+ const _untilConnected = async () => {
51
+ if (!connected) {
52
+ LOG('Reconnecting')
53
+
54
+ try {
55
+ client.connect()
56
+ } catch {
57
+ // we try again ...
58
+ }
59
+
60
+ setTimeout(_untilConnected, waitingTime(retries++)).unref()
61
+ }
62
+ }
63
+
64
+ _untilConnected()
65
+ }
66
+
61
67
  const disconnect = client => {
62
68
  return new Promise((resolve, reject) => {
63
69
  _rmHandlers(client)
@@ -237,7 +237,7 @@ class RemoteService extends cds.Service {
237
237
  const requestConfig = extractRequestConfig(req, this)
238
238
  requestConfig.headers = _getHeaders(requestConfig.headers, req)
239
239
 
240
- if (this.kind === 'hcql' && req.iterator && !req.objectMode)
240
+ if (this.kind === 'hcql' && (query?.SELECT?.stream || req.iterator && !req.objectMode))
241
241
  requestConfig.headers.accept = 'application/octet-stream,application/json'
242
242
 
243
243
  // REVISIT: we should not have to set the content-type at all for that
@@ -247,7 +247,7 @@ class RemoteService extends cds.Service {
247
247
  // Ensure request correlation (even with systems that use x-correlationid)
248
248
  const correlationId = requestConfig.headers['x-correlation-id'] || cds.context?.id
249
249
  requestConfig.headers['x-correlation-id'] = correlationId
250
- requestConfig.headers['x-correlationid'] = correlationId
250
+ requestConfig.headers['x-correlationid'] = correlationId // REVISIT
251
251
 
252
252
  // Compile Cloud SDK options
253
253
  const additionalOptions = {
@@ -202,7 +202,7 @@ module.exports.run = async (requestConfig, options) => {
202
202
  response = await _executeHttpRequest({ requestConfig, destination, destinationOptions, jwt })
203
203
  } catch (e) {
204
204
  // for hcql, do not wrap error into a generic 502 error
205
- if (options.kind === 'hcql') {
205
+ if (options.kind === 'hcql' && e.response?.data) {
206
206
  const { errors } = e.response.data
207
207
  if (errors) {
208
208
  const error =
@@ -278,7 +278,8 @@ module.exports.run = async (requestConfig, options) => {
278
278
 
279
279
  if (kind === 'hcql') {
280
280
  if (response.headers?.['content-type']?.includes('application/octet-stream')) return response.data
281
- let { data = [], affected, $count } = response.data
281
+ let { data, errors, affected, $count } = response.data
282
+ if (!data && !errors) return response.data
282
283
  if (affected !== undefined) data.affected = affected
283
284
  if ($count == null && response.headers['x-total-count']) $count = Number(response.headers['x-total-count'])
284
285
  if ($count !== undefined) data.$count = $count
@@ -66,9 +66,11 @@ const _createODataRequestConfig = (query, data, target, srvKind) => {
66
66
  url: encodeURI(_formatPath(cleanQuery.substring(blankIndex, cleanQuery.length).trim()))
67
67
  }
68
68
 
69
- if (data && requestConfig.method !== 'GET' && requestConfig.method !== 'HEAD') {
70
- requestConfig.data = srvKind === 'odata-v2' ? Object.assign({}, convertV2PayloadData(data, target)) : data
71
- }
69
+ if (!data || requestConfig.method === 'GET' || requestConfig.method === 'HEAD') return requestConfig
70
+
71
+ if (srvKind === 'odata-v2' && !(data instanceof Readable) && !(data instanceof Buffer))
72
+ requestConfig.data = convertV2PayloadData(data, target)
73
+ else requestConfig.data = data
72
74
 
73
75
  return requestConfig
74
76
  }
@@ -88,9 +90,12 @@ const _pathToRequestConfig = (method, path, data, target, srvName, srvKind) => {
88
90
  }
89
91
 
90
92
  const requestConfig = { method, url }
91
- if (data && requestConfig.method !== 'GET' && requestConfig.method !== 'HEAD') {
92
- requestConfig.data = srvKind === 'odata-v2' ? Object.assign({}, convertV2PayloadData(data, target)) : data
93
- }
93
+
94
+ if (!data || requestConfig.method === 'GET' || requestConfig.method === 'HEAD') return requestConfig
95
+
96
+ if (srvKind === 'odata-v2' && !(data instanceof Readable) && !(data instanceof Buffer))
97
+ requestConfig.data = convertV2PayloadData(data, target)
98
+ else requestConfig.data = data
94
99
 
95
100
  return requestConfig
96
101
  }
@@ -111,7 +111,7 @@ class ODataAdapter extends HttpAdapter {
111
111
  if (res.headersSent || !cdsReq.messages?.length) return
112
112
  const messages = cdsReq.messages.map(err => {
113
113
  if (!err.code) err.code = '' // default to empty string if not provided
114
- const { code, message, numericSeverity, longtextUrl, target, additionalTargets } = this.normalized(err)
114
+ const { code, message, numericSeverity, longtextUrl, target, additionalTargets } = this.localized(this.normalized(err))
115
115
  // only return allowed subset of properties
116
116
  return { code, message, numericSeverity, longtextUrl, target, additionalTargets }
117
117
  })
@@ -2,6 +2,7 @@ const cds = require('../../../')
2
2
  const { INSERT } = cds.ql
3
3
 
4
4
  const { getPreferReturnHeader } = require('../utils')
5
+ const handle_ieee754 = require('../utils/ieee754')
5
6
  const getODataMetadata = require('../utils/metadata')
6
7
  const postProcess = require('../utils/postProcess')
7
8
  const readAfterWrite4 = require('../utils/readAfterWrite')
@@ -102,6 +103,9 @@ module.exports = (adapter, isUpsert) => {
102
103
 
103
104
  const metadata = getODataMetadata(query, { result })
104
105
  result = getODataResult(result, metadata)
106
+
107
+ handle_ieee754(req, result)
108
+
105
109
  res.status(201).send(result)
106
110
  })
107
111
  .catch(err => {
@@ -102,7 +102,7 @@ module.exports = adapter => {
102
102
  edmx = await mps.getEdmx({ tenant, model, service: service.definition.name })
103
103
  metadataCache.edm = edmx
104
104
  }
105
- const extBundle = await mps.getI18n({ tenant, locale })
105
+ const extBundle = cds.requires.extensibility && (await mps.getI18n({ tenant, locale }))
106
106
  edmx = cds.localize(service.model, locale, edmx, extBundle)
107
107
  metadataCache.xmlEtag[locale] = generateEtag(edmx)
108
108
  res.set('ETag', metadataCache.xmlEtag[locale])
@@ -2,6 +2,7 @@ const cds = require('../../../')
2
2
 
3
3
  const { pipeline } = require('node:stream/promises')
4
4
 
5
+ const handle_ieee754 = require('../utils/ieee754')
5
6
  const getODataMetadata = require('../utils/metadata')
6
7
  const postProcess = require('../utils/postProcess')
7
8
  const getODataResult = require('../utils/result')
@@ -181,6 +182,8 @@ module.exports = adapter => {
181
182
  const metadata = getODataMetadata({ SELECT, _target }, options)
182
183
  result = getODataResult(result, metadata, { isCollection })
183
184
 
185
+ handle_ieee754(req, result)
186
+
184
187
  res.send(result)
185
188
  })
186
189
  .catch(err => {
@@ -3,6 +3,12 @@ const odata = require('../index')
3
3
  const bodyParser4 = require('../../http/body-parser')
4
4
  const { isStream } = require('../utils')
5
5
 
6
+ let reject_ieee754_false = req => {
7
+ if (/IEEE754Compatible\s*=\s*false/i.test(req.headers?.accept || ''))
8
+ cds.error({ status: 406, message: 'IEEE754Compatible=false is not supported' })
9
+ }
10
+ if (cds.env.odata.ieee754compatible === false) reject_ieee754_false = () => {}
11
+
6
12
  /**
7
13
  * @param {import('../ODataAdapter')} adapter
8
14
  * the adapter instance in which this middleware is used
@@ -44,6 +50,9 @@ module.exports = adapter => {
44
50
  else break
45
51
  else throw cds.error(415)
46
52
  }
53
+
54
+ reject_ieee754_false(req)
55
+
47
56
  return bodyParser(req, res, next)
48
57
  }
49
58
  }