@sap/cds-dk 10.1.1 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (870) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/bin/add.js +7 -2
  3. package/bin/bind.js +0 -2
  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 +24 -16
  9. package/bin/completion/scripts/cds.ps1 +26 -25
  10. package/bin/completion/scripts/cds.sh +22 -19
  11. package/bin/completion/scripts/cds.zsh +22 -19
  12. package/bin/deploy/index.js +1 -1
  13. package/bin/deploy/to-hana/hana.js +5 -4
  14. package/bin/env.js +0 -1
  15. package/bin/eval.js +9 -5
  16. package/bin/export.js +6 -4
  17. package/bin/help/export.md +28 -4
  18. package/bin/import.js +6 -5
  19. package/bin/inspect.js +0 -1
  20. package/bin/login.js +28 -3
  21. package/bin/repl.js +82 -26
  22. package/bin/run.js +6 -7
  23. package/bin/serve.js +6 -7
  24. package/bin/up.js +7 -2
  25. package/bin/upgrade/steps/install.js +6 -6
  26. package/bin/watch/index.js +1 -0
  27. package/lib/build/index.js +11 -7
  28. package/lib/build/plugins/featureToggles.js +2 -2
  29. package/lib/build/plugins/hana/index.js +1 -1
  30. package/lib/build/plugins/helm/files/subcharts/web-application/Chart.yaml +1 -1
  31. package/lib/build/plugins/helm/files/subcharts/web-application/templates/_helpers.tpl +7 -0
  32. package/lib/build/plugins/helm/files/subcharts/web-application/templates/api-rule.yaml +1 -0
  33. package/lib/build/plugins/helm/files/subcharts/web-application/templates/service-binding.yaml +4 -4
  34. package/lib/build/plugins/helm/files/subcharts/web-application/values.schema.json +13 -0
  35. package/lib/build/plugins/helm/files/subcharts/web-application/values.yaml +7 -1
  36. package/lib/build/plugins/internal.js +0 -26
  37. package/lib/build/plugins/java/index.js +5 -1
  38. package/lib/build/plugins/nodejs/index.js +13 -4
  39. package/lib/build/util.js +4 -5
  40. package/lib/cds.js +8 -2
  41. package/lib/env/schemas/cds-rc.js +5 -0
  42. package/lib/import/importapi.js +2 -3
  43. package/lib/init/constants.js +1 -1
  44. package/lib/init/index.js +8 -3
  45. package/lib/init/merge.js +21 -17
  46. package/lib/init/plugin.js +1 -1
  47. package/lib/init/projectReader.js +13 -10
  48. package/lib/init/registries/mta.js +0 -6
  49. package/lib/init/template/ai/index.js +4 -4
  50. package/lib/init/template/ams/files/extensionDeveloper.dcl +6 -0
  51. package/lib/init/template/ams/files/mta.yaml.hbs +6 -0
  52. package/lib/init/template/ams/files/sidecar.package.json.hbs +5 -0
  53. package/lib/init/template/ams/index.js +42 -40
  54. package/lib/init/template/app-frontend/files/mta.yaml.hbs +2 -0
  55. package/lib/init/template/app-frontend/files/ui5.yaml.hbs +0 -4
  56. package/lib/init/template/app-frontend/index.js +29 -24
  57. package/lib/init/template/application-logging/index.js +6 -6
  58. package/lib/init/template/approuter/files/xs-app.json.hbs +22 -0
  59. package/lib/init/template/approuter/index.js +20 -13
  60. package/lib/init/template/attachments/index.js +3 -3
  61. package/lib/init/template/audit-logging/index.js +4 -4
  62. package/lib/init/template/cloud-logging/index.js +12 -6
  63. package/lib/init/template/completion/completionSetup.js +19 -6
  64. package/lib/init/template/connectivity/index.js +3 -3
  65. package/lib/init/template/data/as-csv.js +7 -4
  66. package/lib/init/template/data/as-json.js +77 -20
  67. package/lib/init/template/destination/index.js +12 -9
  68. package/lib/init/template/dynatrace/index.js +5 -5
  69. package/lib/init/template/enterprise-messaging/index.js +10 -7
  70. package/lib/init/template/enterprise-messaging-shared/index.js +4 -4
  71. package/lib/init/template/event-mesh/index.js +3 -0
  72. package/lib/init/template/extensibility/index.js +2 -2
  73. package/lib/init/template/extension/index.js +26 -0
  74. package/lib/init/template/github-actions/index.js +3 -3
  75. package/lib/init/template/hana/files/package.json.hbs +3 -2
  76. package/lib/init/template/hana/index.js +5 -5
  77. package/lib/init/template/hana-serverless/index.js +3 -3
  78. package/lib/init/template/html5-repo/files/mta.yaml.hbs +2 -0
  79. package/lib/init/template/html5-repo/files/ui5.yaml.hbs +0 -4
  80. package/lib/init/template/html5-repo/index.js +68 -40
  81. package/lib/init/template/http/index.js +1 -1
  82. package/lib/init/template/ias/index.js +7 -7
  83. package/lib/init/template/initial/files/.gitignore.hbs +1 -0
  84. package/lib/init/template/kafka/index.js +3 -3
  85. package/lib/init/template/kyma/index.js +7 -9
  86. package/lib/init/template/malware-scanner/index.js +3 -3
  87. package/lib/init/template/mta/index.js +6 -3
  88. package/lib/init/template/multitenancy/index.js +6 -7
  89. package/lib/init/template/notifications/index.js +2 -2
  90. package/lib/init/template/portal/index.js +16 -10
  91. package/lib/init/template/postgres/index.js +5 -5
  92. package/lib/init/template/react/files/index.html.hbs +1 -1
  93. package/lib/init/template/react/files/package.json.hbs +3 -2
  94. package/lib/init/template/react/files/src/{App.jsx.hbs → App.{{jsxExtension}}.hbs} +8 -2
  95. package/lib/init/template/react/files/src/{main.jsx → main.{{jsxExtension}}.hbs} +2 -2
  96. package/lib/init/template/react/index.js +23 -4
  97. package/lib/init/template/react/typescript/src/vite-env.d.ts +1 -0
  98. package/lib/init/template/react/typescript/tsconfig.json.hbs +16 -0
  99. package/lib/init/template/redis/index.js +2 -2
  100. package/lib/init/template/side-by-side-extensibility/index.js +6 -3
  101. package/lib/init/template/typescript/files/tsconfig.json +3 -1
  102. package/lib/init/template/vue/files/index.html.hbs +1 -1
  103. package/lib/init/template/vue/files/package.json.hbs +2 -1
  104. package/lib/init/template/vue/files/src/App.vue.hbs +8 -2
  105. package/lib/init/template/vue/index.js +20 -4
  106. package/lib/init/template/vue/typescript/tsconfig.json +11 -0
  107. package/lib/init/template/workzone-standard/files/mta.yaml.hbs +2 -2
  108. package/lib/init/template/workzone-standard/index.js +30 -28
  109. package/lib/init/template/xsuaa/files/mta.yaml.hbs +1 -1
  110. package/lib/init/template/xsuaa/files/values.yaml.hbs +1 -1
  111. package/lib/init/template/xsuaa/index.js +34 -22
  112. package/lib/mtx/auth_manager.js +8 -2
  113. package/lib/mtx/browser_login.js +181 -0
  114. package/lib/mtx/params.js +6 -0
  115. package/lib/mtx/settings_manager.js +29 -4
  116. package/lib/util/cf.js +44 -8
  117. package/lib/util/fs.js +2 -2
  118. package/node_modules/@cap-js/db-service/CHANGELOG.md +23 -0
  119. package/node_modules/@cap-js/db-service/lib/cqn2pql.js +4 -0
  120. package/node_modules/@cap-js/db-service/lib/cqn2sql.js +3 -0
  121. package/node_modules/@cap-js/db-service/lib/cqn4sql.js +17 -28
  122. package/node_modules/@cap-js/db-service/lib/infer/index.js +20 -27
  123. package/node_modules/@cap-js/db-service/package.json +1 -1
  124. package/node_modules/@cap-js/openapi/cds-plugin.js +12 -0
  125. package/node_modules/@cap-js/openapi/index.js +3 -1
  126. package/node_modules/@cap-js/openapi/lib/compile/csdl2openapi.js +652 -413
  127. package/node_modules/@cap-js/openapi/lib/compile/diagram.js +16 -13
  128. package/node_modules/@cap-js/openapi/lib/compile/index.js +10 -7
  129. package/node_modules/@cap-js/openapi/lib/compile/property-util.js +51 -0
  130. package/{lib/import/openapi → node_modules/@cap-js/openapi/lib/import}/importOpenAPI.js +12 -9
  131. package/{lib/import/openapi → node_modules/@cap-js/openapi/lib/import}/index.js +4 -3
  132. package/node_modules/@cap-js/openapi/package.json +71 -3
  133. package/node_modules/@cap-js/sqlite/CHANGELOG.md +18 -0
  134. package/node_modules/@cap-js/sqlite/package.json +3 -3
  135. package/node_modules/@isaacs/fs-minipass/LICENSE +15 -0
  136. package/node_modules/@isaacs/fs-minipass/README.md +71 -0
  137. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts +118 -0
  138. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts.map +1 -0
  139. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +430 -0
  140. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js.map +1 -0
  141. package/node_modules/@isaacs/fs-minipass/dist/commonjs/package.json +3 -0
  142. package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts +118 -0
  143. package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts.map +1 -0
  144. package/node_modules/@isaacs/fs-minipass/dist/esm/index.js +420 -0
  145. package/node_modules/@isaacs/fs-minipass/dist/esm/index.js.map +1 -0
  146. package/node_modules/@isaacs/fs-minipass/dist/esm/package.json +3 -0
  147. package/node_modules/@isaacs/fs-minipass/package.json +72 -0
  148. package/node_modules/@sap/cds/CHANGELOG.md +71 -1
  149. package/node_modules/@sap/cds/_i18n/messages_ar.properties +1 -0
  150. package/node_modules/@sap/cds/_i18n/messages_bg.properties +1 -0
  151. package/node_modules/@sap/cds/_i18n/messages_cs.properties +1 -0
  152. package/node_modules/@sap/cds/_i18n/messages_da.properties +1 -0
  153. package/node_modules/@sap/cds/_i18n/messages_de.properties +1 -0
  154. package/node_modules/@sap/cds/_i18n/messages_el.properties +1 -0
  155. package/node_modules/@sap/cds/_i18n/messages_en.properties +1 -0
  156. package/node_modules/@sap/cds/_i18n/messages_es.properties +1 -0
  157. package/node_modules/@sap/cds/_i18n/messages_es_MX.properties +1 -0
  158. package/node_modules/@sap/cds/_i18n/messages_fi.properties +1 -0
  159. package/node_modules/@sap/cds/_i18n/messages_fr.properties +1 -0
  160. package/node_modules/@sap/cds/_i18n/messages_he.properties +1 -0
  161. package/node_modules/@sap/cds/_i18n/messages_hr.properties +1 -0
  162. package/node_modules/@sap/cds/_i18n/messages_hu.properties +1 -0
  163. package/node_modules/@sap/cds/_i18n/messages_it.properties +1 -0
  164. package/node_modules/@sap/cds/_i18n/messages_ja.properties +1 -0
  165. package/node_modules/@sap/cds/_i18n/messages_kk.properties +1 -0
  166. package/node_modules/@sap/cds/_i18n/messages_ko.properties +1 -0
  167. package/node_modules/@sap/cds/_i18n/messages_ms.properties +1 -0
  168. package/node_modules/@sap/cds/_i18n/messages_nl.properties +1 -0
  169. package/node_modules/@sap/cds/_i18n/messages_no.properties +1 -0
  170. package/node_modules/@sap/cds/_i18n/messages_pl.properties +1 -0
  171. package/node_modules/@sap/cds/_i18n/messages_pt.properties +1 -0
  172. package/node_modules/@sap/cds/_i18n/messages_ro.properties +1 -0
  173. package/node_modules/@sap/cds/_i18n/messages_ru.properties +1 -0
  174. package/node_modules/@sap/cds/_i18n/messages_sh.properties +1 -0
  175. package/node_modules/@sap/cds/_i18n/messages_sk.properties +1 -0
  176. package/node_modules/@sap/cds/_i18n/messages_sl.properties +1 -0
  177. package/node_modules/@sap/cds/_i18n/messages_sv.properties +1 -0
  178. package/node_modules/@sap/cds/_i18n/messages_th.properties +1 -0
  179. package/node_modules/@sap/cds/_i18n/messages_tr.properties +1 -0
  180. package/node_modules/@sap/cds/_i18n/messages_uk.properties +1 -0
  181. package/node_modules/@sap/cds/_i18n/messages_vi.properties +1 -0
  182. package/node_modules/@sap/cds/_i18n/messages_zh_CN.properties +1 -0
  183. package/node_modules/@sap/cds/_i18n/messages_zh_TW.properties +1 -0
  184. package/node_modules/@sap/cds/app/index-client.js +164 -0
  185. package/node_modules/@sap/cds/app/index.css +598 -87
  186. package/node_modules/@sap/cds/app/index.html +54 -30
  187. package/node_modules/@sap/cds/app/index.js +311 -67
  188. package/node_modules/@sap/cds/app/table.html +226 -0
  189. package/node_modules/@sap/cds/app/table.js +302 -0
  190. package/node_modules/@sap/cds/bin/serve.js +3 -2
  191. package/node_modules/@sap/cds/common.cds +3 -3
  192. package/node_modules/@sap/cds/eslint.config.mjs +2 -0
  193. package/node_modules/@sap/cds/lib/compile/cdsc.js +7 -0
  194. package/node_modules/@sap/cds/lib/compile/for/embeddings.js +27 -0
  195. package/node_modules/@sap/cds/lib/compile/load.js +2 -2
  196. package/node_modules/@sap/cds/lib/compile/minify.js +17 -2
  197. package/node_modules/@sap/cds/lib/compile/parse.js +3 -0
  198. package/node_modules/@sap/cds/lib/compile/resolve.js +16 -14
  199. package/node_modules/@sap/cds/lib/core/classes.js +1 -0
  200. package/node_modules/@sap/cds/lib/dbs/cds-deploy.js +4 -5
  201. package/node_modules/@sap/cds/lib/env/cds-env.js +132 -70
  202. package/node_modules/@sap/cds/lib/env/cds-requires/auth-strategies.js +62 -0
  203. package/node_modules/@sap/cds/lib/env/cds-requires/databases.js +49 -0
  204. package/node_modules/@sap/cds/lib/env/cds-requires/embeddings.js +8 -0
  205. package/node_modules/@sap/cds/lib/env/cds-requires/index.js +27 -0
  206. package/node_modules/@sap/cds/lib/env/cds-requires/messaging.js +82 -0
  207. package/node_modules/@sap/cds/lib/env/cds-requires/platform.js +23 -0
  208. package/node_modules/@sap/cds/lib/env/cds-requires/queues.js +34 -0
  209. package/node_modules/@sap/cds/lib/env/cds-requires/services.js +32 -0
  210. package/node_modules/@sap/cds/lib/env/defaults.js +9 -1
  211. package/node_modules/@sap/cds/lib/i18n/files.js +4 -4
  212. package/node_modules/@sap/cds/lib/i18n/locale.js +1 -1
  213. package/node_modules/@sap/cds/lib/index.js +9 -9
  214. package/node_modules/@sap/cds/lib/log/cds-log.js +3 -3
  215. package/node_modules/@sap/cds/lib/ql/SELECT.js +2 -0
  216. package/node_modules/@sap/cds/lib/ql/UPDATE.js +1 -1
  217. package/node_modules/@sap/cds/lib/ql/cds.ql-Query.js +4 -1
  218. package/node_modules/@sap/cds/lib/ql/core/@types/cqn.d.ts +146 -0
  219. package/node_modules/@sap/cds/lib/ql/core/@types/exprs.d.ts +51 -0
  220. package/node_modules/@sap/cds/lib/ql/core/@types/index.d.ts +29 -0
  221. package/node_modules/@sap/cds/lib/ql/core/@types/package.json +7 -0
  222. package/node_modules/@sap/cds/lib/ql/core/@types/ql/delete.d.ts +8 -0
  223. package/node_modules/@sap/cds/lib/ql/core/@types/ql/insert.d.ts +19 -0
  224. package/node_modules/@sap/cds/lib/ql/core/@types/ql/select.d.ts +24 -0
  225. package/node_modules/@sap/cds/lib/ql/core/@types/ql/update.d.ts +10 -0
  226. package/node_modules/@sap/cds/lib/ql/core/@types/query.d.ts +18 -0
  227. package/node_modules/@sap/cds/lib/ql/core/cql/parser.min.js +1 -0
  228. package/node_modules/@sap/cds/lib/ql/core/lib/index.js +69 -0
  229. package/node_modules/@sap/cds/lib/ql/core/lib/ql/cache.js +34 -0
  230. package/node_modules/@sap/cds/lib/ql/core/lib/ql/call-action.js +6 -0
  231. package/node_modules/@sap/cds/lib/ql/core/lib/ql/delete.js +8 -0
  232. package/node_modules/@sap/cds/lib/ql/core/lib/ql/insert.js +26 -0
  233. package/node_modules/@sap/cds/lib/ql/core/lib/ql/select.js +22 -0
  234. package/node_modules/@sap/cds/lib/ql/core/lib/ql/update.js +26 -0
  235. package/node_modules/@sap/cds/lib/ql/core/lib/query.js +85 -0
  236. package/node_modules/@sap/cds/lib/ql/core/lib/xl/fluent.js +47 -0
  237. package/node_modules/@sap/cds/lib/ql/core/lib/xl/ttl.js +24 -0
  238. package/node_modules/@sap/cds/lib/ql/core/license +201 -0
  239. package/node_modules/@sap/cds/lib/ql/core/package.json +24 -0
  240. package/node_modules/@sap/cds/lib/ql/core/readme.md +99 -0
  241. package/node_modules/@sap/cds/lib/ql/core/upstream.json +5 -0
  242. package/node_modules/@sap/cds/lib/req/spawn.js +1 -1
  243. package/node_modules/@sap/cds/lib/srv/bindings.js +111 -115
  244. package/node_modules/@sap/cds/lib/srv/cds-connect.js +11 -10
  245. package/node_modules/@sap/cds/lib/srv/cds-serve.js +16 -7
  246. package/node_modules/@sap/cds/lib/srv/cds.Service.js +13 -7
  247. package/node_modules/@sap/cds/lib/srv/factory.js +8 -10
  248. package/node_modules/@sap/cds/lib/srv/middlewares/auth/ias-auth.js +35 -32
  249. package/node_modules/@sap/cds/lib/srv/middlewares/auth/jwt-auth.js +5 -1
  250. package/node_modules/@sap/cds/lib/srv/middlewares/auth/mocked-users.js +1 -1
  251. package/node_modules/@sap/cds/lib/srv/protocols/hcql.js +230 -79
  252. package/node_modules/@sap/cds/lib/srv/protocols/http.js +7 -3
  253. package/node_modules/@sap/cds/lib/srv/protocols/index.js +7 -2
  254. package/node_modules/@sap/cds/lib/srv/srv-dispatch.js +2 -2
  255. package/node_modules/@sap/cds/lib/utils/cds-utils.js +37 -0
  256. package/node_modules/@sap/cds/lib/utils/csv-reader.js +2 -2
  257. package/node_modules/@sap/cds/libx/_runtime/common/generic/assert.js +18 -27
  258. package/node_modules/@sap/cds/libx/_runtime/common/generic/crud.js +8 -2
  259. package/node_modules/@sap/cds/libx/_runtime/common/utils/cqn.js +1 -1
  260. package/node_modules/@sap/cds/libx/_runtime/common/utils/rewriteAsterisks.js +1 -1
  261. package/node_modules/@sap/cds/libx/_runtime/fiori/lean-draft.js +122 -85
  262. package/node_modules/@sap/cds/libx/_runtime/messaging/common-utils/authorizedRequest.js +24 -1
  263. package/node_modules/@sap/cds/libx/_runtime/messaging/common-utils/normalizeIncomingMessage.js +1 -1
  264. package/node_modules/@sap/cds/libx/_runtime/messaging/kafka.js +1 -1
  265. package/node_modules/@sap/cds/libx/_runtime/remote/Service.js +2 -2
  266. package/node_modules/@sap/cds/libx/_runtime/remote/utils/client.js +3 -2
  267. package/node_modules/@sap/cds/libx/_runtime/remote/utils/query.js +11 -6
  268. package/node_modules/@sap/cds/libx/http/location.js +10 -11
  269. package/node_modules/@sap/cds/libx/odata/middleware/create.js +4 -0
  270. package/node_modules/@sap/cds/libx/odata/middleware/metadata.js +1 -1
  271. package/node_modules/@sap/cds/libx/odata/middleware/operation.js +3 -0
  272. package/node_modules/@sap/cds/libx/odata/middleware/parse.js +9 -0
  273. package/node_modules/@sap/cds/libx/odata/middleware/read.js +7 -1
  274. package/node_modules/@sap/cds/libx/odata/middleware/update.js +5 -1
  275. package/node_modules/@sap/cds/libx/odata/parse/afterburner.js +3 -3
  276. package/node_modules/@sap/cds/libx/odata/parse/multipartToJson.js +1 -1
  277. package/node_modules/@sap/cds/libx/odata/utils/ieee754.js +20 -0
  278. package/node_modules/@sap/cds/libx/queue/SchedulingService.js +4 -0
  279. package/node_modules/@sap/cds/libx/queue/api.js +1 -1
  280. package/node_modules/@sap/cds/libx/queue/index.js +46 -10
  281. package/node_modules/@sap/cds/libx/queue/processing.js +52 -16
  282. package/node_modules/@sap/cds/libx/queue/utils.js +3 -0
  283. package/node_modules/@sap/cds/libx/rest/RestAdapter.js +1 -0
  284. package/node_modules/@sap/cds/package.json +2 -2
  285. package/node_modules/@sap/cds/server.js +1 -0
  286. package/node_modules/@sap/cds/srv/ucl-service.cds +1 -0
  287. package/node_modules/@sap/cds/tasks/enterprise-messaging-deploy.js +13 -5
  288. package/node_modules/@sap/cds-compiler/CHANGELOG.md +83 -0
  289. package/node_modules/@sap/cds-compiler/bin/cdsse.js +1 -1
  290. package/node_modules/@sap/cds-compiler/doc/EffectiveCSN.md +3314 -0
  291. package/node_modules/@sap/cds-compiler/lib/api/main.js +9 -6
  292. package/node_modules/@sap/cds-compiler/lib/api/options.js +3 -3
  293. package/node_modules/@sap/cds-compiler/lib/{model → base}/csnUtils.js +5 -5
  294. package/node_modules/@sap/cds-compiler/lib/base/message-registry.js +54 -6
  295. package/node_modules/@sap/cds-compiler/lib/base/optionProcessor.js +4 -4
  296. package/node_modules/@sap/cds-compiler/lib/{model → base}/sortViews.js +1 -1
  297. package/node_modules/@sap/cds-compiler/lib/checks/assocOutsideService.js +1 -1
  298. package/node_modules/@sap/cds-compiler/lib/checks/checkForTypes.js +1 -1
  299. package/node_modules/@sap/cds-compiler/lib/checks/checkPathsInStoredCalcElement.js +1 -1
  300. package/node_modules/@sap/cds-compiler/lib/checks/elements.js +37 -3
  301. package/node_modules/@sap/cds-compiler/lib/checks/enricher.js +1 -1
  302. package/node_modules/@sap/cds-compiler/lib/checks/existsInForbiddenPlaces.js +1 -1
  303. package/node_modules/@sap/cds-compiler/lib/checks/hasPersistedElements.js +1 -1
  304. package/node_modules/@sap/cds-compiler/lib/checks/manyExpand.js +1 -1
  305. package/node_modules/@sap/cds-compiler/lib/checks/manyNavigations.js +1 -1
  306. package/node_modules/@sap/cds-compiler/lib/checks/onConditions.js +1 -1
  307. package/node_modules/@sap/cds-compiler/lib/checks/parameters.js +1 -1
  308. package/node_modules/@sap/cds-compiler/lib/checks/queryNoDbArtifacts.js +1 -1
  309. package/node_modules/@sap/cds-compiler/lib/checks/selectItems.js +1 -1
  310. package/node_modules/@sap/cds-compiler/lib/checks/structuredAnnoExpressions.js +1 -1
  311. package/node_modules/@sap/cds-compiler/lib/checks/typeParameters.js +1 -1
  312. package/node_modules/@sap/cds-compiler/lib/checks/types.js +1 -1
  313. package/node_modules/@sap/cds-compiler/lib/checks/validator.js +1 -1
  314. package/node_modules/@sap/cds-compiler/lib/compiler/assert-consistency.js +20 -12
  315. package/node_modules/@sap/cds-compiler/lib/compiler/builtins.js +9 -4
  316. package/node_modules/@sap/cds-compiler/lib/compiler/checks.js +50 -0
  317. package/node_modules/@sap/cds-compiler/lib/compiler/define.js +303 -323
  318. package/node_modules/@sap/cds-compiler/lib/compiler/dictionaries.js +5 -0
  319. package/node_modules/@sap/cds-compiler/lib/compiler/extend.js +1015 -1177
  320. package/node_modules/@sap/cds-compiler/lib/compiler/generate.js +55 -42
  321. package/node_modules/@sap/cds-compiler/lib/compiler/populate.js +74 -45
  322. package/node_modules/@sap/cds-compiler/lib/compiler/propagator.js +1 -0
  323. package/node_modules/@sap/cds-compiler/lib/compiler/resolve.js +6 -4
  324. package/node_modules/@sap/cds-compiler/lib/compiler/shared.js +30 -49
  325. package/node_modules/@sap/cds-compiler/lib/compiler/utils.js +32 -18
  326. package/node_modules/@sap/cds-compiler/lib/edm/annotations/edmJson.js +3 -3
  327. package/node_modules/@sap/cds-compiler/lib/edm/annotations/genericTranslation.js +2 -2
  328. package/node_modules/@sap/cds-compiler/lib/edm/annotations/preprocessAnnotations.js +2 -3
  329. package/node_modules/@sap/cds-compiler/lib/edm/csn2edm.js +1 -1
  330. package/node_modules/@sap/cds-compiler/lib/edm/edm.js +6 -7
  331. package/node_modules/@sap/cds-compiler/lib/edm/edmAnnoPreprocessor.js +1 -1
  332. package/node_modules/@sap/cds-compiler/lib/edm/edmInboundChecks.js +1 -1
  333. package/node_modules/@sap/cds-compiler/lib/edm/edmPreprocessor.js +1 -1
  334. package/node_modules/@sap/cds-compiler/lib/edm/edmUtils.js +12 -7
  335. package/node_modules/@sap/cds-compiler/lib/gen/CdlGrammar.checksum +1 -1
  336. package/node_modules/@sap/cds-compiler/lib/gen/CdlParser.js +15 -15
  337. package/node_modules/@sap/cds-compiler/lib/gen/Dictionary.json +7 -0
  338. package/node_modules/@sap/cds-compiler/lib/json/from-csn.js +30 -30
  339. package/node_modules/@sap/cds-compiler/lib/json/to-csn.js +2 -1
  340. package/node_modules/@sap/cds-compiler/lib/main.js +4 -1
  341. package/node_modules/@sap/cds-compiler/lib/parsers/AstBuildingParser.js +42 -15
  342. package/node_modules/@sap/cds-compiler/lib/render/DuplicateChecker.js +37 -11
  343. package/node_modules/@sap/cds-compiler/lib/render/manageConstraints.js +1 -1
  344. package/node_modules/@sap/cds-compiler/lib/render/toCdl.js +11 -6
  345. package/node_modules/@sap/cds-compiler/lib/render/toRename.js +1 -1
  346. package/node_modules/@sap/cds-compiler/lib/render/toSql.js +74 -24
  347. package/node_modules/@sap/cds-compiler/lib/render/utils/common.js +1 -1
  348. package/node_modules/@sap/cds-compiler/lib/render/utils/operators.js +81 -0
  349. package/node_modules/@sap/cds-compiler/lib/render/utils/sql.js +17 -10
  350. package/node_modules/@sap/cds-compiler/lib/transform/db/assertUnique.js +1 -1
  351. package/node_modules/@sap/cds-compiler/lib/transform/db/associations.js +3 -4
  352. package/node_modules/@sap/cds-compiler/lib/transform/db/assocsToQueries/transformExists.js +1 -1
  353. package/node_modules/@sap/cds-compiler/lib/transform/db/backlinks.js +2 -2
  354. package/node_modules/@sap/cds-compiler/lib/transform/db/cdsPersistence.js +1 -1
  355. package/node_modules/@sap/cds-compiler/lib/transform/db/constraints.js +6 -5
  356. package/node_modules/@sap/cds-compiler/lib/transform/db/expansion.js +7 -1
  357. package/node_modules/@sap/cds-compiler/lib/transform/db/flattening.js +2 -2
  358. package/node_modules/@sap/cds-compiler/lib/{modelCompare/compare.js → transform/db/migration/diffModels.js} +5 -5
  359. package/node_modules/@sap/cds-compiler/lib/{modelCompare/utils/filter.js → transform/db/migration/filterDiff.js} +2 -2
  360. package/node_modules/@sap/cds-compiler/lib/transform/db/processSqlServices.js +1 -1
  361. package/node_modules/@sap/cds-compiler/lib/transform/db/rewriteCalculatedElements.js +1 -1
  362. package/node_modules/@sap/cds-compiler/lib/transform/db/temporal.js +1 -1
  363. package/node_modules/@sap/cds-compiler/lib/transform/db/views.js +2 -6
  364. package/node_modules/@sap/cds-compiler/lib/transform/draft/db.js +1 -1
  365. package/node_modules/@sap/cds-compiler/lib/transform/draft/odata.js +1 -1
  366. package/node_modules/@sap/cds-compiler/lib/transform/effective/annotations.js +1 -1
  367. package/node_modules/@sap/cds-compiler/lib/transform/effective/associations.js +1 -1
  368. package/node_modules/@sap/cds-compiler/lib/transform/effective/flattening.js +1 -1
  369. package/node_modules/@sap/cds-compiler/lib/transform/effective/main.js +3 -2
  370. package/node_modules/@sap/cds-compiler/lib/transform/effective/misc.js +2 -1
  371. package/node_modules/@sap/cds-compiler/lib/transform/effective/queries.js +1 -1
  372. package/node_modules/@sap/cds-compiler/lib/transform/effective/types.js +1 -1
  373. package/node_modules/@sap/cds-compiler/lib/transform/forOdata.js +1 -1
  374. package/node_modules/@sap/cds-compiler/lib/transform/forRelationalDB.js +9 -4
  375. package/node_modules/@sap/cds-compiler/lib/transform/localized.js +1 -1
  376. package/node_modules/@sap/cds-compiler/lib/transform/odata/adaptAnnotationRefs.js +5 -11
  377. package/node_modules/@sap/cds-compiler/lib/transform/odata/createForeignKeys.js +1 -1
  378. package/node_modules/@sap/cds-compiler/lib/transform/odata/flattening.js +4 -4
  379. package/node_modules/@sap/cds-compiler/lib/transform/odata/foreignKeyRefsInXprAnnos.js +5 -3
  380. package/node_modules/@sap/cds-compiler/lib/transform/odata/toFinalBaseType.js +29 -5
  381. package/node_modules/@sap/cds-compiler/lib/transform/odata/typesExposure.js +13 -3
  382. package/node_modules/@sap/cds-compiler/lib/transform/odata/utils.js +9 -0
  383. package/node_modules/@sap/cds-compiler/lib/transform/transformUtils.js +2 -2
  384. package/node_modules/@sap/cds-compiler/lib/transform/translateAssocsToJoins.js +1 -1
  385. package/node_modules/@sap/cds-compiler/lib/transform/tupleExpansion.js +1 -1
  386. package/node_modules/@sap/cds-compiler/lib/transform/universalCsn/coreComputed.js +1 -1
  387. package/node_modules/@sap/cds-compiler/lib/transform/universalCsn/universalCsnEnricher.js +1 -1
  388. package/node_modules/@sap/cds-compiler/lib/transform/universalCsn/utils.js +1 -1
  389. package/node_modules/@sap/cds-compiler/package.json +1 -1
  390. package/node_modules/@sap/cds-mtxs/CHANGELOG.md +47 -0
  391. package/node_modules/@sap/cds-mtxs/bin/cds-mtx-migrate.js +4 -6
  392. package/node_modules/@sap/cds-mtxs/bin/cds-mtx.js +5 -4
  393. package/node_modules/@sap/cds-mtxs/cds-plugin.js +38 -2
  394. package/node_modules/@sap/cds-mtxs/db/t0.cds +7 -0
  395. package/node_modules/@sap/cds-mtxs/lib/utils.js +129 -20
  396. package/node_modules/@sap/cds-mtxs/package.json +15 -14
  397. package/node_modules/@sap/cds-mtxs/srv/cf/abstract-provisioning-service.js +13 -12
  398. package/node_modules/@sap/cds-mtxs/srv/cf/saas-provisioning-service.cds +1 -0
  399. package/node_modules/@sap/cds-mtxs/srv/cf/sms-provisioning-service.cds +1 -0
  400. package/node_modules/@sap/cds-mtxs/srv/extensibility/compat/update.js +5 -2
  401. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/config.js +1 -2
  402. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/csv-allowlist.js +64 -0
  403. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/index.js +4 -2
  404. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/protected-namespace.js +67 -5
  405. package/node_modules/@sap/cds-mtxs/srv/extensibility-service.js +179 -15
  406. package/node_modules/@sap/cds-mtxs/srv/jobs-service.js +12 -3
  407. package/node_modules/@sap/cds-mtxs/srv/plugins/common.js +33 -12
  408. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/ctnr-mgr-base.js +24 -6
  409. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/hdi-ctnr-mgr.js +3 -1
  410. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/hdi-native.js +752 -0
  411. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/serverless.js +17 -20
  412. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/srv-mgr-v2.js +511 -0
  413. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/srv-mgr.js +11 -4
  414. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/tms.js +8 -0
  415. package/node_modules/@sap/cds-mtxs/srv/plugins/hana.js +27 -18
  416. package/node_modules/@sap/cds-mtxs/srv/worker/job-worker-pool.js +1 -1
  417. package/node_modules/@sap/cds-mtxs/srv/worker/job-worker.js +1 -1
  418. package/node_modules/chownr/LICENSE.md +63 -0
  419. package/node_modules/chownr/README.md +3 -0
  420. package/node_modules/chownr/dist/commonjs/index.d.ts +3 -0
  421. package/node_modules/chownr/dist/commonjs/index.d.ts.map +1 -0
  422. package/node_modules/chownr/dist/commonjs/index.js +93 -0
  423. package/node_modules/chownr/dist/commonjs/index.js.map +1 -0
  424. package/node_modules/chownr/dist/commonjs/package.json +3 -0
  425. package/node_modules/chownr/dist/esm/index.d.ts +3 -0
  426. package/node_modules/chownr/dist/esm/index.d.ts.map +1 -0
  427. package/node_modules/chownr/dist/esm/index.js +85 -0
  428. package/node_modules/chownr/dist/esm/index.js.map +1 -0
  429. package/node_modules/chownr/dist/esm/package.json +3 -0
  430. package/node_modules/chownr/package.json +69 -0
  431. package/node_modules/content-disposition/README.md +105 -35
  432. package/node_modules/content-disposition/dist/index.d.ts +72 -0
  433. package/node_modules/content-disposition/dist/index.js +388 -0
  434. package/node_modules/content-disposition/dist/index.js.map +1 -0
  435. package/node_modules/content-disposition/package.json +31 -19
  436. package/node_modules/content-type/README.md +34 -57
  437. package/node_modules/content-type/package.json +35 -25
  438. package/node_modules/express/Readme.md +15 -9
  439. package/node_modules/express/lib/application.js +2 -2
  440. package/node_modules/express/lib/request.js +32 -19
  441. package/node_modules/express/lib/response.js +27 -30
  442. package/node_modules/express/package.json +10 -10
  443. package/node_modules/handlebars/bin/handlebars +1 -1
  444. package/node_modules/handlebars/dist/amd/handlebars/base.js +2 -2
  445. package/node_modules/handlebars/dist/amd/handlebars/compiler/base.js +2 -59
  446. package/node_modules/handlebars/dist/amd/handlebars/compiler/code-gen.js +68 -5
  447. package/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js +160 -19
  448. package/node_modules/handlebars/dist/amd/handlebars/compiler/javascript-compiler.js +23 -7
  449. package/node_modules/handlebars/dist/amd/handlebars/compiler/node-types.js +12 -0
  450. package/node_modules/handlebars/dist/amd/handlebars/compiler/visitor.js +26 -7
  451. package/node_modules/handlebars/dist/amd/handlebars/compiler/whitespace-control.js +9 -4
  452. package/node_modules/handlebars/dist/amd/handlebars/exception.js +8 -4
  453. package/node_modules/handlebars/dist/amd/handlebars/helpers/each.js +40 -14
  454. package/node_modules/handlebars/dist/amd/handlebars/internal/proto-access.js +21 -1
  455. package/node_modules/handlebars/dist/amd/handlebars/runtime.js +24 -4
  456. package/node_modules/handlebars/dist/amd/handlebars/utils.js +4 -3
  457. package/node_modules/handlebars/dist/amd/precompiler.js +13 -7
  458. package/node_modules/handlebars/dist/cjs/handlebars/base.js +2 -2
  459. package/node_modules/handlebars/dist/cjs/handlebars/compiler/base.js +1 -60
  460. package/node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js +64 -4
  461. package/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js +161 -18
  462. package/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js +23 -7
  463. package/node_modules/handlebars/dist/cjs/handlebars/compiler/node-types.js +10 -0
  464. package/node_modules/handlebars/dist/cjs/handlebars/compiler/visitor.js +29 -6
  465. package/node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js +9 -4
  466. package/node_modules/handlebars/dist/cjs/handlebars/exception.js +8 -4
  467. package/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js +40 -14
  468. package/node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js +21 -1
  469. package/node_modules/handlebars/dist/cjs/handlebars/runtime.js +24 -4
  470. package/node_modules/handlebars/dist/cjs/handlebars/utils.js +4 -3
  471. package/node_modules/handlebars/dist/cjs/precompiler.js +14 -6
  472. package/node_modules/handlebars/dist/handlebars.amd.js +401 -130
  473. package/node_modules/handlebars/dist/handlebars.amd.min.js +4 -4
  474. package/node_modules/handlebars/dist/handlebars.js +396 -125
  475. package/node_modules/handlebars/dist/handlebars.min.js +4 -4
  476. package/node_modules/handlebars/dist/handlebars.runtime.amd.js +100 -29
  477. package/node_modules/handlebars/dist/handlebars.runtime.amd.min.js +2 -2
  478. package/node_modules/handlebars/dist/handlebars.runtime.js +94 -23
  479. package/node_modules/handlebars/dist/handlebars.runtime.min.js +2 -2
  480. package/node_modules/handlebars/lib/handlebars/base.js +1 -1
  481. package/node_modules/handlebars/lib/handlebars/compiler/base.js +0 -67
  482. package/node_modules/handlebars/lib/handlebars/compiler/code-gen.js +65 -11
  483. package/node_modules/handlebars/lib/handlebars/compiler/compiler.js +164 -23
  484. package/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js +23 -7
  485. package/node_modules/handlebars/lib/handlebars/compiler/node-types.js +24 -0
  486. package/node_modules/handlebars/lib/handlebars/compiler/visitor.js +29 -5
  487. package/node_modules/handlebars/lib/handlebars/compiler/whitespace-control.js +16 -5
  488. package/node_modules/handlebars/lib/handlebars/exception.js +7 -3
  489. package/node_modules/handlebars/lib/handlebars/helpers/each.js +39 -16
  490. package/node_modules/handlebars/lib/handlebars/internal/proto-access.js +22 -0
  491. package/node_modules/handlebars/lib/handlebars/runtime.js +36 -4
  492. package/node_modules/handlebars/lib/handlebars/utils.js +3 -2
  493. package/node_modules/handlebars/lib/precompiler.js +14 -5
  494. package/node_modules/handlebars/package.json +2 -2
  495. package/node_modules/handlebars/release-notes.md +20 -1
  496. package/node_modules/handlebars/types/index.d.ts +8 -0
  497. package/node_modules/hdb/cfg/VERSION +1 -1
  498. package/node_modules/hdb/lib/Client.js +6 -2
  499. package/node_modules/hdb/lib/protocol/ClientInfo.js +28 -15
  500. package/node_modules/hdb/lib/protocol/Connection.js +30 -3
  501. package/node_modules/hdb/lib/protocol/Writer.js +2 -2
  502. package/node_modules/hdb/lib/protocol/common/ConnectOption.js +2 -0
  503. package/node_modules/hdb/lib/protocol/common/ConnectOptionFlagSet1.js +18 -0
  504. package/node_modules/hdb/lib/protocol/common/ConnectOptionType.js +2 -0
  505. package/node_modules/hdb/lib/protocol/common/Constants.js +1 -0
  506. package/node_modules/hdb/lib/protocol/common/MessageType.js +3 -2
  507. package/node_modules/hdb/lib/protocol/common/PartKind.js +2 -1
  508. package/node_modules/hdb/lib/protocol/common/index.js +1 -0
  509. package/node_modules/hdb/lib/protocol/data/TextList.js +25 -17
  510. package/node_modules/hdb/lib/protocol/data/index.js +1 -0
  511. package/node_modules/hdb/lib/protocol/part/ConnectOptions.js +7 -0
  512. package/node_modules/hdb/lib/protocol/request/index.js +7 -0
  513. package/node_modules/hdb/package.json +1 -2
  514. package/node_modules/livereload-js/.github/workflows/main.yml +4 -4
  515. package/node_modules/livereload-js/README.md +3 -3
  516. package/node_modules/livereload-js/dist/livereload.js +839 -2742
  517. package/node_modules/livereload-js/dist/livereload.min.js +1 -1
  518. package/node_modules/livereload-js/package.json +11 -11
  519. package/node_modules/minipass/LICENSE.md +55 -0
  520. package/node_modules/minipass/README.md +825 -0
  521. package/node_modules/minipass/dist/commonjs/index.d.ts +545 -0
  522. package/node_modules/minipass/dist/commonjs/index.d.ts.map +1 -0
  523. package/node_modules/minipass/dist/commonjs/index.js +1038 -0
  524. package/node_modules/minipass/dist/commonjs/index.js.map +1 -0
  525. package/node_modules/minipass/dist/commonjs/package.json +3 -0
  526. package/node_modules/minipass/dist/esm/index.d.ts +545 -0
  527. package/node_modules/minipass/dist/esm/index.d.ts.map +1 -0
  528. package/node_modules/minipass/dist/esm/index.js +1020 -0
  529. package/node_modules/minipass/dist/esm/index.js.map +1 -0
  530. package/node_modules/minipass/dist/esm/package.json +3 -0
  531. package/node_modules/minipass/package.json +77 -0
  532. package/node_modules/minizlib/LICENSE +26 -0
  533. package/node_modules/minizlib/README.md +64 -0
  534. package/node_modules/minizlib/dist/commonjs/constants.d.ts +2 -0
  535. package/node_modules/minizlib/dist/commonjs/constants.d.ts.map +1 -0
  536. package/node_modules/minizlib/dist/commonjs/constants.js +123 -0
  537. package/node_modules/minizlib/dist/commonjs/constants.js.map +1 -0
  538. package/node_modules/minizlib/dist/commonjs/index.d.ts +99 -0
  539. package/node_modules/minizlib/dist/commonjs/index.d.ts.map +1 -0
  540. package/node_modules/minizlib/dist/commonjs/index.js +416 -0
  541. package/node_modules/minizlib/dist/commonjs/index.js.map +1 -0
  542. package/node_modules/minizlib/dist/commonjs/package.json +3 -0
  543. package/node_modules/minizlib/dist/esm/constants.d.ts +2 -0
  544. package/node_modules/minizlib/dist/esm/constants.d.ts.map +1 -0
  545. package/node_modules/minizlib/dist/esm/constants.js +117 -0
  546. package/node_modules/minizlib/dist/esm/constants.js.map +1 -0
  547. package/node_modules/minizlib/dist/esm/index.d.ts +99 -0
  548. package/node_modules/minizlib/dist/esm/index.d.ts.map +1 -0
  549. package/node_modules/minizlib/dist/esm/index.js +363 -0
  550. package/node_modules/minizlib/dist/esm/index.js.map +1 -0
  551. package/node_modules/minizlib/dist/esm/package.json +3 -0
  552. package/node_modules/minizlib/package.json +80 -0
  553. package/node_modules/proxy-addr/HISTORY.md +60 -54
  554. package/node_modules/proxy-addr/README.md +1 -1
  555. package/node_modules/proxy-addr/index.js +32 -0
  556. package/node_modules/proxy-addr/package.json +8 -4
  557. package/node_modules/qs/.github/THREAT_MODEL.md +4 -2
  558. package/node_modules/qs/CHANGELOG.md +38 -14
  559. package/node_modules/qs/README.md +31 -3
  560. package/node_modules/qs/dist/qs.js +20 -20
  561. package/node_modules/qs/lib/parse.js +94 -4
  562. package/node_modules/qs/lib/stringify.js +4 -4
  563. package/node_modules/qs/lib/utils.js +130 -6
  564. package/node_modules/qs/package.json +4 -4
  565. package/node_modules/qs/test/parse.js +174 -0
  566. package/node_modules/qs/test/stringify.js +263 -33
  567. package/node_modules/qs/test/utils.js +184 -0
  568. package/node_modules/tar/LICENSE.md +55 -0
  569. package/node_modules/tar/README.md +1233 -0
  570. package/node_modules/tar/dist/commonjs/create.d.ts +3 -0
  571. package/node_modules/tar/dist/commonjs/create.d.ts.map +1 -0
  572. package/node_modules/tar/dist/commonjs/create.js +82 -0
  573. package/node_modules/tar/dist/commonjs/create.js.map +1 -0
  574. package/node_modules/tar/dist/commonjs/cwd-error.d.ts +8 -0
  575. package/node_modules/tar/dist/commonjs/cwd-error.d.ts.map +1 -0
  576. package/node_modules/tar/dist/commonjs/cwd-error.js +18 -0
  577. package/node_modules/tar/dist/commonjs/cwd-error.js.map +1 -0
  578. package/node_modules/tar/dist/commonjs/extract.d.ts +3 -0
  579. package/node_modules/tar/dist/commonjs/extract.d.ts.map +1 -0
  580. package/node_modules/tar/dist/commonjs/extract.js +88 -0
  581. package/node_modules/tar/dist/commonjs/extract.js.map +1 -0
  582. package/node_modules/tar/dist/commonjs/get-write-flag.d.ts +2 -0
  583. package/node_modules/tar/dist/commonjs/get-write-flag.d.ts.map +1 -0
  584. package/node_modules/tar/dist/commonjs/get-write-flag.js +32 -0
  585. package/node_modules/tar/dist/commonjs/get-write-flag.js.map +1 -0
  586. package/node_modules/tar/dist/commonjs/header.d.ts +53 -0
  587. package/node_modules/tar/dist/commonjs/header.d.ts.map +1 -0
  588. package/node_modules/tar/dist/commonjs/header.js +348 -0
  589. package/node_modules/tar/dist/commonjs/header.js.map +1 -0
  590. package/node_modules/tar/dist/commonjs/index.d.ts +20 -0
  591. package/node_modules/tar/dist/commonjs/index.d.ts.map +1 -0
  592. package/node_modules/tar/dist/commonjs/index.js +64 -0
  593. package/node_modules/tar/dist/commonjs/index.js.map +1 -0
  594. package/node_modules/tar/dist/commonjs/index.min.js +4 -0
  595. package/node_modules/tar/dist/commonjs/index.min.js.map +7 -0
  596. package/node_modules/tar/dist/commonjs/large-numbers.d.ts +3 -0
  597. package/node_modules/tar/dist/commonjs/large-numbers.d.ts.map +1 -0
  598. package/node_modules/tar/dist/commonjs/large-numbers.js +99 -0
  599. package/node_modules/tar/dist/commonjs/large-numbers.js.map +1 -0
  600. package/node_modules/tar/dist/commonjs/list.d.ts +7 -0
  601. package/node_modules/tar/dist/commonjs/list.d.ts.map +1 -0
  602. package/node_modules/tar/dist/commonjs/list.js +153 -0
  603. package/node_modules/tar/dist/commonjs/list.js.map +1 -0
  604. package/node_modules/tar/dist/commonjs/make-command.d.ts +49 -0
  605. package/node_modules/tar/dist/commonjs/make-command.d.ts.map +1 -0
  606. package/node_modules/tar/dist/commonjs/make-command.js +52 -0
  607. package/node_modules/tar/dist/commonjs/make-command.js.map +1 -0
  608. package/node_modules/tar/dist/commonjs/mkdir.d.ts +25 -0
  609. package/node_modules/tar/dist/commonjs/mkdir.d.ts.map +1 -0
  610. package/node_modules/tar/dist/commonjs/mkdir.js +187 -0
  611. package/node_modules/tar/dist/commonjs/mkdir.js.map +1 -0
  612. package/node_modules/tar/dist/commonjs/mode-fix.d.ts +2 -0
  613. package/node_modules/tar/dist/commonjs/mode-fix.d.ts.map +1 -0
  614. package/node_modules/tar/dist/commonjs/mode-fix.js +29 -0
  615. package/node_modules/tar/dist/commonjs/mode-fix.js.map +1 -0
  616. package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts +2 -0
  617. package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts.map +1 -0
  618. package/node_modules/tar/dist/commonjs/normalize-unicode.js +38 -0
  619. package/node_modules/tar/dist/commonjs/normalize-unicode.js.map +1 -0
  620. package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts +2 -0
  621. package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts.map +1 -0
  622. package/node_modules/tar/dist/commonjs/normalize-windows-path.js +12 -0
  623. package/node_modules/tar/dist/commonjs/normalize-windows-path.js.map +1 -0
  624. package/node_modules/tar/dist/commonjs/options.d.ts +604 -0
  625. package/node_modules/tar/dist/commonjs/options.d.ts.map +1 -0
  626. package/node_modules/tar/dist/commonjs/options.js +66 -0
  627. package/node_modules/tar/dist/commonjs/options.js.map +1 -0
  628. package/node_modules/tar/dist/commonjs/pack.d.ts +105 -0
  629. package/node_modules/tar/dist/commonjs/pack.d.ts.map +1 -0
  630. package/node_modules/tar/dist/commonjs/pack.js +544 -0
  631. package/node_modules/tar/dist/commonjs/pack.js.map +1 -0
  632. package/node_modules/tar/dist/commonjs/package.json +3 -0
  633. package/node_modules/tar/dist/commonjs/parse.d.ts +92 -0
  634. package/node_modules/tar/dist/commonjs/parse.d.ts.map +1 -0
  635. package/node_modules/tar/dist/commonjs/parse.js +655 -0
  636. package/node_modules/tar/dist/commonjs/parse.js.map +1 -0
  637. package/node_modules/tar/dist/commonjs/path-reservations.d.ts +11 -0
  638. package/node_modules/tar/dist/commonjs/path-reservations.d.ts.map +1 -0
  639. package/node_modules/tar/dist/commonjs/path-reservations.js +170 -0
  640. package/node_modules/tar/dist/commonjs/path-reservations.js.map +1 -0
  641. package/node_modules/tar/dist/commonjs/pax.d.ts +26 -0
  642. package/node_modules/tar/dist/commonjs/pax.d.ts.map +1 -0
  643. package/node_modules/tar/dist/commonjs/pax.js +182 -0
  644. package/node_modules/tar/dist/commonjs/pax.js.map +1 -0
  645. package/node_modules/tar/dist/commonjs/process-umask.d.ts +2 -0
  646. package/node_modules/tar/dist/commonjs/process-umask.d.ts.map +1 -0
  647. package/node_modules/tar/dist/commonjs/process-umask.js +7 -0
  648. package/node_modules/tar/dist/commonjs/process-umask.js.map +1 -0
  649. package/node_modules/tar/dist/commonjs/read-entry.d.ts +36 -0
  650. package/node_modules/tar/dist/commonjs/read-entry.d.ts.map +1 -0
  651. package/node_modules/tar/dist/commonjs/read-entry.js +136 -0
  652. package/node_modules/tar/dist/commonjs/read-entry.js.map +1 -0
  653. package/node_modules/tar/dist/commonjs/replace.d.ts +2 -0
  654. package/node_modules/tar/dist/commonjs/replace.d.ts.map +1 -0
  655. package/node_modules/tar/dist/commonjs/replace.js +227 -0
  656. package/node_modules/tar/dist/commonjs/replace.js.map +1 -0
  657. package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts +2 -0
  658. package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts.map +1 -0
  659. package/node_modules/tar/dist/commonjs/strip-absolute-path.js +29 -0
  660. package/node_modules/tar/dist/commonjs/strip-absolute-path.js.map +1 -0
  661. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts +2 -0
  662. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts.map +1 -0
  663. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +18 -0
  664. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js.map +1 -0
  665. package/node_modules/tar/dist/commonjs/symlink-error.d.ts +9 -0
  666. package/node_modules/tar/dist/commonjs/symlink-error.d.ts.map +1 -0
  667. package/node_modules/tar/dist/commonjs/symlink-error.js +19 -0
  668. package/node_modules/tar/dist/commonjs/symlink-error.js.map +1 -0
  669. package/node_modules/tar/dist/commonjs/types.d.ts +16 -0
  670. package/node_modules/tar/dist/commonjs/types.d.ts.map +1 -0
  671. package/node_modules/tar/dist/commonjs/types.js +70 -0
  672. package/node_modules/tar/dist/commonjs/types.js.map +1 -0
  673. package/node_modules/tar/dist/commonjs/unpack.d.ts +101 -0
  674. package/node_modules/tar/dist/commonjs/unpack.d.ts.map +1 -0
  675. package/node_modules/tar/dist/commonjs/unpack.js +932 -0
  676. package/node_modules/tar/dist/commonjs/unpack.js.map +1 -0
  677. package/node_modules/tar/dist/commonjs/update.d.ts +2 -0
  678. package/node_modules/tar/dist/commonjs/update.d.ts.map +1 -0
  679. package/node_modules/tar/dist/commonjs/update.js +33 -0
  680. package/node_modules/tar/dist/commonjs/update.js.map +1 -0
  681. package/node_modules/tar/dist/commonjs/warn-method.d.ts +24 -0
  682. package/node_modules/tar/dist/commonjs/warn-method.d.ts.map +1 -0
  683. package/node_modules/tar/dist/commonjs/warn-method.js +31 -0
  684. package/node_modules/tar/dist/commonjs/warn-method.js.map +1 -0
  685. package/node_modules/tar/dist/commonjs/winchars.d.ts +3 -0
  686. package/node_modules/tar/dist/commonjs/winchars.d.ts.map +1 -0
  687. package/node_modules/tar/dist/commonjs/winchars.js +14 -0
  688. package/node_modules/tar/dist/commonjs/winchars.js.map +1 -0
  689. package/node_modules/tar/dist/commonjs/write-entry.d.ts +129 -0
  690. package/node_modules/tar/dist/commonjs/write-entry.d.ts.map +1 -0
  691. package/node_modules/tar/dist/commonjs/write-entry.js +698 -0
  692. package/node_modules/tar/dist/commonjs/write-entry.js.map +1 -0
  693. package/node_modules/tar/dist/esm/create.d.ts +3 -0
  694. package/node_modules/tar/dist/esm/create.d.ts.map +1 -0
  695. package/node_modules/tar/dist/esm/create.js +76 -0
  696. package/node_modules/tar/dist/esm/create.js.map +1 -0
  697. package/node_modules/tar/dist/esm/cwd-error.d.ts +8 -0
  698. package/node_modules/tar/dist/esm/cwd-error.d.ts.map +1 -0
  699. package/node_modules/tar/dist/esm/cwd-error.js +14 -0
  700. package/node_modules/tar/dist/esm/cwd-error.js.map +1 -0
  701. package/node_modules/tar/dist/esm/extract.d.ts +3 -0
  702. package/node_modules/tar/dist/esm/extract.d.ts.map +1 -0
  703. package/node_modules/tar/dist/esm/extract.js +49 -0
  704. package/node_modules/tar/dist/esm/extract.js.map +1 -0
  705. package/node_modules/tar/dist/esm/get-write-flag.d.ts +2 -0
  706. package/node_modules/tar/dist/esm/get-write-flag.d.ts.map +1 -0
  707. package/node_modules/tar/dist/esm/get-write-flag.js +26 -0
  708. package/node_modules/tar/dist/esm/get-write-flag.js.map +1 -0
  709. package/node_modules/tar/dist/esm/header.d.ts +53 -0
  710. package/node_modules/tar/dist/esm/header.d.ts.map +1 -0
  711. package/node_modules/tar/dist/esm/header.js +311 -0
  712. package/node_modules/tar/dist/esm/header.js.map +1 -0
  713. package/node_modules/tar/dist/esm/index.d.ts +20 -0
  714. package/node_modules/tar/dist/esm/index.d.ts.map +1 -0
  715. package/node_modules/tar/dist/esm/index.js +20 -0
  716. package/node_modules/tar/dist/esm/index.js.map +1 -0
  717. package/node_modules/tar/dist/esm/index.min.js +4 -0
  718. package/node_modules/tar/dist/esm/index.min.js.map +7 -0
  719. package/node_modules/tar/dist/esm/large-numbers.d.ts +3 -0
  720. package/node_modules/tar/dist/esm/large-numbers.d.ts.map +1 -0
  721. package/node_modules/tar/dist/esm/large-numbers.js +94 -0
  722. package/node_modules/tar/dist/esm/large-numbers.js.map +1 -0
  723. package/node_modules/tar/dist/esm/list.d.ts +7 -0
  724. package/node_modules/tar/dist/esm/list.d.ts.map +1 -0
  725. package/node_modules/tar/dist/esm/list.js +113 -0
  726. package/node_modules/tar/dist/esm/list.js.map +1 -0
  727. package/node_modules/tar/dist/esm/make-command.d.ts +49 -0
  728. package/node_modules/tar/dist/esm/make-command.d.ts.map +1 -0
  729. package/node_modules/tar/dist/esm/make-command.js +48 -0
  730. package/node_modules/tar/dist/esm/make-command.js.map +1 -0
  731. package/node_modules/tar/dist/esm/mkdir.d.ts +25 -0
  732. package/node_modules/tar/dist/esm/mkdir.d.ts.map +1 -0
  733. package/node_modules/tar/dist/esm/mkdir.js +179 -0
  734. package/node_modules/tar/dist/esm/mkdir.js.map +1 -0
  735. package/node_modules/tar/dist/esm/mode-fix.d.ts +2 -0
  736. package/node_modules/tar/dist/esm/mode-fix.d.ts.map +1 -0
  737. package/node_modules/tar/dist/esm/mode-fix.js +25 -0
  738. package/node_modules/tar/dist/esm/mode-fix.js.map +1 -0
  739. package/node_modules/tar/dist/esm/normalize-unicode.d.ts +2 -0
  740. package/node_modules/tar/dist/esm/normalize-unicode.d.ts.map +1 -0
  741. package/node_modules/tar/dist/esm/normalize-unicode.js +34 -0
  742. package/node_modules/tar/dist/esm/normalize-unicode.js.map +1 -0
  743. package/node_modules/tar/dist/esm/normalize-windows-path.d.ts +2 -0
  744. package/node_modules/tar/dist/esm/normalize-windows-path.d.ts.map +1 -0
  745. package/node_modules/tar/dist/esm/normalize-windows-path.js +9 -0
  746. package/node_modules/tar/dist/esm/normalize-windows-path.js.map +1 -0
  747. package/node_modules/tar/dist/esm/options.d.ts +604 -0
  748. package/node_modules/tar/dist/esm/options.d.ts.map +1 -0
  749. package/node_modules/tar/dist/esm/options.js +54 -0
  750. package/node_modules/tar/dist/esm/options.js.map +1 -0
  751. package/node_modules/tar/dist/esm/pack.d.ts +105 -0
  752. package/node_modules/tar/dist/esm/pack.d.ts.map +1 -0
  753. package/node_modules/tar/dist/esm/pack.js +502 -0
  754. package/node_modules/tar/dist/esm/pack.js.map +1 -0
  755. package/node_modules/tar/dist/esm/package.json +3 -0
  756. package/node_modules/tar/dist/esm/parse.d.ts +92 -0
  757. package/node_modules/tar/dist/esm/parse.d.ts.map +1 -0
  758. package/node_modules/tar/dist/esm/parse.js +651 -0
  759. package/node_modules/tar/dist/esm/parse.js.map +1 -0
  760. package/node_modules/tar/dist/esm/path-reservations.d.ts +11 -0
  761. package/node_modules/tar/dist/esm/path-reservations.d.ts.map +1 -0
  762. package/node_modules/tar/dist/esm/path-reservations.js +166 -0
  763. package/node_modules/tar/dist/esm/path-reservations.js.map +1 -0
  764. package/node_modules/tar/dist/esm/pax.d.ts +26 -0
  765. package/node_modules/tar/dist/esm/pax.d.ts.map +1 -0
  766. package/node_modules/tar/dist/esm/pax.js +178 -0
  767. package/node_modules/tar/dist/esm/pax.js.map +1 -0
  768. package/node_modules/tar/dist/esm/process-umask.d.ts +2 -0
  769. package/node_modules/tar/dist/esm/process-umask.d.ts.map +1 -0
  770. package/node_modules/tar/dist/esm/process-umask.js +3 -0
  771. package/node_modules/tar/dist/esm/process-umask.js.map +1 -0
  772. package/node_modules/tar/dist/esm/read-entry.d.ts +36 -0
  773. package/node_modules/tar/dist/esm/read-entry.d.ts.map +1 -0
  774. package/node_modules/tar/dist/esm/read-entry.js +132 -0
  775. package/node_modules/tar/dist/esm/read-entry.js.map +1 -0
  776. package/node_modules/tar/dist/esm/replace.d.ts +2 -0
  777. package/node_modules/tar/dist/esm/replace.d.ts.map +1 -0
  778. package/node_modules/tar/dist/esm/replace.js +221 -0
  779. package/node_modules/tar/dist/esm/replace.js.map +1 -0
  780. package/node_modules/tar/dist/esm/strip-absolute-path.d.ts +2 -0
  781. package/node_modules/tar/dist/esm/strip-absolute-path.d.ts.map +1 -0
  782. package/node_modules/tar/dist/esm/strip-absolute-path.js +25 -0
  783. package/node_modules/tar/dist/esm/strip-absolute-path.js.map +1 -0
  784. package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts +2 -0
  785. package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts.map +1 -0
  786. package/node_modules/tar/dist/esm/strip-trailing-slashes.js +14 -0
  787. package/node_modules/tar/dist/esm/strip-trailing-slashes.js.map +1 -0
  788. package/node_modules/tar/dist/esm/symlink-error.d.ts +9 -0
  789. package/node_modules/tar/dist/esm/symlink-error.d.ts.map +1 -0
  790. package/node_modules/tar/dist/esm/symlink-error.js +15 -0
  791. package/node_modules/tar/dist/esm/symlink-error.js.map +1 -0
  792. package/node_modules/tar/dist/esm/types.d.ts +16 -0
  793. package/node_modules/tar/dist/esm/types.d.ts.map +1 -0
  794. package/node_modules/tar/dist/esm/types.js +65 -0
  795. package/node_modules/tar/dist/esm/types.js.map +1 -0
  796. package/node_modules/tar/dist/esm/unpack.d.ts +101 -0
  797. package/node_modules/tar/dist/esm/unpack.d.ts.map +1 -0
  798. package/node_modules/tar/dist/esm/unpack.js +891 -0
  799. package/node_modules/tar/dist/esm/unpack.js.map +1 -0
  800. package/node_modules/tar/dist/esm/update.d.ts +2 -0
  801. package/node_modules/tar/dist/esm/update.d.ts.map +1 -0
  802. package/node_modules/tar/dist/esm/update.js +30 -0
  803. package/node_modules/tar/dist/esm/update.js.map +1 -0
  804. package/node_modules/tar/dist/esm/warn-method.d.ts +24 -0
  805. package/node_modules/tar/dist/esm/warn-method.d.ts.map +1 -0
  806. package/node_modules/tar/dist/esm/warn-method.js +27 -0
  807. package/node_modules/tar/dist/esm/warn-method.js.map +1 -0
  808. package/node_modules/tar/dist/esm/winchars.d.ts +3 -0
  809. package/node_modules/tar/dist/esm/winchars.d.ts.map +1 -0
  810. package/node_modules/tar/dist/esm/winchars.js +9 -0
  811. package/node_modules/tar/dist/esm/winchars.js.map +1 -0
  812. package/node_modules/tar/dist/esm/write-entry.d.ts +129 -0
  813. package/node_modules/tar/dist/esm/write-entry.d.ts.map +1 -0
  814. package/node_modules/tar/dist/esm/write-entry.js +656 -0
  815. package/node_modules/tar/dist/esm/write-entry.js.map +1 -0
  816. package/node_modules/tar/package.json +298 -0
  817. package/node_modules/ws/lib/websocket.js +17 -3
  818. package/node_modules/ws/package.json +1 -1
  819. package/node_modules/yallist/LICENSE.md +63 -0
  820. package/node_modules/yallist/README.md +205 -0
  821. package/node_modules/yallist/dist/commonjs/index.d.ts +39 -0
  822. package/node_modules/yallist/dist/commonjs/index.d.ts.map +1 -0
  823. package/node_modules/yallist/dist/commonjs/index.js +384 -0
  824. package/node_modules/yallist/dist/commonjs/index.js.map +1 -0
  825. package/node_modules/yallist/dist/commonjs/package.json +3 -0
  826. package/node_modules/yallist/dist/esm/index.d.ts +39 -0
  827. package/node_modules/yallist/dist/esm/index.d.ts.map +1 -0
  828. package/node_modules/yallist/dist/esm/index.js +379 -0
  829. package/node_modules/yallist/dist/esm/index.js.map +1 -0
  830. package/node_modules/yallist/dist/esm/package.json +3 -0
  831. package/node_modules/yallist/package.json +68 -0
  832. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +19 -18
  833. package/node_modules/yaml/browser/dist/nodes/Alias.js +25 -23
  834. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +19 -18
  835. package/node_modules/yaml/dist/nodes/Alias.js +25 -23
  836. package/node_modules/yaml/package.json +1 -1
  837. package/package.json +7 -1
  838. package/bin/completion/templates/cds-tmpl.fish +0 -65
  839. package/bin/completion/templates/cds-tmpl.ps1 +0 -217
  840. package/bin/completion/templates/cds-tmpl.sh +0 -93
  841. package/bin/completion/templates/cds-tmpl.zsh +0 -74
  842. package/node_modules/@cap-js/db-service/lib/recursion-guard.js +0 -40
  843. package/node_modules/@sap/cds/lib/env/cds-requires.js +0 -326
  844. package/node_modules/@sap/cds-mtxs/srv/bootstrap.cds +0 -2
  845. package/node_modules/@sap/cds-mtxs/srv/bootstrap.js +0 -33
  846. package/node_modules/body-parser/node_modules/content-type/LICENSE +0 -22
  847. package/node_modules/body-parser/node_modules/content-type/README.md +0 -71
  848. package/node_modules/body-parser/node_modules/content-type/package.json +0 -52
  849. package/node_modules/content-disposition/index.js +0 -536
  850. package/node_modules/content-type/HISTORY.md +0 -29
  851. package/node_modules/content-type/index.js +0 -225
  852. package/node_modules/negotiator/node_modules/content-type/LICENSE +0 -22
  853. package/node_modules/negotiator/node_modules/content-type/README.md +0 -71
  854. package/node_modules/negotiator/node_modules/content-type/dist/index.d.ts +0 -46
  855. package/node_modules/negotiator/node_modules/content-type/dist/index.js +0 -176
  856. package/node_modules/negotiator/node_modules/content-type/dist/index.js.map +0 -1
  857. package/node_modules/negotiator/node_modules/content-type/package.json +0 -52
  858. package/node_modules/type-is/node_modules/content-type/LICENSE +0 -22
  859. package/node_modules/type-is/node_modules/content-type/README.md +0 -71
  860. package/node_modules/type-is/node_modules/content-type/dist/index.d.ts +0 -46
  861. package/node_modules/type-is/node_modules/content-type/dist/index.js +0 -176
  862. package/node_modules/type-is/node_modules/content-type/dist/index.js.map +0 -1
  863. package/node_modules/type-is/node_modules/content-type/package.json +0 -52
  864. /package/lib/init/template/react/files/{vite.config.js.hbs → vite.config.{{extension}}.hbs} +0 -0
  865. /package/lib/init/template/vue/files/src/{main.js → main.{{extension}}.hbs} +0 -0
  866. /package/lib/init/template/vue/files/{vite.config.js.hbs → vite.config.{{extension}}.hbs} +0 -0
  867. /package/{lib/import/openapi → node_modules/@cap-js/openapi/lib/import}/utilities.js +0 -0
  868. /package/node_modules/{body-parser/node_modules/content-type → content-type}/dist/index.d.ts +0 -0
  869. /package/node_modules/{body-parser/node_modules/content-type → content-type}/dist/index.js +0 -0
  870. /package/node_modules/{body-parser/node_modules/content-type → content-type}/dist/index.js.map +0 -0
@@ -61,7 +61,7 @@ function setAnnotation( art, anno, location = art.location, val = true, literal
61
61
  if (art[anno]) // do not overwrite user-defined including null
62
62
  return;
63
63
  art[anno] = {
64
- name: { path: [ { id: anno.slice(1), location } ], location },
64
+ name: { __proto__: XsnName.prototype, path: [ { id: anno.slice(1), location } ], location },
65
65
  val,
66
66
  literal,
67
67
  $inferred: '$generated',
@@ -92,7 +92,8 @@ function linkToOrigin( origin, name, parent, prop, location, silentDep ) {
92
92
  // TODO: should `key` propagation be part of this?
93
93
  location ||= weakLocation( origin.name.location ); // not ??=
94
94
  const elem = {
95
- name: { location, id: origin.name.id },
95
+ __proto__: XsnArtifact.prototype,
96
+ name: { __proto__: XsnName.prototype, location, id: origin.name.id },
96
97
  kind: origin.kind,
97
98
  location,
98
99
  };
@@ -113,7 +114,7 @@ function linkToOrigin( origin, name, parent, prop, location, silentDep ) {
113
114
 
114
115
  function proxyCopyMembers( art, dictProp, originDict, location, kind ) {
115
116
  art[dictProp] = Object.create( null );
116
- // TODO: set $inferred ? for dict?
117
+ art[dictProp][$inferred] = 'expanded';
117
118
  for (const name in originDict) {
118
119
  const origin = originDict[name];
119
120
  if (origin !== undefined) {
@@ -133,7 +134,7 @@ function proxyCopyMembers( art, dictProp, originDict, location, kind ) {
133
134
 
134
135
  /**
135
136
  * Initialize artifact links inside `obj.items` (for nested ones as well).
136
- * Does nothing, it `obj.items` does not exist.
137
+ * Does nothing if `obj.items` does not exist.
137
138
  *
138
139
  * @param {XSN.Artifact} obj
139
140
  * @param {object} block
@@ -152,10 +153,23 @@ function initItemsLinks( obj, block ) {
152
153
  return obj;
153
154
  }
154
155
 
156
+ function itemsArtifact( art ) {
157
+ while (art.items)
158
+ art = art.items;
159
+ return art;
160
+ }
161
+
162
+ function outerArtifact( art ) {
163
+ if (art.kind !== 'aspect') {
164
+ while (art._outer)
165
+ art = art._outer;
166
+ }
167
+ return art;
168
+ }
169
+
155
170
  /**
156
171
  * Set the member `elem` to have a _parent link to `parent` and a corresponding
157
- * _main link. Also set the member's name accordingly, where argument `name`
158
- * is most often the property `elem.name.id`.
172
+ * _main link.
159
173
  *
160
174
  * If argument `prop` is provided, add `elem` to the dictionary of that name,
161
175
  * e.g. `elements`. TODO: remove `prop` and `name`, rename to `setParentAndMain`.
@@ -191,17 +205,15 @@ function initExprAnnoBlock( art, block, error ) {
191
205
  anno.kind = '$annotation';
192
206
  for (const item of anno.val) {
193
207
  setLink( item, '_block', block );
194
- if (item.literal !== 'token' || item.val !== '...' || item.$errorReported != null)
208
+ if (item.literal !== 'token' || item.val !== '...')
195
209
  continue;
196
- item.$errorReported = art.kind && art.kind !== 'annotate' && art.kind !== 'extend';
197
- if (item.$errorReported) {
198
- error( null, [ item.location, art ], { offending: '...' },
199
- 'Unexpected $(OFFENDING) in the array of an annotation on a definition' );
200
- item.$errorReported = 'syntax';
210
+ if (art.kind !== 'annotate' && art.kind !== 'extend') {
211
+ error( 'syntax-unexpected-ellipsis', [ item.location, art ],
212
+ { '#': 'definition', code: '...' } );
201
213
  }
202
- else if (item.upTo) {
203
- item.$errorReported
204
- = !checkUpToSpec( item.upTo, art, prop, true, error ) && 'syntax';
214
+ else if (item.upTo && !checkUpToSpec( item.upTo, art, prop, true, error )) {
215
+ item.$errorReported = 'anno-invalid-upto-value';
216
+ // Avoid later anno-unexpected-upto-value
205
217
  }
206
218
  }
207
219
  }
@@ -226,7 +238,7 @@ function checkUpToSpec( upToSpec, art, annoName, noBoolOrNull, error ) {
226
238
  : path && !upToSpec.scope && !path.some( hasSpecialPathItemProp )) {
227
239
  return true;
228
240
  }
229
- error( null, [ upToSpec.location, art ],
241
+ error( 'anno-invalid-upto-value', [ upToSpec.location, art ],
230
242
  { anno: annoName, code: '... up to', '#': literal || (path ? 'ref' : 'expr') },
231
243
  {
232
244
  std: 'Unexpected $(CODE) value type in the assignment of $(ANNO)',
@@ -245,7 +257,7 @@ function initDollarSelf( art ) {
245
257
  // TODO: use setMemberParent() ?
246
258
  // TODO: also on 'namespace's? (test with annotation with checked ref on them)
247
259
  const self = {
248
- name: { id: '$self', location: art.location },
260
+ name: { __proto__: XsnName.prototype, id: '$self', location: art.location },
249
261
  kind: '$self',
250
262
  location: art.location,
251
263
  };
@@ -259,7 +271,7 @@ function initDollarSelf( art ) {
259
271
  function initDollarParameters( art ) {
260
272
  // TODO: use setMemberParent() ?
261
273
  const parameters = {
262
- name: { id: '$parameters' },
274
+ name: { __proto__: XsnName.prototype, id: '$parameters' },
263
275
  kind: '$parameters',
264
276
  location: art.location,
265
277
  deprecated: true, // hide in code completion
@@ -904,6 +916,8 @@ module.exports = {
904
916
  dependsOn,
905
917
  dependsOnSilent,
906
918
  initItemsLinks,
919
+ itemsArtifact,
920
+ outerArtifact,
907
921
  setMemberParent,
908
922
  createAndLinkCalcDepElement,
909
923
  initExprAnnoBlock,
@@ -978,9 +978,9 @@ function xpr2edmJson( carrier, anno, location, options, messageFunctions, generi
978
978
  return xpr;
979
979
  }
980
980
 
981
- // "'=': true" has no meaning as an OData operator here and must be removed
981
+ // "'=': true" or "'=': "some.path" has no meaning as an OData operator here and must be removed
982
982
  // before transform runs, otherwise transform['='] misinterprets it as $Eq.
983
- if (xpr['='] === true)
983
+ if (xpr['='] === true || typeof xpr['='] === 'string')
984
984
  delete xpr['='];
985
985
 
986
986
  if (xpr.list)
@@ -1037,7 +1037,7 @@ function xpr2edmJson( carrier, anno, location, options, messageFunctions, generi
1037
1037
  caseObj.push(xpr[pos + 1]);
1038
1038
  pos += 2;
1039
1039
  }
1040
- if (xpr[pos++]?.toLowerCase?.() !== 'end')
1040
+ if (xpr[pos]?.toLowerCase?.() !== 'end')
1041
1041
  return xpr;
1042
1042
  return {
1043
1043
  case: caseObj,
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- const { isEdmPropertyRendered, transformAnnotationExpression } = require('../../model/csnUtils');
3
+ const { isEdmPropertyRendered, transformAnnotationExpression } = require('../../base/csnUtils');
4
4
  const { isBuiltinType, isMagicVariable } = require('../../base/builtins');
5
5
  const edmUtils = require('../edmUtils.js');
6
6
  const oDataDictionary = require('../../gen/Dictionary.json');
7
7
  const preprocessAnnotations = require('./preprocessAnnotations.js');
8
- const { forEachDefinition } = require('../../model/csnUtils');
8
+ const { forEachDefinition } = require('../../base/csnUtils');
9
9
  const { isBetaEnabled } = require('../../base/specialOptions.js');
10
10
  const { setProp } = require('../../utils/objectUtils.js');
11
11
  const { xpr2edmJson, getEdmJsonHandler } = require('./edmJson.js');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const { forEachDefinition, forEachGeneric } = require('../../model/csnUtils.js');
3
+ const { forEachDefinition, forEachGeneric } = require('../../base/csnUtils.js');
4
4
 
5
5
 
6
6
  /** ************************************************************************************************
@@ -201,7 +201,6 @@ function preprocessAnnotations( csn, serviceName, options, messageFunctions ) {
201
201
  // valueListProp: the (single) key field of the value list entity
202
202
  // ignore the artificial key "IsActiveEntity" for draft-enabled entities
203
203
  // if no key or multiple keys -> message
204
- let valueListProp = null;
205
204
  const keys = Object.keys(vlEntity.elements).filter( x => vlEntity.elements[x].key && !vlEntity.elements[x].target &&
206
205
  !(vlEntity['@odata.draft.enabled'] && x === 'IsActiveEntity')); // ignore added key for draft entities
207
206
  if (keys.length === 0) {
@@ -211,7 +210,7 @@ function preprocessAnnotations( csn, serviceName, options, messageFunctions ) {
211
210
  else if (keys.length > 1) {
212
211
  message('odata-anno-preproc', [ ...location, anno ], { anno, name: enameFull, '#': 'vhlmultkeys' });
213
212
  }
214
- valueListProp = keys[0];
213
+ const valueListProp = keys[0];
215
214
 
216
215
  // textField:
217
216
  // first entry of @UI.Identification
@@ -13,7 +13,7 @@ const { setProp } = require('../utils/objectUtils');
13
13
  const { isBetaEnabled } = require('../base/specialOptions');
14
14
  const {
15
15
  isEdmPropertyRendered, getUtils, findAnnotationExpression,
16
- } = require('../model/csnUtils');
16
+ } = require('../base/csnUtils');
17
17
  const { isBuiltinType } = require('../base/builtins');
18
18
  const { checkCSNVersion } = require('../json/csnVersion');
19
19
  const {
@@ -1166,13 +1166,12 @@ function getEdm( options ) {
1166
1166
  }
1167
1167
  if (_constraints.constraints) {
1168
1168
  Object.values(_constraints.constraints)
1169
- .forEach(c => this.append(
1170
- new ReferentialConstraint(this._v,
1171
- {
1172
- Property: c[i].join(options.pathDelimiter),
1173
- ReferencedProperty: c[j].join(options.pathDelimiter),
1174
- } )
1175
- ));
1169
+ .forEach((c) => {
1170
+ this.append(new ReferentialConstraint(this._v, {
1171
+ Property: c[i].join(options.pathDelimiter),
1172
+ ReferencedProperty: c[j].join(options.pathDelimiter),
1173
+ }));
1174
+ });
1176
1175
  }
1177
1176
  }
1178
1177
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  const edmUtils = require('./edmUtils.js');
4
4
  const { setProp } = require('../utils/objectUtils');
5
- const { forEachGeneric } = require('../model/csnUtils');
5
+ const { forEachGeneric } = require('../base/csnUtils');
6
6
 
7
7
  /*
8
8
  * Late application specific transformations
@@ -5,7 +5,7 @@ const { isBetaEnabled } = require('../base/specialOptions');
5
5
  const {
6
6
  forEachDefinition, forEachMemberRecursively, getUtils,
7
7
  transformAnnotationExpression,
8
- } = require('../model/csnUtils');
8
+ } = require('../base/csnUtils');
9
9
  const { isBuiltinType } = require('../base/builtins');
10
10
  const { assignAnnotation } = require('./edmUtils.js');
11
11
 
@@ -8,7 +8,7 @@ const {
8
8
  applyTransformations, applyTransformationsOnNonDictionary,
9
9
  transformAnnotationExpression, findAnnotationExpression,
10
10
  cardinality2str,
11
- } = require('../model/csnUtils');
11
+ } = require('../base/csnUtils');
12
12
  const { isBuiltinType, isMagicVariable } = require('../base/builtins');
13
13
  const edmUtils = require('./edmUtils.js');
14
14
  const edmAnnoPreproc = require('./edmAnnoPreprocessor.js');
@@ -3,7 +3,7 @@
3
3
  const { setProp } = require('../utils/objectUtils');
4
4
  const {
5
5
  isEdmPropertyRendered, applyTransformations,
6
- } = require('../model/csnUtils');
6
+ } = require('../base/csnUtils');
7
7
  const { isBuiltinType } = require('../base/builtins');
8
8
  const { escapeString, hasControlCharacters, hasUnpairedUnicodeSurrogate } = require('../render/utils/stringEscapes');
9
9
  const { CompilerAssertion } = require('../base/error');
@@ -113,7 +113,7 @@ function resolveOnConditionAndPrepareConstraints( csn, assocCsn, messageFunction
113
113
  getExpressionArguments(assocCsn.on);
114
114
 
115
115
  // for all $self conditions, fill constraints of partner (if any)
116
- let isBacklink = assocCsn._constraints.selfs.length === 1 && assocCsn._constraints.termCount === 1;
116
+ let isBacklink = assocCsn.$backlink || (assocCsn._constraints.selfs.length === 1 && assocCsn._constraints.termCount === 1);
117
117
 
118
118
  /* example for _originalTarget:
119
119
  entity E (with parameters) {
@@ -262,13 +262,18 @@ function finalizeReferentialConstraints( csn, assocCsn, options, info ) {
262
262
  // if the origin assoc is marked as primary key and if it's managed, add all its foreign keys as constraint
263
263
  // as they are also primary keys of the origin entity as well
264
264
  if (!assocCsn._target.$isParamEntity && originAssocCsn.key && originAssocCsn.keys) {
265
+ const renames = Object.create(null);
266
+ for (const bk of (assocCsn.$backlink?.keys ?? [])) {
267
+ if (bk.as)
268
+ renames[bk.as] = bk.ref[0];
269
+ }
265
270
  for (const fk of originAssocCsn.keys) {
266
271
  const realFk = originAssocCsn._parent.elements[fk.$generatedFieldName];
267
- const pk = assocCsn._parent.elements[fk.ref[0]];
272
+ const pkName = renames[fk.ref[0]] ?? fk.ref[0];
273
+ const pk = assocCsn._parent.elements[pkName];
268
274
  if (isConstraintCandidate(pk) && isConstraintCandidate(realFk)) {
269
- const c = [ [ fk.ref[0] ], [ fk.$generatedFieldName ] ];
270
- const key = c.join(',');
271
- assocCsn._constraints.constraints[key] = c;
275
+ const c = [ [ pkName ], [ fk.$generatedFieldName ] ];
276
+ assocCsn._constraints.constraints[c.join(',')] = c;
272
277
  }
273
278
  }
274
279
  }
@@ -362,7 +367,7 @@ function finalizeReferentialConstraints( csn, assocCsn, options, info ) {
362
367
  // Filter out all elements that are annotated with '@cds.api.ignore'
363
368
 
364
369
  // In structured format, foreign keys of managed associations are never rendered, so
365
- // there are no constraints for them.
370
+ // there are no constraints for them. -> not true with "--odata-foreign-keys" flag
366
371
  const remainingPrincipalRefs = [];
367
372
  for (const fk of assocCsn.keys) {
368
373
  const realFk = assocCsn._parent.items ? assocCsn._parent.items.elements[fk.$generatedFieldName] : assocCsn._parent.elements[fk.$generatedFieldName];
@@ -1 +1 @@
1
- bfa8a04d3ff1bc96f00a7f8d532f11d0
1
+ 03f001bb7b3d56e0aff54a052723fa25
@@ -1605,7 +1605,7 @@ case 32:switch(this.lk()){
1605
1605
  case'as':this.ck(33);continue
1606
1606
  default:if(this.gr()){ this.classifyImplicitName( 'Using' ); }continue
1607
1607
  }
1608
- case 33:if(this.mi(0,'UsingAlias')){ $.proxy.name = this.identAst(); }continue
1608
+ case 33:if(this.mi(0,'UsingAlias')){ $.proxy.name = this.identNameAst(); }continue
1609
1609
  default:
1610
1610
  this.attachLocation( $.proxy )
1611
1611
  return this.exit_()
@@ -2876,7 +2876,7 @@ case'localized':if(this.ck(377)){ $.art.localized = this.valueWithLocation( true
2876
2876
  case'association':if(this.ck(379)){assoc=this.lb();this.elementRestriction('calc')}continue;
2877
2877
  case'composition':if(this.ck(383)){assoc=this.lb();this.elementRestriction('calc')}continue;
2878
2878
  case'array':if(this.ck(387)){this.elementRestriction('calc')}continue;
2879
- case'many':if(this.ck(388)){this.elementRestriction('calc'); $.art.items = { location: this.lb().location }; }continue
2879
+ case'many':if(this.ck(388)){this.elementRestriction('calc'); $.art.items = { __proto__: XsnArtifact.prototype, location: this.lb().location }; }continue
2880
2880
  case'{':if(this.elementsBlock({art:$.art},393)){this.elementRestriction('calc')}continue;
2881
2881
  default:this.e();continue
2882
2882
  }
@@ -2940,7 +2940,7 @@ case'Id':this.typeAssocProperties({art:$.art,assoc,card},0);continue
2940
2940
  case'{':if(this.elementsBlock({art:this.setAssocAndComposition( $.art, assoc, card )},0)){ $.art.target.location = $.art.target.elements[Symbol.for('cds.$location')]; }continue
2941
2941
  default:this.e();continue
2942
2942
  }
2943
- case 387:if(this.mk(388,'of')){ $.art.items = { location: this.locationOfPrevTokens( 2 ) }; }continue
2943
+ case 387:if(this.mk(388,'of')){ $.art.items = { __proto__: XsnArtifact.prototype, location: this.locationOfPrevTokens( 2 ) }; }continue
2944
2944
  case 388:switch(this.l()){
2945
2945
  case'Id':this.typeRefOptArgs({art:$.art.items},389);continue
2946
2946
  case'type':this.typeTypeOf({art:$.art.items},389);continue
@@ -3237,7 +3237,7 @@ case 466:switch(this.lk()){
3237
3237
  case'all':case'distinct':if(this.ck(467)){ quantifier = this.valueWithLocation(); }continue
3238
3238
  default:this.s=467;continue
3239
3239
  }
3240
- case 467:if(this.queryExpression(_={},464)){query=_.expr;this.orderByLimitRestriction(); if ($.expr.$parens || op.val !== $.expr.op?.val || quantifier?.val !== $.expr.quantifier?.val) $.expr = { op, args: [$.expr], quantifier, location: { ...$.expr.location } };
3240
+ case 467:if(this.queryExpression(_={},464)){query=_.expr;this.orderByLimitRestriction(); if ($.expr.$parens || op.val !== $.expr.op?.val || quantifier?.val !== $.expr.quantifier?.val) $.expr = { op, args: [$.expr], quantifier, location: this.locationCopy( $.expr.location ) };
3241
3241
  quantifier = undefined;
3242
3242
  $.expr.args.push( query ); this.attachLocation( $.expr ); }continue
3243
3243
  case 468:switch(this.l()){
@@ -3300,7 +3300,7 @@ default:this.s=484;continue
3300
3300
  }
3301
3301
  case 484:this.s=485;{this.inSelectItem('sqlStyle')}continue;
3302
3302
  case 485:switch(this.lt()){
3303
- case'*':if(this.c(486)){ $.query.columns = [ this.valueWithLocation() ]; }continue
3303
+ case'*':if(this.c(486)){ $.query.columns = [ this.wildcardColumn() ]; }continue
3304
3304
  case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:($.query.columns = []),sqlStyle:true},486);continue
3305
3305
  default:this.e();continue
3306
3306
  }
@@ -3309,7 +3309,7 @@ case',':this.c(487);continue
3309
3309
  default:this.s=488;continue
3310
3310
  }
3311
3311
  case 487:switch(this.lt()){
3312
- case'*':if(this.c(486)){ $.query.columns.push( this.valueWithLocation() ); }continue
3312
+ case'*':if(this.c(486)){ $.query.columns.push( this.wildcardColumn() ); }continue
3313
3313
  case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns,sqlStyle:true},486);continue
3314
3314
  default:this.e();continue
3315
3315
  }
@@ -3408,7 +3408,7 @@ case'as':this.ck(514);continue
3408
3408
  case'Id':if(this.ci(0,'FromAlias')){ $.expr = this.taggedIfQuery( $.expr ); $.expr.name = this.fragileAlias(); }continue
3409
3409
  default:this.gr(['full','join','left','cross','inner','right']);continue
3410
3410
  }
3411
- case 514:if(this.mi(0,'FromAlias')){ $.expr = this.taggedIfQuery( $.expr ); $.expr.name = this.identAst(); }continue
3411
+ case 514:if(this.mi(0,'FromAlias')){ $.expr = this.taggedIfQuery( $.expr ); $.expr.name = this.identNameAst(); }continue
3412
3412
  default:return this.exit_()
3413
3413
  }
3414
3414
  }
@@ -3455,7 +3455,7 @@ case'as':this.ck(526);continue
3455
3455
  case'Id':if(this.ci(0,'FromAlias')){ $.expr.name = this.fragileAlias(); }continue
3456
3456
  default:this.s=527;continue
3457
3457
  }
3458
- case 526:if(this.mi(0,'FromAlias')){ $.expr.name = this.identAst(); }continue
3458
+ case 526:if(this.mi(0,'FromAlias')){ $.expr.name = this.identNameAst(); }continue
3459
3459
  case 527:if(this.gr()){ this.classifyImplicitName( $.expr.scope ? 'FromElemImplicit' : 'FromImplicit', $.expr ); }continue
3460
3460
  default:
3461
3461
  this.attachLocation( $.expr )
@@ -3590,7 +3590,7 @@ this.rule_(566,$next)
3590
3590
  for(;;)switch(this.s){
3591
3591
  case 566:if(this.m(567,'{')){this.inSelectItem('top'); $.query.columns = this.createArray( $.start ); }continue
3592
3592
  case 567:switch(this.lt()){
3593
- case'*':if(this.c(568)){ $.query.columns.push( this.valueWithLocation() ); }continue
3593
+ case'*':if(this.c(568)){ $.query.columns.push( this.wildcardColumn() ); }continue
3594
3594
  case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns,sqlStyle:false},568);continue
3595
3595
  default:this.s=569;continue
3596
3596
  }
@@ -3608,7 +3608,7 @@ this.rule_(571,$next)
3608
3608
  for(;;)switch(this.s){
3609
3609
  case 571:if(this.m(572,'{')){this.inSelectItem(); $.query[$.clause] = this.createArray(); }continue
3610
3610
  case 572:switch(this.lt()){
3611
- case'*':if(this.c(573)){ $.query[$.clause].push( this.valueWithLocation() ); }continue
3611
+ case'*':if(this.c(573)){ $.query[$.clause].push( this.wildcardColumn() ); }continue
3612
3612
  case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query[$.clause],sqlStyle:false},573);continue
3613
3613
  default:this.s=574;continue
3614
3614
  }
@@ -3652,7 +3652,7 @@ case'as':this.ck(582);continue
3652
3652
  case'Id':if(this.ci(591,'ItemAlias')){ art.name = this.fragileAlias( true ); }continue
3653
3653
  default:this.s=591;continue
3654
3654
  }
3655
- case 582:if(this.mi(591,'ItemAlias')){ art.name = this.identAst(); }continue
3655
+ case 582:if(this.mi(591,'ItemAlias')){ art.name = this.identNameAst(); }continue
3656
3656
  case 583:switch(this.l()){
3657
3657
  case'over':if(this.ck(584)){ this.pushXprToken( expr.suffix = [] ); }continue
3658
3658
  case'*':case'+':case'-':case'/':case'<':case'=':case'>':case'?':case'!=':case'<=':case'<>':case'==':case'>=':case'in':case'is':case'or':case'||':case'and':case'not':case'like':case'between':if(this.expression(_={ expr: expr },586,666)){e=_.expr; Object.assign( e.location || {}, expr.location ); art.value = this.attachLocation( e ) }continue
@@ -3672,11 +3672,11 @@ case'as':this.ck(587);continue
3672
3672
  case'Id':if(this.ci(591,'ItemAlias')){ art.name = this.fragileAlias( true ); }continue
3673
3673
  default:this.s=591;continue
3674
3674
  }
3675
- case 587:if(this.mi(591,'ItemAlias')){ art.name = this.identAst(); }continue
3676
- case 588:if(this.mi(591,'ItemAlias')){this.nestedExpand(); art.name = this.identAst(); }continue
3675
+ case 587:if(this.mi(591,'ItemAlias')){ art.name = this.identNameAst(); }continue
3676
+ case 588:if(this.mi(591,'ItemAlias')){this.nestedExpand(); art.name = this.identNameAst(); }continue
3677
3677
  case 589:switch(this.lt()){
3678
3678
  case'{':this.nestedSelectItemsList({query:art,clause:'inline'},590);continue
3679
- case'*':if(this.c(0)){ art.inline = [ this.valueWithLocation() ]; }continue
3679
+ case'*':if(this.c(0)){ art.inline = [ this.wildcardColumn() ]; }continue
3680
3680
  default:this.e();continue
3681
3681
  }
3682
3682
  case 590:switch(this.lk()){
@@ -3697,7 +3697,7 @@ case'excluding':this.excludingClause({query:art},595);continue
3697
3697
  default:this.s=595;continue
3698
3698
  }
3699
3699
  case 595:this.mk(596,'as');continue
3700
- case 596:if(this.mi(597,'ItemAlias')){ art.name = this.identAst(); }continue
3700
+ case 596:if(this.mi(597,'ItemAlias')){ art.name = this.identNameAst(); }continue
3701
3701
  case 597:this.s=598;{this.columnExpr(); this.docComment( art ); }continue
3702
3702
  case 598:switch(this.lt()){
3703
3703
  case'@':this.annoAssignMid({art},598);continue
@@ -589,6 +589,13 @@
589
589
  "$experimental": true,
590
590
  "Type": "Edm.String"
591
591
  },
592
+ "Common.ExpandAfterConcatSupported": {
593
+ "$experimental": true,
594
+ "AppliesTo": [
595
+ "EntityContainer"
596
+ ],
597
+ "Type": "Core.Tag"
598
+ },
592
599
  "Common.Experimental": {
593
600
  "Type": "Edm.String"
594
601
  },
@@ -120,7 +120,7 @@ const { quotedLiteralPatterns } = require('../compiler/builtins');
120
120
  const { exprProperties, isAnnotationExpression } = require('../base/builtins');
121
121
  const { CompilerAssertion } = require('../base/error');
122
122
  const { Location } = require('../base/location');
123
- const { XsnSource } = require('../compiler/xsn-model');
123
+ const { XsnSource, XsnArtifact, XsnName } = require('../compiler/xsn-model');
124
124
  const { isValidEnumValue } = require( '../compiler/base' );
125
125
  const { xsnAsTree, splitClauses } = require('../parsers/XprTree');
126
126
 
@@ -276,7 +276,7 @@ const schema = compileSchema( {
276
276
  ],
277
277
  },
278
278
  actions: {
279
- dictionaryOf: actions,
279
+ dictionaryOf: definition,
280
280
  defaultKind: 'action',
281
281
  validKinds: [ 'action', 'function' ],
282
282
  onlyWith: { aspect: 'elements' },
@@ -385,6 +385,7 @@ const schema = compileSchema( {
385
385
  type: object,
386
386
  optional: typeProperties, // TODO: think of items: {}, then requires: false
387
387
  inKind: [ 'element', 'type', 'param', 'annotation' ],
388
+ instanceOf: XsnArtifact,
388
389
  },
389
390
  localized: {
390
391
  type: boolOrNull,
@@ -941,7 +942,9 @@ function object( obj, spec ) {
941
942
  if (!isObject( obj, spec ))
942
943
  return undefined;
943
944
  pushLocation( obj );
944
- const r = { location: location() };
945
+ const r = spec.instanceOf
946
+ ? { __proto__: spec.instanceOf.prototype, location: location() }
947
+ : { location: location() };
945
948
  const xor = {};
946
949
  const csnProps = Object.keys( obj );
947
950
  const o = eventualCast( obj, spec, r ); // do s/th special for CAST
@@ -990,14 +993,15 @@ function vZeroDelete( o, spec ) { // for old-CSN property 'origin'
990
993
  function definition( def, spec, xsn, csn, name ) {
991
994
  if (!isObject( def, spec )) {
992
995
  return {
996
+ __proto__: XsnArtifact.prototype,
993
997
  kind: (inExtensions ? 'annotate' : spec.defaultKind),
994
- name: { id: '', location: location() },
998
+ name: { __proto__: XsnName.prototype, id: '', location: location() },
995
999
  location: location(),
996
1000
  };
997
1001
  }
998
1002
  pushLocation( def );
999
1003
  const savedInExtensions = inExtensions;
1000
- const r = { location: location(), kind: undefined };
1004
+ const r = { __proto__: XsnArtifact.prototype, location: location(), kind: undefined };
1001
1005
  const kind = calculateKind( def, spec, r ); // might set inExtensions
1002
1006
  if (kind !== '$column')
1003
1007
  r.kind ??= kind;
@@ -1020,7 +1024,7 @@ function definition( def, spec, xsn, csn, name ) {
1020
1024
  }
1021
1025
  }
1022
1026
  if (!r.name && name != null) {
1023
- r.name = { id: name, location: r.location };
1027
+ r.name = { __proto__: XsnName.prototype, id: name, location: r.location };
1024
1028
  if (prop === 'columns' || prop === 'keys' || prop === 'foreignKeys')
1025
1029
  r.name.$inferred = 'as';
1026
1030
  }
@@ -1062,22 +1066,6 @@ function couldBeEnumProperty( prop ) {
1062
1066
  (!Array.isArray( inKind ) || prop === 'value' || inKind.includes( 'enum' ));
1063
1067
  }
1064
1068
 
1065
- function actions( def, spec, xsn, csn, name ) {
1066
- if (def.kind === 'extend' && (def.elements || def.enum)) {
1067
- // TODO: Handle this case in extend.js; already done for `returns`
1068
- // See message ext-expecting-returns
1069
- // TODO: the location would also bad here
1070
- // (should be at the property, not containing object - but we remove this anyway)
1071
- error( 'syntax-unexpected-property', location(true), {
1072
- '#': def.kind,
1073
- prop: def.enum ? 'enum' : 'elements',
1074
- parentprop: spec.msgProp,
1075
- kind: def.kind,
1076
- } );
1077
- }
1078
- return definition( def, spec, xsn, csn, name );
1079
- }
1080
-
1081
1069
  // A dictionary is expected. Uses spec.dictionaryOf. If unset, default is "definition".
1082
1070
  function dictionaryOf( elementFct ) {
1083
1071
  return function dictionary( dict, spec ) {
@@ -1126,7 +1114,7 @@ function keys( array, spec, xsn ) {
1126
1114
  // Use with spec.msgVariant: 'or-asterisk'
1127
1115
  function selectItem( def, spec, xsn, csn ) {
1128
1116
  if (def === '*') // compile() will complain about repeated '*'s
1129
- return { val: '*', location: location() };
1117
+ return { __proto__: XsnArtifact.prototype, val: '*', location: location() };
1130
1118
 
1131
1119
  return definition( def, spec, xsn, csn, null ); // definer sets name
1132
1120
  }
@@ -1144,6 +1132,8 @@ function includeRefs( def, spec, xsn, csn ) {
1144
1132
  ? postpone
1145
1133
  : 0;
1146
1134
  } );
1135
+ // TODO v8: if not on ext and no CSN $postponeIncludes, set $postponeInclude
1136
+ // on 1st include to -1 (there are too many `includes` places in the CDL parser )
1147
1137
  }
1148
1138
  return array;
1149
1139
  }
@@ -1182,7 +1172,9 @@ function elementsDict( def, spec, xsn ) {
1182
1172
  { prop: 'elements', parentprop: 'returns' },
1183
1173
  // eslint-disable-next-line @stylistic/max-len
1184
1174
  'Expecting property $(PROP) to be put into an object for property $(PARENTPROP) when annotating action return structures' );
1185
- xsn.returns = { kind: 'annotate', elements, location: elements[$location] };
1175
+ xsn.returns = {
1176
+ __proto__: XsnArtifact.prototype, kind: 'annotate', elements, location: elements[$location],
1177
+ };
1186
1178
  return undefined;
1187
1179
  }
1188
1180
 
@@ -1190,7 +1182,7 @@ function enumDict( def, spec, xsn ) {
1190
1182
  const dict = dictionaryOf( definition )( def, spec );
1191
1183
  if (!inExtensions)
1192
1184
  return dict;
1193
- xsn.elements = dict; // normalize to `elements` for `annotate`
1185
+ xsn.elements = dict; // normalize to `elements` for `annotate` (not `extend`)
1194
1186
  return undefined;
1195
1187
  }
1196
1188
 
@@ -1212,12 +1204,16 @@ function kindAndName( id, spec, xsn ) {
1212
1204
  xsn.kind = prop; // TODO: set this in definition
1213
1205
  if (!string( id, spec ))
1214
1206
  return;
1215
- xsn.name = { path: [ { id, location: location() } ], location: location() };
1207
+ xsn.name = {
1208
+ __proto__: XsnName.prototype,
1209
+ path: [ { id, location: location() } ],
1210
+ location: location(),
1211
+ };
1216
1212
  }
1217
1213
 
1218
1214
  function explicitName( id, spec, xsn ) {
1219
1215
  if (string( id, spec ))
1220
- xsn.name = { id, location: location() };
1216
+ xsn.name = { __proto__: XsnName.prototype, id, location: location() };
1221
1217
  }
1222
1218
 
1223
1219
  function abstract( val, spec, xsn, csn ) {
@@ -1529,7 +1525,7 @@ function annotation( val, spec, xsn, csn, name ) {
1529
1525
  if (!id) // `"@": …` is already syntax-unknown-property
1530
1526
  message( 'syntax-invalid-name', location(true), { '#': '{}' } );
1531
1527
 
1532
- const n = { id, location: location() };
1528
+ const n = { __proto__: XsnName.prototype, id, location: location() };
1533
1529
  const r = annoValue( val, spec );
1534
1530
  r.name = n;
1535
1531
  return r;
@@ -1652,7 +1648,7 @@ function args( exprs, spec ) {
1652
1648
  for (const id of Object.keys( exprs )) {
1653
1649
  const a = expr( exprs[id], s );
1654
1650
  if (a) {
1655
- a.name = { id, location: a.location };
1651
+ a.name = { __proto__: XsnName.prototype, id, location: a.location };
1656
1652
  r[id] = a;
1657
1653
  }
1658
1654
  ++virtualLine;
@@ -1771,7 +1767,11 @@ function excluding( array, spec, xsn ) {
1771
1767
  ++virtualLine; // possibly empty array
1772
1768
  for (const ex of array) {
1773
1769
  const id = string( ex, spec ) || '';
1774
- dictAdd( r, id, { name: { id, location: location() }, location: location() },
1770
+ dictAdd( r, id,
1771
+ {
1772
+ name: { __proto__: XsnName.prototype, id, location: location() },
1773
+ location: location(),
1774
+ },
1775
1775
  duplicateExcluding );
1776
1776
  ++virtualLine;
1777
1777
  }
@@ -567,7 +567,7 @@ function keepElements( node, line ) {
567
567
  const ltype = line.type && line.type._artifact;
568
568
  if (!array || // reference errors
569
569
  array._main && !line.elements && !line.enum && !line.items && !line.notNull &&
570
- (!ltype || !ltype._main)) // many Foo:bar -> not SimpleType
570
+ (!ltype || !ltype._main)) // no line type, or elem ref as line type
571
571
  return true;
572
572
  }
573
573
  // even if expanded elements have no new target or direct annotation,
@@ -1635,6 +1635,7 @@ module.exports = {
1635
1635
  compactModel,
1636
1636
  compactQuery,
1637
1637
  compactExpr,
1638
+ csnVersion,
1638
1639
  csnDictionaries,
1639
1640
  csnDirectValues,
1640
1641
  csnPropertyOrder: propertyOrder,