@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.
- package/CHANGELOG.md +53 -0
- package/bin/add.js +7 -2
- package/bin/bind.js +0 -2
- package/bin/bindings.js +35 -0
- package/bin/build.js +11 -6
- package/bin/compile/index.js +1 -0
- package/bin/completion/index.js +10 -448
- package/bin/completion/scripts/cds.fish +24 -16
- package/bin/completion/scripts/cds.ps1 +26 -25
- package/bin/completion/scripts/cds.sh +22 -19
- package/bin/completion/scripts/cds.zsh +22 -19
- package/bin/deploy/index.js +1 -1
- package/bin/deploy/to-hana/hana.js +5 -4
- package/bin/env.js +0 -1
- package/bin/eval.js +9 -5
- package/bin/export.js +6 -4
- package/bin/help/export.md +28 -4
- package/bin/import.js +6 -5
- package/bin/inspect.js +0 -1
- package/bin/login.js +28 -3
- package/bin/repl.js +82 -26
- package/bin/run.js +6 -7
- package/bin/serve.js +6 -7
- package/bin/up.js +7 -2
- package/bin/upgrade/steps/install.js +6 -6
- package/bin/watch/index.js +1 -0
- package/lib/build/index.js +11 -7
- package/lib/build/plugins/featureToggles.js +2 -2
- package/lib/build/plugins/hana/index.js +1 -1
- package/lib/build/plugins/helm/files/subcharts/web-application/Chart.yaml +1 -1
- package/lib/build/plugins/helm/files/subcharts/web-application/templates/_helpers.tpl +7 -0
- package/lib/build/plugins/helm/files/subcharts/web-application/templates/api-rule.yaml +1 -0
- package/lib/build/plugins/helm/files/subcharts/web-application/templates/service-binding.yaml +4 -4
- package/lib/build/plugins/helm/files/subcharts/web-application/values.schema.json +13 -0
- package/lib/build/plugins/helm/files/subcharts/web-application/values.yaml +7 -1
- package/lib/build/plugins/internal.js +0 -26
- package/lib/build/plugins/java/index.js +5 -1
- package/lib/build/plugins/nodejs/index.js +13 -4
- package/lib/build/util.js +4 -5
- package/lib/cds.js +8 -2
- package/lib/env/schemas/cds-rc.js +5 -0
- package/lib/import/importapi.js +2 -3
- package/lib/init/constants.js +1 -1
- package/lib/init/index.js +8 -3
- package/lib/init/merge.js +21 -17
- package/lib/init/plugin.js +1 -1
- package/lib/init/projectReader.js +13 -10
- package/lib/init/registries/mta.js +0 -6
- package/lib/init/template/ai/index.js +4 -4
- package/lib/init/template/ams/files/extensionDeveloper.dcl +6 -0
- package/lib/init/template/ams/files/mta.yaml.hbs +6 -0
- package/lib/init/template/ams/files/sidecar.package.json.hbs +5 -0
- package/lib/init/template/ams/index.js +42 -40
- package/lib/init/template/app-frontend/files/mta.yaml.hbs +2 -0
- package/lib/init/template/app-frontend/files/ui5.yaml.hbs +0 -4
- package/lib/init/template/app-frontend/index.js +29 -24
- package/lib/init/template/application-logging/index.js +6 -6
- package/lib/init/template/approuter/files/xs-app.json.hbs +22 -0
- package/lib/init/template/approuter/index.js +20 -13
- package/lib/init/template/attachments/index.js +3 -3
- package/lib/init/template/audit-logging/index.js +4 -4
- package/lib/init/template/cloud-logging/index.js +12 -6
- package/lib/init/template/completion/completionSetup.js +19 -6
- package/lib/init/template/connectivity/index.js +3 -3
- package/lib/init/template/data/as-csv.js +7 -4
- package/lib/init/template/data/as-json.js +77 -20
- package/lib/init/template/destination/index.js +12 -9
- package/lib/init/template/dynatrace/index.js +5 -5
- package/lib/init/template/enterprise-messaging/index.js +10 -7
- package/lib/init/template/enterprise-messaging-shared/index.js +4 -4
- package/lib/init/template/event-mesh/index.js +3 -0
- package/lib/init/template/extensibility/index.js +2 -2
- package/lib/init/template/extension/index.js +26 -0
- package/lib/init/template/github-actions/index.js +3 -3
- package/lib/init/template/hana/files/package.json.hbs +3 -2
- package/lib/init/template/hana/index.js +5 -5
- package/lib/init/template/hana-serverless/index.js +3 -3
- package/lib/init/template/html5-repo/files/mta.yaml.hbs +2 -0
- package/lib/init/template/html5-repo/files/ui5.yaml.hbs +0 -4
- package/lib/init/template/html5-repo/index.js +68 -40
- package/lib/init/template/http/index.js +1 -1
- package/lib/init/template/ias/index.js +7 -7
- package/lib/init/template/initial/files/.gitignore.hbs +1 -0
- package/lib/init/template/kafka/index.js +3 -3
- package/lib/init/template/kyma/index.js +7 -9
- package/lib/init/template/malware-scanner/index.js +3 -3
- package/lib/init/template/mta/index.js +6 -3
- package/lib/init/template/multitenancy/index.js +6 -7
- package/lib/init/template/notifications/index.js +2 -2
- package/lib/init/template/portal/index.js +16 -10
- package/lib/init/template/postgres/index.js +5 -5
- package/lib/init/template/react/files/index.html.hbs +1 -1
- package/lib/init/template/react/files/package.json.hbs +3 -2
- package/lib/init/template/react/files/src/{App.jsx.hbs → App.{{jsxExtension}}.hbs} +8 -2
- package/lib/init/template/react/files/src/{main.jsx → main.{{jsxExtension}}.hbs} +2 -2
- package/lib/init/template/react/index.js +23 -4
- package/lib/init/template/react/typescript/src/vite-env.d.ts +1 -0
- package/lib/init/template/react/typescript/tsconfig.json.hbs +16 -0
- package/lib/init/template/redis/index.js +2 -2
- package/lib/init/template/side-by-side-extensibility/index.js +6 -3
- package/lib/init/template/typescript/files/tsconfig.json +3 -1
- package/lib/init/template/vue/files/index.html.hbs +1 -1
- package/lib/init/template/vue/files/package.json.hbs +2 -1
- package/lib/init/template/vue/files/src/App.vue.hbs +8 -2
- package/lib/init/template/vue/index.js +20 -4
- package/lib/init/template/vue/typescript/tsconfig.json +11 -0
- package/lib/init/template/workzone-standard/files/mta.yaml.hbs +2 -2
- package/lib/init/template/workzone-standard/index.js +30 -28
- package/lib/init/template/xsuaa/files/mta.yaml.hbs +1 -1
- package/lib/init/template/xsuaa/files/values.yaml.hbs +1 -1
- package/lib/init/template/xsuaa/index.js +34 -22
- package/lib/mtx/auth_manager.js +8 -2
- package/lib/mtx/browser_login.js +181 -0
- package/lib/mtx/params.js +6 -0
- package/lib/mtx/settings_manager.js +29 -4
- package/lib/util/cf.js +44 -8
- package/lib/util/fs.js +2 -2
- package/node_modules/@cap-js/db-service/CHANGELOG.md +23 -0
- package/node_modules/@cap-js/db-service/lib/cqn2pql.js +4 -0
- package/node_modules/@cap-js/db-service/lib/cqn2sql.js +3 -0
- package/node_modules/@cap-js/db-service/lib/cqn4sql.js +17 -28
- package/node_modules/@cap-js/db-service/lib/infer/index.js +20 -27
- package/node_modules/@cap-js/db-service/package.json +1 -1
- package/node_modules/@cap-js/openapi/cds-plugin.js +12 -0
- package/node_modules/@cap-js/openapi/index.js +3 -1
- package/node_modules/@cap-js/openapi/lib/compile/csdl2openapi.js +652 -413
- package/node_modules/@cap-js/openapi/lib/compile/diagram.js +16 -13
- package/node_modules/@cap-js/openapi/lib/compile/index.js +10 -7
- package/node_modules/@cap-js/openapi/lib/compile/property-util.js +51 -0
- package/{lib/import/openapi → node_modules/@cap-js/openapi/lib/import}/importOpenAPI.js +12 -9
- package/{lib/import/openapi → node_modules/@cap-js/openapi/lib/import}/index.js +4 -3
- package/node_modules/@cap-js/openapi/package.json +71 -3
- package/node_modules/@cap-js/sqlite/CHANGELOG.md +18 -0
- package/node_modules/@cap-js/sqlite/package.json +3 -3
- package/node_modules/@isaacs/fs-minipass/LICENSE +15 -0
- package/node_modules/@isaacs/fs-minipass/README.md +71 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts +118 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +430 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js.map +1 -0
- package/node_modules/@isaacs/fs-minipass/dist/commonjs/package.json +3 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts +118 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts.map +1 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/index.js +420 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/index.js.map +1 -0
- package/node_modules/@isaacs/fs-minipass/dist/esm/package.json +3 -0
- package/node_modules/@isaacs/fs-minipass/package.json +72 -0
- package/node_modules/@sap/cds/CHANGELOG.md +71 -1
- package/node_modules/@sap/cds/_i18n/messages_ar.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_bg.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_cs.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_da.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_de.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_el.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_en.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_es.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_es_MX.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_fi.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_fr.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_he.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_hr.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_hu.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_it.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_ja.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_kk.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_ko.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_ms.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_nl.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_no.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_pl.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_pt.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_ro.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_ru.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_sh.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_sk.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_sl.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_sv.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_th.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_tr.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_uk.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_vi.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_zh_CN.properties +1 -0
- package/node_modules/@sap/cds/_i18n/messages_zh_TW.properties +1 -0
- package/node_modules/@sap/cds/app/index-client.js +164 -0
- package/node_modules/@sap/cds/app/index.css +598 -87
- package/node_modules/@sap/cds/app/index.html +54 -30
- package/node_modules/@sap/cds/app/index.js +311 -67
- package/node_modules/@sap/cds/app/table.html +226 -0
- package/node_modules/@sap/cds/app/table.js +302 -0
- package/node_modules/@sap/cds/bin/serve.js +3 -2
- package/node_modules/@sap/cds/common.cds +3 -3
- package/node_modules/@sap/cds/eslint.config.mjs +2 -0
- package/node_modules/@sap/cds/lib/compile/cdsc.js +7 -0
- package/node_modules/@sap/cds/lib/compile/for/embeddings.js +27 -0
- package/node_modules/@sap/cds/lib/compile/load.js +2 -2
- package/node_modules/@sap/cds/lib/compile/minify.js +17 -2
- package/node_modules/@sap/cds/lib/compile/parse.js +3 -0
- package/node_modules/@sap/cds/lib/compile/resolve.js +16 -14
- package/node_modules/@sap/cds/lib/core/classes.js +1 -0
- package/node_modules/@sap/cds/lib/dbs/cds-deploy.js +4 -5
- package/node_modules/@sap/cds/lib/env/cds-env.js +132 -70
- package/node_modules/@sap/cds/lib/env/cds-requires/auth-strategies.js +62 -0
- package/node_modules/@sap/cds/lib/env/cds-requires/databases.js +49 -0
- package/node_modules/@sap/cds/lib/env/cds-requires/embeddings.js +8 -0
- package/node_modules/@sap/cds/lib/env/cds-requires/index.js +27 -0
- package/node_modules/@sap/cds/lib/env/cds-requires/messaging.js +82 -0
- package/node_modules/@sap/cds/lib/env/cds-requires/platform.js +23 -0
- package/node_modules/@sap/cds/lib/env/cds-requires/queues.js +34 -0
- package/node_modules/@sap/cds/lib/env/cds-requires/services.js +32 -0
- package/node_modules/@sap/cds/lib/env/defaults.js +9 -1
- package/node_modules/@sap/cds/lib/i18n/files.js +4 -4
- package/node_modules/@sap/cds/lib/i18n/locale.js +1 -1
- package/node_modules/@sap/cds/lib/index.js +9 -9
- package/node_modules/@sap/cds/lib/log/cds-log.js +3 -3
- package/node_modules/@sap/cds/lib/ql/SELECT.js +2 -0
- package/node_modules/@sap/cds/lib/ql/UPDATE.js +1 -1
- package/node_modules/@sap/cds/lib/ql/cds.ql-Query.js +4 -1
- package/node_modules/@sap/cds/lib/ql/core/@types/cqn.d.ts +146 -0
- package/node_modules/@sap/cds/lib/ql/core/@types/exprs.d.ts +51 -0
- package/node_modules/@sap/cds/lib/ql/core/@types/index.d.ts +29 -0
- package/node_modules/@sap/cds/lib/ql/core/@types/package.json +7 -0
- package/node_modules/@sap/cds/lib/ql/core/@types/ql/delete.d.ts +8 -0
- package/node_modules/@sap/cds/lib/ql/core/@types/ql/insert.d.ts +19 -0
- package/node_modules/@sap/cds/lib/ql/core/@types/ql/select.d.ts +24 -0
- package/node_modules/@sap/cds/lib/ql/core/@types/ql/update.d.ts +10 -0
- package/node_modules/@sap/cds/lib/ql/core/@types/query.d.ts +18 -0
- package/node_modules/@sap/cds/lib/ql/core/cql/parser.min.js +1 -0
- package/node_modules/@sap/cds/lib/ql/core/lib/index.js +69 -0
- package/node_modules/@sap/cds/lib/ql/core/lib/ql/cache.js +34 -0
- package/node_modules/@sap/cds/lib/ql/core/lib/ql/call-action.js +6 -0
- package/node_modules/@sap/cds/lib/ql/core/lib/ql/delete.js +8 -0
- package/node_modules/@sap/cds/lib/ql/core/lib/ql/insert.js +26 -0
- package/node_modules/@sap/cds/lib/ql/core/lib/ql/select.js +22 -0
- package/node_modules/@sap/cds/lib/ql/core/lib/ql/update.js +26 -0
- package/node_modules/@sap/cds/lib/ql/core/lib/query.js +85 -0
- package/node_modules/@sap/cds/lib/ql/core/lib/xl/fluent.js +47 -0
- package/node_modules/@sap/cds/lib/ql/core/lib/xl/ttl.js +24 -0
- package/node_modules/@sap/cds/lib/ql/core/license +201 -0
- package/node_modules/@sap/cds/lib/ql/core/package.json +24 -0
- package/node_modules/@sap/cds/lib/ql/core/readme.md +99 -0
- package/node_modules/@sap/cds/lib/ql/core/upstream.json +5 -0
- package/node_modules/@sap/cds/lib/req/spawn.js +1 -1
- package/node_modules/@sap/cds/lib/srv/bindings.js +111 -115
- package/node_modules/@sap/cds/lib/srv/cds-connect.js +11 -10
- package/node_modules/@sap/cds/lib/srv/cds-serve.js +16 -7
- package/node_modules/@sap/cds/lib/srv/cds.Service.js +13 -7
- package/node_modules/@sap/cds/lib/srv/factory.js +8 -10
- package/node_modules/@sap/cds/lib/srv/middlewares/auth/ias-auth.js +35 -32
- package/node_modules/@sap/cds/lib/srv/middlewares/auth/jwt-auth.js +5 -1
- package/node_modules/@sap/cds/lib/srv/middlewares/auth/mocked-users.js +1 -1
- package/node_modules/@sap/cds/lib/srv/protocols/hcql.js +230 -79
- package/node_modules/@sap/cds/lib/srv/protocols/http.js +7 -3
- package/node_modules/@sap/cds/lib/srv/protocols/index.js +7 -2
- package/node_modules/@sap/cds/lib/srv/srv-dispatch.js +2 -2
- package/node_modules/@sap/cds/lib/utils/cds-utils.js +37 -0
- package/node_modules/@sap/cds/lib/utils/csv-reader.js +2 -2
- package/node_modules/@sap/cds/libx/_runtime/common/generic/assert.js +18 -27
- package/node_modules/@sap/cds/libx/_runtime/common/generic/crud.js +8 -2
- package/node_modules/@sap/cds/libx/_runtime/common/utils/cqn.js +1 -1
- package/node_modules/@sap/cds/libx/_runtime/common/utils/rewriteAsterisks.js +1 -1
- package/node_modules/@sap/cds/libx/_runtime/fiori/lean-draft.js +122 -85
- package/node_modules/@sap/cds/libx/_runtime/messaging/common-utils/authorizedRequest.js +24 -1
- package/node_modules/@sap/cds/libx/_runtime/messaging/common-utils/normalizeIncomingMessage.js +1 -1
- package/node_modules/@sap/cds/libx/_runtime/messaging/kafka.js +1 -1
- package/node_modules/@sap/cds/libx/_runtime/remote/Service.js +2 -2
- package/node_modules/@sap/cds/libx/_runtime/remote/utils/client.js +3 -2
- package/node_modules/@sap/cds/libx/_runtime/remote/utils/query.js +11 -6
- package/node_modules/@sap/cds/libx/http/location.js +10 -11
- package/node_modules/@sap/cds/libx/odata/middleware/create.js +4 -0
- package/node_modules/@sap/cds/libx/odata/middleware/metadata.js +1 -1
- package/node_modules/@sap/cds/libx/odata/middleware/operation.js +3 -0
- package/node_modules/@sap/cds/libx/odata/middleware/parse.js +9 -0
- package/node_modules/@sap/cds/libx/odata/middleware/read.js +7 -1
- package/node_modules/@sap/cds/libx/odata/middleware/update.js +5 -1
- package/node_modules/@sap/cds/libx/odata/parse/afterburner.js +3 -3
- package/node_modules/@sap/cds/libx/odata/parse/multipartToJson.js +1 -1
- package/node_modules/@sap/cds/libx/odata/utils/ieee754.js +20 -0
- package/node_modules/@sap/cds/libx/queue/SchedulingService.js +4 -0
- package/node_modules/@sap/cds/libx/queue/api.js +1 -1
- package/node_modules/@sap/cds/libx/queue/index.js +46 -10
- package/node_modules/@sap/cds/libx/queue/processing.js +52 -16
- package/node_modules/@sap/cds/libx/queue/utils.js +3 -0
- package/node_modules/@sap/cds/libx/rest/RestAdapter.js +1 -0
- package/node_modules/@sap/cds/package.json +2 -2
- package/node_modules/@sap/cds/server.js +1 -0
- package/node_modules/@sap/cds/srv/ucl-service.cds +1 -0
- package/node_modules/@sap/cds/tasks/enterprise-messaging-deploy.js +13 -5
- package/node_modules/@sap/cds-compiler/CHANGELOG.md +83 -0
- package/node_modules/@sap/cds-compiler/bin/cdsse.js +1 -1
- package/node_modules/@sap/cds-compiler/doc/EffectiveCSN.md +3314 -0
- package/node_modules/@sap/cds-compiler/lib/api/main.js +9 -6
- package/node_modules/@sap/cds-compiler/lib/api/options.js +3 -3
- package/node_modules/@sap/cds-compiler/lib/{model → base}/csnUtils.js +5 -5
- package/node_modules/@sap/cds-compiler/lib/base/message-registry.js +54 -6
- package/node_modules/@sap/cds-compiler/lib/base/optionProcessor.js +4 -4
- package/node_modules/@sap/cds-compiler/lib/{model → base}/sortViews.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/assocOutsideService.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/checkForTypes.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/checkPathsInStoredCalcElement.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/elements.js +37 -3
- package/node_modules/@sap/cds-compiler/lib/checks/enricher.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/existsInForbiddenPlaces.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/hasPersistedElements.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/manyExpand.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/manyNavigations.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/onConditions.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/parameters.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/queryNoDbArtifacts.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/selectItems.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/structuredAnnoExpressions.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/typeParameters.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/types.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/checks/validator.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/compiler/assert-consistency.js +20 -12
- package/node_modules/@sap/cds-compiler/lib/compiler/builtins.js +9 -4
- package/node_modules/@sap/cds-compiler/lib/compiler/checks.js +50 -0
- package/node_modules/@sap/cds-compiler/lib/compiler/define.js +303 -323
- package/node_modules/@sap/cds-compiler/lib/compiler/dictionaries.js +5 -0
- package/node_modules/@sap/cds-compiler/lib/compiler/extend.js +1015 -1177
- package/node_modules/@sap/cds-compiler/lib/compiler/generate.js +55 -42
- package/node_modules/@sap/cds-compiler/lib/compiler/populate.js +74 -45
- package/node_modules/@sap/cds-compiler/lib/compiler/propagator.js +1 -0
- package/node_modules/@sap/cds-compiler/lib/compiler/resolve.js +6 -4
- package/node_modules/@sap/cds-compiler/lib/compiler/shared.js +30 -49
- package/node_modules/@sap/cds-compiler/lib/compiler/utils.js +32 -18
- package/node_modules/@sap/cds-compiler/lib/edm/annotations/edmJson.js +3 -3
- package/node_modules/@sap/cds-compiler/lib/edm/annotations/genericTranslation.js +2 -2
- package/node_modules/@sap/cds-compiler/lib/edm/annotations/preprocessAnnotations.js +2 -3
- package/node_modules/@sap/cds-compiler/lib/edm/csn2edm.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/edm/edm.js +6 -7
- package/node_modules/@sap/cds-compiler/lib/edm/edmAnnoPreprocessor.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/edm/edmInboundChecks.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/edm/edmPreprocessor.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/edm/edmUtils.js +12 -7
- package/node_modules/@sap/cds-compiler/lib/gen/CdlGrammar.checksum +1 -1
- package/node_modules/@sap/cds-compiler/lib/gen/CdlParser.js +15 -15
- package/node_modules/@sap/cds-compiler/lib/gen/Dictionary.json +7 -0
- package/node_modules/@sap/cds-compiler/lib/json/from-csn.js +30 -30
- package/node_modules/@sap/cds-compiler/lib/json/to-csn.js +2 -1
- package/node_modules/@sap/cds-compiler/lib/main.js +4 -1
- package/node_modules/@sap/cds-compiler/lib/parsers/AstBuildingParser.js +42 -15
- package/node_modules/@sap/cds-compiler/lib/render/DuplicateChecker.js +37 -11
- package/node_modules/@sap/cds-compiler/lib/render/manageConstraints.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/render/toCdl.js +11 -6
- package/node_modules/@sap/cds-compiler/lib/render/toRename.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/render/toSql.js +74 -24
- package/node_modules/@sap/cds-compiler/lib/render/utils/common.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/render/utils/operators.js +81 -0
- package/node_modules/@sap/cds-compiler/lib/render/utils/sql.js +17 -10
- package/node_modules/@sap/cds-compiler/lib/transform/db/assertUnique.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/db/associations.js +3 -4
- package/node_modules/@sap/cds-compiler/lib/transform/db/assocsToQueries/transformExists.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/db/backlinks.js +2 -2
- package/node_modules/@sap/cds-compiler/lib/transform/db/cdsPersistence.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/db/constraints.js +6 -5
- package/node_modules/@sap/cds-compiler/lib/transform/db/expansion.js +7 -1
- package/node_modules/@sap/cds-compiler/lib/transform/db/flattening.js +2 -2
- package/node_modules/@sap/cds-compiler/lib/{modelCompare/compare.js → transform/db/migration/diffModels.js} +5 -5
- package/node_modules/@sap/cds-compiler/lib/{modelCompare/utils/filter.js → transform/db/migration/filterDiff.js} +2 -2
- package/node_modules/@sap/cds-compiler/lib/transform/db/processSqlServices.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/db/rewriteCalculatedElements.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/db/temporal.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/db/views.js +2 -6
- package/node_modules/@sap/cds-compiler/lib/transform/draft/db.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/draft/odata.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/effective/annotations.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/effective/associations.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/effective/flattening.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/effective/main.js +3 -2
- package/node_modules/@sap/cds-compiler/lib/transform/effective/misc.js +2 -1
- package/node_modules/@sap/cds-compiler/lib/transform/effective/queries.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/effective/types.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/forOdata.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/forRelationalDB.js +9 -4
- package/node_modules/@sap/cds-compiler/lib/transform/localized.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/odata/adaptAnnotationRefs.js +5 -11
- package/node_modules/@sap/cds-compiler/lib/transform/odata/createForeignKeys.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/odata/flattening.js +4 -4
- package/node_modules/@sap/cds-compiler/lib/transform/odata/foreignKeyRefsInXprAnnos.js +5 -3
- package/node_modules/@sap/cds-compiler/lib/transform/odata/toFinalBaseType.js +29 -5
- package/node_modules/@sap/cds-compiler/lib/transform/odata/typesExposure.js +13 -3
- package/node_modules/@sap/cds-compiler/lib/transform/odata/utils.js +9 -0
- package/node_modules/@sap/cds-compiler/lib/transform/transformUtils.js +2 -2
- package/node_modules/@sap/cds-compiler/lib/transform/translateAssocsToJoins.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/tupleExpansion.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/universalCsn/coreComputed.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/universalCsn/universalCsnEnricher.js +1 -1
- package/node_modules/@sap/cds-compiler/lib/transform/universalCsn/utils.js +1 -1
- package/node_modules/@sap/cds-compiler/package.json +1 -1
- package/node_modules/@sap/cds-mtxs/CHANGELOG.md +47 -0
- package/node_modules/@sap/cds-mtxs/bin/cds-mtx-migrate.js +4 -6
- package/node_modules/@sap/cds-mtxs/bin/cds-mtx.js +5 -4
- package/node_modules/@sap/cds-mtxs/cds-plugin.js +38 -2
- package/node_modules/@sap/cds-mtxs/db/t0.cds +7 -0
- package/node_modules/@sap/cds-mtxs/lib/utils.js +129 -20
- package/node_modules/@sap/cds-mtxs/package.json +15 -14
- package/node_modules/@sap/cds-mtxs/srv/cf/abstract-provisioning-service.js +13 -12
- package/node_modules/@sap/cds-mtxs/srv/cf/saas-provisioning-service.cds +1 -0
- package/node_modules/@sap/cds-mtxs/srv/cf/sms-provisioning-service.cds +1 -0
- package/node_modules/@sap/cds-mtxs/srv/extensibility/compat/update.js +5 -2
- package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/config.js +1 -2
- package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/csv-allowlist.js +64 -0
- package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/index.js +4 -2
- package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/protected-namespace.js +67 -5
- package/node_modules/@sap/cds-mtxs/srv/extensibility-service.js +179 -15
- package/node_modules/@sap/cds-mtxs/srv/jobs-service.js +12 -3
- package/node_modules/@sap/cds-mtxs/srv/plugins/common.js +33 -12
- package/node_modules/@sap/cds-mtxs/srv/plugins/hana/ctnr-mgr-base.js +24 -6
- package/node_modules/@sap/cds-mtxs/srv/plugins/hana/hdi-ctnr-mgr.js +3 -1
- package/node_modules/@sap/cds-mtxs/srv/plugins/hana/hdi-native.js +752 -0
- package/node_modules/@sap/cds-mtxs/srv/plugins/hana/serverless.js +17 -20
- package/node_modules/@sap/cds-mtxs/srv/plugins/hana/srv-mgr-v2.js +511 -0
- package/node_modules/@sap/cds-mtxs/srv/plugins/hana/srv-mgr.js +11 -4
- package/node_modules/@sap/cds-mtxs/srv/plugins/hana/tms.js +8 -0
- package/node_modules/@sap/cds-mtxs/srv/plugins/hana.js +27 -18
- package/node_modules/@sap/cds-mtxs/srv/worker/job-worker-pool.js +1 -1
- package/node_modules/@sap/cds-mtxs/srv/worker/job-worker.js +1 -1
- package/node_modules/chownr/LICENSE.md +63 -0
- package/node_modules/chownr/README.md +3 -0
- package/node_modules/chownr/dist/commonjs/index.d.ts +3 -0
- package/node_modules/chownr/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/chownr/dist/commonjs/index.js +93 -0
- package/node_modules/chownr/dist/commonjs/index.js.map +1 -0
- package/node_modules/chownr/dist/commonjs/package.json +3 -0
- package/node_modules/chownr/dist/esm/index.d.ts +3 -0
- package/node_modules/chownr/dist/esm/index.d.ts.map +1 -0
- package/node_modules/chownr/dist/esm/index.js +85 -0
- package/node_modules/chownr/dist/esm/index.js.map +1 -0
- package/node_modules/chownr/dist/esm/package.json +3 -0
- package/node_modules/chownr/package.json +69 -0
- package/node_modules/content-disposition/README.md +105 -35
- package/node_modules/content-disposition/dist/index.d.ts +72 -0
- package/node_modules/content-disposition/dist/index.js +388 -0
- package/node_modules/content-disposition/dist/index.js.map +1 -0
- package/node_modules/content-disposition/package.json +31 -19
- package/node_modules/content-type/README.md +34 -57
- package/node_modules/content-type/package.json +35 -25
- package/node_modules/express/Readme.md +15 -9
- package/node_modules/express/lib/application.js +2 -2
- package/node_modules/express/lib/request.js +32 -19
- package/node_modules/express/lib/response.js +27 -30
- package/node_modules/express/package.json +10 -10
- package/node_modules/handlebars/bin/handlebars +1 -1
- package/node_modules/handlebars/dist/amd/handlebars/base.js +2 -2
- package/node_modules/handlebars/dist/amd/handlebars/compiler/base.js +2 -59
- package/node_modules/handlebars/dist/amd/handlebars/compiler/code-gen.js +68 -5
- package/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js +160 -19
- package/node_modules/handlebars/dist/amd/handlebars/compiler/javascript-compiler.js +23 -7
- package/node_modules/handlebars/dist/amd/handlebars/compiler/node-types.js +12 -0
- package/node_modules/handlebars/dist/amd/handlebars/compiler/visitor.js +26 -7
- package/node_modules/handlebars/dist/amd/handlebars/compiler/whitespace-control.js +9 -4
- package/node_modules/handlebars/dist/amd/handlebars/exception.js +8 -4
- package/node_modules/handlebars/dist/amd/handlebars/helpers/each.js +40 -14
- package/node_modules/handlebars/dist/amd/handlebars/internal/proto-access.js +21 -1
- package/node_modules/handlebars/dist/amd/handlebars/runtime.js +24 -4
- package/node_modules/handlebars/dist/amd/handlebars/utils.js +4 -3
- package/node_modules/handlebars/dist/amd/precompiler.js +13 -7
- package/node_modules/handlebars/dist/cjs/handlebars/base.js +2 -2
- package/node_modules/handlebars/dist/cjs/handlebars/compiler/base.js +1 -60
- package/node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js +64 -4
- package/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js +161 -18
- package/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js +23 -7
- package/node_modules/handlebars/dist/cjs/handlebars/compiler/node-types.js +10 -0
- package/node_modules/handlebars/dist/cjs/handlebars/compiler/visitor.js +29 -6
- package/node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js +9 -4
- package/node_modules/handlebars/dist/cjs/handlebars/exception.js +8 -4
- package/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js +40 -14
- package/node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js +21 -1
- package/node_modules/handlebars/dist/cjs/handlebars/runtime.js +24 -4
- package/node_modules/handlebars/dist/cjs/handlebars/utils.js +4 -3
- package/node_modules/handlebars/dist/cjs/precompiler.js +14 -6
- package/node_modules/handlebars/dist/handlebars.amd.js +401 -130
- package/node_modules/handlebars/dist/handlebars.amd.min.js +4 -4
- package/node_modules/handlebars/dist/handlebars.js +396 -125
- package/node_modules/handlebars/dist/handlebars.min.js +4 -4
- package/node_modules/handlebars/dist/handlebars.runtime.amd.js +100 -29
- package/node_modules/handlebars/dist/handlebars.runtime.amd.min.js +2 -2
- package/node_modules/handlebars/dist/handlebars.runtime.js +94 -23
- package/node_modules/handlebars/dist/handlebars.runtime.min.js +2 -2
- package/node_modules/handlebars/lib/handlebars/base.js +1 -1
- package/node_modules/handlebars/lib/handlebars/compiler/base.js +0 -67
- package/node_modules/handlebars/lib/handlebars/compiler/code-gen.js +65 -11
- package/node_modules/handlebars/lib/handlebars/compiler/compiler.js +164 -23
- package/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js +23 -7
- package/node_modules/handlebars/lib/handlebars/compiler/node-types.js +24 -0
- package/node_modules/handlebars/lib/handlebars/compiler/visitor.js +29 -5
- package/node_modules/handlebars/lib/handlebars/compiler/whitespace-control.js +16 -5
- package/node_modules/handlebars/lib/handlebars/exception.js +7 -3
- package/node_modules/handlebars/lib/handlebars/helpers/each.js +39 -16
- package/node_modules/handlebars/lib/handlebars/internal/proto-access.js +22 -0
- package/node_modules/handlebars/lib/handlebars/runtime.js +36 -4
- package/node_modules/handlebars/lib/handlebars/utils.js +3 -2
- package/node_modules/handlebars/lib/precompiler.js +14 -5
- package/node_modules/handlebars/package.json +2 -2
- package/node_modules/handlebars/release-notes.md +20 -1
- package/node_modules/handlebars/types/index.d.ts +8 -0
- package/node_modules/hdb/cfg/VERSION +1 -1
- package/node_modules/hdb/lib/Client.js +6 -2
- package/node_modules/hdb/lib/protocol/ClientInfo.js +28 -15
- package/node_modules/hdb/lib/protocol/Connection.js +30 -3
- package/node_modules/hdb/lib/protocol/Writer.js +2 -2
- package/node_modules/hdb/lib/protocol/common/ConnectOption.js +2 -0
- package/node_modules/hdb/lib/protocol/common/ConnectOptionFlagSet1.js +18 -0
- package/node_modules/hdb/lib/protocol/common/ConnectOptionType.js +2 -0
- package/node_modules/hdb/lib/protocol/common/Constants.js +1 -0
- package/node_modules/hdb/lib/protocol/common/MessageType.js +3 -2
- package/node_modules/hdb/lib/protocol/common/PartKind.js +2 -1
- package/node_modules/hdb/lib/protocol/common/index.js +1 -0
- package/node_modules/hdb/lib/protocol/data/TextList.js +25 -17
- package/node_modules/hdb/lib/protocol/data/index.js +1 -0
- package/node_modules/hdb/lib/protocol/part/ConnectOptions.js +7 -0
- package/node_modules/hdb/lib/protocol/request/index.js +7 -0
- package/node_modules/hdb/package.json +1 -2
- package/node_modules/livereload-js/.github/workflows/main.yml +4 -4
- package/node_modules/livereload-js/README.md +3 -3
- package/node_modules/livereload-js/dist/livereload.js +839 -2742
- package/node_modules/livereload-js/dist/livereload.min.js +1 -1
- package/node_modules/livereload-js/package.json +11 -11
- package/node_modules/minipass/LICENSE.md +55 -0
- package/node_modules/minipass/README.md +825 -0
- package/node_modules/minipass/dist/commonjs/index.d.ts +545 -0
- package/node_modules/minipass/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/minipass/dist/commonjs/index.js +1038 -0
- package/node_modules/minipass/dist/commonjs/index.js.map +1 -0
- package/node_modules/minipass/dist/commonjs/package.json +3 -0
- package/node_modules/minipass/dist/esm/index.d.ts +545 -0
- package/node_modules/minipass/dist/esm/index.d.ts.map +1 -0
- package/node_modules/minipass/dist/esm/index.js +1020 -0
- package/node_modules/minipass/dist/esm/index.js.map +1 -0
- package/node_modules/minipass/dist/esm/package.json +3 -0
- package/node_modules/minipass/package.json +77 -0
- package/node_modules/minizlib/LICENSE +26 -0
- package/node_modules/minizlib/README.md +64 -0
- package/node_modules/minizlib/dist/commonjs/constants.d.ts +2 -0
- package/node_modules/minizlib/dist/commonjs/constants.d.ts.map +1 -0
- package/node_modules/minizlib/dist/commonjs/constants.js +123 -0
- package/node_modules/minizlib/dist/commonjs/constants.js.map +1 -0
- package/node_modules/minizlib/dist/commonjs/index.d.ts +99 -0
- package/node_modules/minizlib/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/minizlib/dist/commonjs/index.js +416 -0
- package/node_modules/minizlib/dist/commonjs/index.js.map +1 -0
- package/node_modules/minizlib/dist/commonjs/package.json +3 -0
- package/node_modules/minizlib/dist/esm/constants.d.ts +2 -0
- package/node_modules/minizlib/dist/esm/constants.d.ts.map +1 -0
- package/node_modules/minizlib/dist/esm/constants.js +117 -0
- package/node_modules/minizlib/dist/esm/constants.js.map +1 -0
- package/node_modules/minizlib/dist/esm/index.d.ts +99 -0
- package/node_modules/minizlib/dist/esm/index.d.ts.map +1 -0
- package/node_modules/minizlib/dist/esm/index.js +363 -0
- package/node_modules/minizlib/dist/esm/index.js.map +1 -0
- package/node_modules/minizlib/dist/esm/package.json +3 -0
- package/node_modules/minizlib/package.json +80 -0
- package/node_modules/proxy-addr/HISTORY.md +60 -54
- package/node_modules/proxy-addr/README.md +1 -1
- package/node_modules/proxy-addr/index.js +32 -0
- package/node_modules/proxy-addr/package.json +8 -4
- package/node_modules/qs/.github/THREAT_MODEL.md +4 -2
- package/node_modules/qs/CHANGELOG.md +38 -14
- package/node_modules/qs/README.md +31 -3
- package/node_modules/qs/dist/qs.js +20 -20
- package/node_modules/qs/lib/parse.js +94 -4
- package/node_modules/qs/lib/stringify.js +4 -4
- package/node_modules/qs/lib/utils.js +130 -6
- package/node_modules/qs/package.json +4 -4
- package/node_modules/qs/test/parse.js +174 -0
- package/node_modules/qs/test/stringify.js +263 -33
- package/node_modules/qs/test/utils.js +184 -0
- package/node_modules/tar/LICENSE.md +55 -0
- package/node_modules/tar/README.md +1233 -0
- package/node_modules/tar/dist/commonjs/create.d.ts +3 -0
- package/node_modules/tar/dist/commonjs/create.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/create.js +82 -0
- package/node_modules/tar/dist/commonjs/create.js.map +1 -0
- package/node_modules/tar/dist/commonjs/cwd-error.d.ts +8 -0
- package/node_modules/tar/dist/commonjs/cwd-error.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/cwd-error.js +18 -0
- package/node_modules/tar/dist/commonjs/cwd-error.js.map +1 -0
- package/node_modules/tar/dist/commonjs/extract.d.ts +3 -0
- package/node_modules/tar/dist/commonjs/extract.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/extract.js +88 -0
- package/node_modules/tar/dist/commonjs/extract.js.map +1 -0
- package/node_modules/tar/dist/commonjs/get-write-flag.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/get-write-flag.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/get-write-flag.js +32 -0
- package/node_modules/tar/dist/commonjs/get-write-flag.js.map +1 -0
- package/node_modules/tar/dist/commonjs/header.d.ts +53 -0
- package/node_modules/tar/dist/commonjs/header.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/header.js +348 -0
- package/node_modules/tar/dist/commonjs/header.js.map +1 -0
- package/node_modules/tar/dist/commonjs/index.d.ts +20 -0
- package/node_modules/tar/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/index.js +64 -0
- package/node_modules/tar/dist/commonjs/index.js.map +1 -0
- package/node_modules/tar/dist/commonjs/index.min.js +4 -0
- package/node_modules/tar/dist/commonjs/index.min.js.map +7 -0
- package/node_modules/tar/dist/commonjs/large-numbers.d.ts +3 -0
- package/node_modules/tar/dist/commonjs/large-numbers.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/large-numbers.js +99 -0
- package/node_modules/tar/dist/commonjs/large-numbers.js.map +1 -0
- package/node_modules/tar/dist/commonjs/list.d.ts +7 -0
- package/node_modules/tar/dist/commonjs/list.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/list.js +153 -0
- package/node_modules/tar/dist/commonjs/list.js.map +1 -0
- package/node_modules/tar/dist/commonjs/make-command.d.ts +49 -0
- package/node_modules/tar/dist/commonjs/make-command.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/make-command.js +52 -0
- package/node_modules/tar/dist/commonjs/make-command.js.map +1 -0
- package/node_modules/tar/dist/commonjs/mkdir.d.ts +25 -0
- package/node_modules/tar/dist/commonjs/mkdir.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/mkdir.js +187 -0
- package/node_modules/tar/dist/commonjs/mkdir.js.map +1 -0
- package/node_modules/tar/dist/commonjs/mode-fix.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/mode-fix.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/mode-fix.js +29 -0
- package/node_modules/tar/dist/commonjs/mode-fix.js.map +1 -0
- package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/normalize-unicode.js +38 -0
- package/node_modules/tar/dist/commonjs/normalize-unicode.js.map +1 -0
- package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/normalize-windows-path.js +12 -0
- package/node_modules/tar/dist/commonjs/normalize-windows-path.js.map +1 -0
- package/node_modules/tar/dist/commonjs/options.d.ts +604 -0
- package/node_modules/tar/dist/commonjs/options.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/options.js +66 -0
- package/node_modules/tar/dist/commonjs/options.js.map +1 -0
- package/node_modules/tar/dist/commonjs/pack.d.ts +105 -0
- package/node_modules/tar/dist/commonjs/pack.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/pack.js +544 -0
- package/node_modules/tar/dist/commonjs/pack.js.map +1 -0
- package/node_modules/tar/dist/commonjs/package.json +3 -0
- package/node_modules/tar/dist/commonjs/parse.d.ts +92 -0
- package/node_modules/tar/dist/commonjs/parse.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/parse.js +655 -0
- package/node_modules/tar/dist/commonjs/parse.js.map +1 -0
- package/node_modules/tar/dist/commonjs/path-reservations.d.ts +11 -0
- package/node_modules/tar/dist/commonjs/path-reservations.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/path-reservations.js +170 -0
- package/node_modules/tar/dist/commonjs/path-reservations.js.map +1 -0
- package/node_modules/tar/dist/commonjs/pax.d.ts +26 -0
- package/node_modules/tar/dist/commonjs/pax.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/pax.js +182 -0
- package/node_modules/tar/dist/commonjs/pax.js.map +1 -0
- package/node_modules/tar/dist/commonjs/process-umask.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/process-umask.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/process-umask.js +7 -0
- package/node_modules/tar/dist/commonjs/process-umask.js.map +1 -0
- package/node_modules/tar/dist/commonjs/read-entry.d.ts +36 -0
- package/node_modules/tar/dist/commonjs/read-entry.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/read-entry.js +136 -0
- package/node_modules/tar/dist/commonjs/read-entry.js.map +1 -0
- package/node_modules/tar/dist/commonjs/replace.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/replace.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/replace.js +227 -0
- package/node_modules/tar/dist/commonjs/replace.js.map +1 -0
- package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/strip-absolute-path.js +29 -0
- package/node_modules/tar/dist/commonjs/strip-absolute-path.js.map +1 -0
- package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +18 -0
- package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js.map +1 -0
- package/node_modules/tar/dist/commonjs/symlink-error.d.ts +9 -0
- package/node_modules/tar/dist/commonjs/symlink-error.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/symlink-error.js +19 -0
- package/node_modules/tar/dist/commonjs/symlink-error.js.map +1 -0
- package/node_modules/tar/dist/commonjs/types.d.ts +16 -0
- package/node_modules/tar/dist/commonjs/types.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/types.js +70 -0
- package/node_modules/tar/dist/commonjs/types.js.map +1 -0
- package/node_modules/tar/dist/commonjs/unpack.d.ts +101 -0
- package/node_modules/tar/dist/commonjs/unpack.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/unpack.js +932 -0
- package/node_modules/tar/dist/commonjs/unpack.js.map +1 -0
- package/node_modules/tar/dist/commonjs/update.d.ts +2 -0
- package/node_modules/tar/dist/commonjs/update.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/update.js +33 -0
- package/node_modules/tar/dist/commonjs/update.js.map +1 -0
- package/node_modules/tar/dist/commonjs/warn-method.d.ts +24 -0
- package/node_modules/tar/dist/commonjs/warn-method.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/warn-method.js +31 -0
- package/node_modules/tar/dist/commonjs/warn-method.js.map +1 -0
- package/node_modules/tar/dist/commonjs/winchars.d.ts +3 -0
- package/node_modules/tar/dist/commonjs/winchars.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/winchars.js +14 -0
- package/node_modules/tar/dist/commonjs/winchars.js.map +1 -0
- package/node_modules/tar/dist/commonjs/write-entry.d.ts +129 -0
- package/node_modules/tar/dist/commonjs/write-entry.d.ts.map +1 -0
- package/node_modules/tar/dist/commonjs/write-entry.js +698 -0
- package/node_modules/tar/dist/commonjs/write-entry.js.map +1 -0
- package/node_modules/tar/dist/esm/create.d.ts +3 -0
- package/node_modules/tar/dist/esm/create.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/create.js +76 -0
- package/node_modules/tar/dist/esm/create.js.map +1 -0
- package/node_modules/tar/dist/esm/cwd-error.d.ts +8 -0
- package/node_modules/tar/dist/esm/cwd-error.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/cwd-error.js +14 -0
- package/node_modules/tar/dist/esm/cwd-error.js.map +1 -0
- package/node_modules/tar/dist/esm/extract.d.ts +3 -0
- package/node_modules/tar/dist/esm/extract.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/extract.js +49 -0
- package/node_modules/tar/dist/esm/extract.js.map +1 -0
- package/node_modules/tar/dist/esm/get-write-flag.d.ts +2 -0
- package/node_modules/tar/dist/esm/get-write-flag.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/get-write-flag.js +26 -0
- package/node_modules/tar/dist/esm/get-write-flag.js.map +1 -0
- package/node_modules/tar/dist/esm/header.d.ts +53 -0
- package/node_modules/tar/dist/esm/header.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/header.js +311 -0
- package/node_modules/tar/dist/esm/header.js.map +1 -0
- package/node_modules/tar/dist/esm/index.d.ts +20 -0
- package/node_modules/tar/dist/esm/index.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/index.js +20 -0
- package/node_modules/tar/dist/esm/index.js.map +1 -0
- package/node_modules/tar/dist/esm/index.min.js +4 -0
- package/node_modules/tar/dist/esm/index.min.js.map +7 -0
- package/node_modules/tar/dist/esm/large-numbers.d.ts +3 -0
- package/node_modules/tar/dist/esm/large-numbers.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/large-numbers.js +94 -0
- package/node_modules/tar/dist/esm/large-numbers.js.map +1 -0
- package/node_modules/tar/dist/esm/list.d.ts +7 -0
- package/node_modules/tar/dist/esm/list.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/list.js +113 -0
- package/node_modules/tar/dist/esm/list.js.map +1 -0
- package/node_modules/tar/dist/esm/make-command.d.ts +49 -0
- package/node_modules/tar/dist/esm/make-command.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/make-command.js +48 -0
- package/node_modules/tar/dist/esm/make-command.js.map +1 -0
- package/node_modules/tar/dist/esm/mkdir.d.ts +25 -0
- package/node_modules/tar/dist/esm/mkdir.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/mkdir.js +179 -0
- package/node_modules/tar/dist/esm/mkdir.js.map +1 -0
- package/node_modules/tar/dist/esm/mode-fix.d.ts +2 -0
- package/node_modules/tar/dist/esm/mode-fix.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/mode-fix.js +25 -0
- package/node_modules/tar/dist/esm/mode-fix.js.map +1 -0
- package/node_modules/tar/dist/esm/normalize-unicode.d.ts +2 -0
- package/node_modules/tar/dist/esm/normalize-unicode.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/normalize-unicode.js +34 -0
- package/node_modules/tar/dist/esm/normalize-unicode.js.map +1 -0
- package/node_modules/tar/dist/esm/normalize-windows-path.d.ts +2 -0
- package/node_modules/tar/dist/esm/normalize-windows-path.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/normalize-windows-path.js +9 -0
- package/node_modules/tar/dist/esm/normalize-windows-path.js.map +1 -0
- package/node_modules/tar/dist/esm/options.d.ts +604 -0
- package/node_modules/tar/dist/esm/options.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/options.js +54 -0
- package/node_modules/tar/dist/esm/options.js.map +1 -0
- package/node_modules/tar/dist/esm/pack.d.ts +105 -0
- package/node_modules/tar/dist/esm/pack.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/pack.js +502 -0
- package/node_modules/tar/dist/esm/pack.js.map +1 -0
- package/node_modules/tar/dist/esm/package.json +3 -0
- package/node_modules/tar/dist/esm/parse.d.ts +92 -0
- package/node_modules/tar/dist/esm/parse.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/parse.js +651 -0
- package/node_modules/tar/dist/esm/parse.js.map +1 -0
- package/node_modules/tar/dist/esm/path-reservations.d.ts +11 -0
- package/node_modules/tar/dist/esm/path-reservations.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/path-reservations.js +166 -0
- package/node_modules/tar/dist/esm/path-reservations.js.map +1 -0
- package/node_modules/tar/dist/esm/pax.d.ts +26 -0
- package/node_modules/tar/dist/esm/pax.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/pax.js +178 -0
- package/node_modules/tar/dist/esm/pax.js.map +1 -0
- package/node_modules/tar/dist/esm/process-umask.d.ts +2 -0
- package/node_modules/tar/dist/esm/process-umask.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/process-umask.js +3 -0
- package/node_modules/tar/dist/esm/process-umask.js.map +1 -0
- package/node_modules/tar/dist/esm/read-entry.d.ts +36 -0
- package/node_modules/tar/dist/esm/read-entry.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/read-entry.js +132 -0
- package/node_modules/tar/dist/esm/read-entry.js.map +1 -0
- package/node_modules/tar/dist/esm/replace.d.ts +2 -0
- package/node_modules/tar/dist/esm/replace.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/replace.js +221 -0
- package/node_modules/tar/dist/esm/replace.js.map +1 -0
- package/node_modules/tar/dist/esm/strip-absolute-path.d.ts +2 -0
- package/node_modules/tar/dist/esm/strip-absolute-path.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/strip-absolute-path.js +25 -0
- package/node_modules/tar/dist/esm/strip-absolute-path.js.map +1 -0
- package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts +2 -0
- package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/strip-trailing-slashes.js +14 -0
- package/node_modules/tar/dist/esm/strip-trailing-slashes.js.map +1 -0
- package/node_modules/tar/dist/esm/symlink-error.d.ts +9 -0
- package/node_modules/tar/dist/esm/symlink-error.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/symlink-error.js +15 -0
- package/node_modules/tar/dist/esm/symlink-error.js.map +1 -0
- package/node_modules/tar/dist/esm/types.d.ts +16 -0
- package/node_modules/tar/dist/esm/types.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/types.js +65 -0
- package/node_modules/tar/dist/esm/types.js.map +1 -0
- package/node_modules/tar/dist/esm/unpack.d.ts +101 -0
- package/node_modules/tar/dist/esm/unpack.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/unpack.js +891 -0
- package/node_modules/tar/dist/esm/unpack.js.map +1 -0
- package/node_modules/tar/dist/esm/update.d.ts +2 -0
- package/node_modules/tar/dist/esm/update.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/update.js +30 -0
- package/node_modules/tar/dist/esm/update.js.map +1 -0
- package/node_modules/tar/dist/esm/warn-method.d.ts +24 -0
- package/node_modules/tar/dist/esm/warn-method.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/warn-method.js +27 -0
- package/node_modules/tar/dist/esm/warn-method.js.map +1 -0
- package/node_modules/tar/dist/esm/winchars.d.ts +3 -0
- package/node_modules/tar/dist/esm/winchars.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/winchars.js +9 -0
- package/node_modules/tar/dist/esm/winchars.js.map +1 -0
- package/node_modules/tar/dist/esm/write-entry.d.ts +129 -0
- package/node_modules/tar/dist/esm/write-entry.d.ts.map +1 -0
- package/node_modules/tar/dist/esm/write-entry.js +656 -0
- package/node_modules/tar/dist/esm/write-entry.js.map +1 -0
- package/node_modules/tar/package.json +298 -0
- package/node_modules/ws/lib/websocket.js +17 -3
- package/node_modules/ws/package.json +1 -1
- package/node_modules/yallist/LICENSE.md +63 -0
- package/node_modules/yallist/README.md +205 -0
- package/node_modules/yallist/dist/commonjs/index.d.ts +39 -0
- package/node_modules/yallist/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/yallist/dist/commonjs/index.js +384 -0
- package/node_modules/yallist/dist/commonjs/index.js.map +1 -0
- package/node_modules/yallist/dist/commonjs/package.json +3 -0
- package/node_modules/yallist/dist/esm/index.d.ts +39 -0
- package/node_modules/yallist/dist/esm/index.d.ts.map +1 -0
- package/node_modules/yallist/dist/esm/index.js +379 -0
- package/node_modules/yallist/dist/esm/index.js.map +1 -0
- package/node_modules/yallist/dist/esm/package.json +3 -0
- package/node_modules/yallist/package.json +68 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +19 -18
- package/node_modules/yaml/browser/dist/nodes/Alias.js +25 -23
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +19 -18
- package/node_modules/yaml/dist/nodes/Alias.js +25 -23
- package/node_modules/yaml/package.json +1 -1
- package/package.json +7 -1
- package/bin/completion/templates/cds-tmpl.fish +0 -65
- package/bin/completion/templates/cds-tmpl.ps1 +0 -217
- package/bin/completion/templates/cds-tmpl.sh +0 -93
- package/bin/completion/templates/cds-tmpl.zsh +0 -74
- package/node_modules/@cap-js/db-service/lib/recursion-guard.js +0 -40
- package/node_modules/@sap/cds/lib/env/cds-requires.js +0 -326
- package/node_modules/@sap/cds-mtxs/srv/bootstrap.cds +0 -2
- package/node_modules/@sap/cds-mtxs/srv/bootstrap.js +0 -33
- package/node_modules/body-parser/node_modules/content-type/LICENSE +0 -22
- package/node_modules/body-parser/node_modules/content-type/README.md +0 -71
- package/node_modules/body-parser/node_modules/content-type/package.json +0 -52
- package/node_modules/content-disposition/index.js +0 -536
- package/node_modules/content-type/HISTORY.md +0 -29
- package/node_modules/content-type/index.js +0 -225
- package/node_modules/negotiator/node_modules/content-type/LICENSE +0 -22
- package/node_modules/negotiator/node_modules/content-type/README.md +0 -71
- package/node_modules/negotiator/node_modules/content-type/dist/index.d.ts +0 -46
- package/node_modules/negotiator/node_modules/content-type/dist/index.js +0 -176
- package/node_modules/negotiator/node_modules/content-type/dist/index.js.map +0 -1
- package/node_modules/negotiator/node_modules/content-type/package.json +0 -52
- package/node_modules/type-is/node_modules/content-type/LICENSE +0 -22
- package/node_modules/type-is/node_modules/content-type/README.md +0 -71
- package/node_modules/type-is/node_modules/content-type/dist/index.d.ts +0 -46
- package/node_modules/type-is/node_modules/content-type/dist/index.js +0 -176
- package/node_modules/type-is/node_modules/content-type/dist/index.js.map +0 -1
- package/node_modules/type-is/node_modules/content-type/package.json +0 -52
- /package/lib/init/template/react/files/{vite.config.js.hbs → vite.config.{{extension}}.hbs} +0 -0
- /package/lib/init/template/vue/files/src/{main.js → main.{{extension}}.hbs} +0 -0
- /package/lib/init/template/vue/files/{vite.config.js.hbs → vite.config.{{extension}}.hbs} +0 -0
- /package/{lib/import/openapi → node_modules/@cap-js/openapi/lib/import}/utilities.js +0 -0
- /package/node_modules/{body-parser/node_modules/content-type → content-type}/dist/index.d.ts +0 -0
- /package/node_modules/{body-parser/node_modules/content-type → content-type}/dist/index.js +0 -0
- /package/node_modules/{body-parser/node_modules/content-type → content-type}/dist/index.js.map +0 -0
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
|
+
// Texts entity is created with the following elements in (weird) order:
|
|
6
|
+
// - if @fiori.draft.enabled: key `ID_texts` and non-key `locale`
|
|
7
|
+
// (de-keyed `locale` from sap.common.TextsAspect, or generated),
|
|
8
|
+
// then other elements from sap.common.TextsAspect
|
|
9
|
+
// - if not @fiori.draft.enabled: elements from sap.common.TextsAspect
|
|
10
|
+
// (with `locale` at its place!), or generated key `locale`
|
|
11
|
+
// - `language` with option `addTextsLanguageAssoc` (can't then be in sap.common.TextsAspect)
|
|
12
|
+
// - keys (de-keyed if @fiori.draft.enabled) and localized of base entity in definition order
|
|
13
|
+
// (can shadow elements from sap.common.TextsAspect, then at that position)
|
|
14
|
+
|
|
5
15
|
/* eslint-disable no-nested-ternary */
|
|
6
16
|
|
|
7
17
|
const { isDeprecatedEnabled } = require('../base/specialOptions');
|
|
@@ -19,6 +29,7 @@ const {
|
|
|
19
29
|
forEachGeneric,
|
|
20
30
|
} = require('./utils');
|
|
21
31
|
const { weakLocation, weakRefLocation, weakEndLocation } = require('../base/location');
|
|
32
|
+
const { XsnArtifact, XsnName } = require('./xsn-model');
|
|
22
33
|
|
|
23
34
|
const $location = Symbol.for( 'cds.$location' );
|
|
24
35
|
|
|
@@ -34,7 +45,6 @@ function generate( model ) {
|
|
|
34
45
|
resolveUncheckedPath,
|
|
35
46
|
initMainArtifact,
|
|
36
47
|
extendArtifactBefore,
|
|
37
|
-
applyIncludes,
|
|
38
48
|
} = model.$functions;
|
|
39
49
|
Object.assign( model.$functions, {
|
|
40
50
|
hasTruthyProp,
|
|
@@ -106,36 +116,38 @@ function generate( model ) {
|
|
|
106
116
|
function useTextsAspect( report = false ) {
|
|
107
117
|
if (!report && enableTextsAspect != null)
|
|
108
118
|
return enableTextsAspect;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
119
|
+
if (!textsAspect || textsAspect.$inferred ) {
|
|
120
|
+
enableTextsAspect = false;
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
const elements = Functions.effectiveType( textsAspect )?.elements;
|
|
124
|
+
const locale = elements?.locale;
|
|
125
|
+
const err = (textsAspect.kind !== 'aspect' || !textsAspect.elements)
|
|
126
|
+
? 'no-aspect'
|
|
127
|
+
: (!locale || locale.$inferred)
|
|
128
|
+
? 'missing'
|
|
129
|
+
: (!locale.key?.val)
|
|
130
|
+
? 'key'
|
|
131
|
+
: elements?.language && options.addTextsLanguageAssoc && 'language';
|
|
132
|
+
const address = (err === 'key')
|
|
133
|
+
? locale
|
|
134
|
+
: (err === 'language') ? elements?.language : textsAspect;
|
|
118
135
|
if (report && err) {
|
|
119
|
-
const
|
|
120
|
-
error( 'def-invalid-texts-aspect', [
|
|
121
|
-
|
|
136
|
+
const name = (err === 'language') ? 'language' : 'locale';
|
|
137
|
+
error( 'def-invalid-texts-aspect', [ address?.name?.location, address ],
|
|
138
|
+
// eslint-disable-next-line @stylistic/object-curly-newline
|
|
139
|
+
{ '#': err, art: textsAspect, name, option: 'addTextsLanguageAssoc' } );
|
|
122
140
|
}
|
|
123
|
-
enableTextsAspect =
|
|
141
|
+
enableTextsAspect = !err;
|
|
124
142
|
return enableTextsAspect;
|
|
125
143
|
}
|
|
126
144
|
|
|
127
145
|
function checkGenerateConditions() {
|
|
146
|
+
// TODO: we can probably check this now directly
|
|
128
147
|
addLanguageAssoc( true );
|
|
129
148
|
if (!useTextsAspect( true ))
|
|
130
149
|
return;
|
|
131
150
|
|
|
132
|
-
if (enableLanguageAssoc && textsAspect.elements.language) {
|
|
133
|
-
const lang = textsAspect.elements.language;
|
|
134
|
-
error( 'def-unexpected-element', [ lang.name.location, lang ],
|
|
135
|
-
{ option: 'addTextsLanguageAssoc', art: textsAspect, name: 'language' },
|
|
136
|
-
'Element $(NAME) of $(ART) is not used because option $(OPTION) is set' );
|
|
137
|
-
}
|
|
138
|
-
|
|
139
151
|
for (const name in textsAspect.elements) {
|
|
140
152
|
const elem = textsAspect.elements[name];
|
|
141
153
|
const include = elem.$inferred === 'include';
|
|
@@ -295,8 +307,9 @@ function generate( model ) {
|
|
|
295
307
|
function createTextsEntity( base, absolute, textElems, fioriEnabled ) {
|
|
296
308
|
const location = weakLocation( base.elements[$location] || base.location );
|
|
297
309
|
const art = Functions.registerGeneratedEntity( {
|
|
310
|
+
__proto__: XsnArtifact.prototype,
|
|
298
311
|
kind: 'entity',
|
|
299
|
-
name: { id: absolute, location },
|
|
312
|
+
name: { __proto__: XsnName.prototype, id: absolute, location },
|
|
300
313
|
location,
|
|
301
314
|
elements: Object.create( null ),
|
|
302
315
|
$inferred: 'localized-entity',
|
|
@@ -312,12 +325,14 @@ function generate( model ) {
|
|
|
312
325
|
}
|
|
313
326
|
else {
|
|
314
327
|
const textId = {
|
|
315
|
-
|
|
328
|
+
__proto__: XsnArtifact.prototype,
|
|
329
|
+
name: { __proto__: XsnName.prototype, location, id: 'ID_texts' },
|
|
316
330
|
kind: 'element',
|
|
317
331
|
key: { val: true, location },
|
|
318
332
|
type: linkMainArtifact( location, 'cds.UUID' ),
|
|
319
333
|
location,
|
|
320
334
|
};
|
|
335
|
+
// Do not set $inferred, otherwise $postponeInclude does not work
|
|
321
336
|
art.elements.ID_texts = textId;
|
|
322
337
|
}
|
|
323
338
|
// _service links and "consider as composition target" must be set already here
|
|
@@ -335,7 +350,8 @@ function generate( model ) {
|
|
|
335
350
|
|
|
336
351
|
if (addLanguageAssoc()) {
|
|
337
352
|
const language = {
|
|
338
|
-
|
|
353
|
+
__proto__: XsnArtifact.prototype,
|
|
354
|
+
name: { __proto__: XsnName.prototype, location, id: 'language' },
|
|
339
355
|
kind: 'element',
|
|
340
356
|
location,
|
|
341
357
|
type: linkMainArtifact( location, 'cds.Association' ),
|
|
@@ -363,17 +379,7 @@ function generate( model ) {
|
|
|
363
379
|
// do the kick-start relevant stuff: _service, there are no _ancestors,
|
|
364
380
|
// _descendants would have been set already for a gap artifact
|
|
365
381
|
|
|
366
|
-
if (art.includes) { // i.e. sap.common.TextsAspect
|
|
367
|
-
// do not insert sap.common.TextsAspect elements before `locale`:
|
|
368
|
-
// add elements `locale`, etc. which are required below.
|
|
369
|
-
art.includes.$original = []; // do not apply via extendArtifactAdd()
|
|
370
|
-
applyIncludes( art, art ); // apply now
|
|
371
|
-
}
|
|
372
|
-
|
|
373
382
|
if (fioriEnabled) {
|
|
374
|
-
// The includes mechanism puts TextsAspect's elements before .texts' elements.
|
|
375
|
-
// Because ID_texts is not copied from TextsAspect, the order is messed
|
|
376
|
-
// up. Fix it. TODO: introduce $includeAfter from Extensions.md
|
|
377
383
|
const { elements } = art;
|
|
378
384
|
art.elements = Object.create( null );
|
|
379
385
|
const names = [ 'ID_texts', 'locale', ...Object.keys( elements ) ];
|
|
@@ -437,10 +443,11 @@ function generate( model ) {
|
|
|
437
443
|
propagateEarly( art, '@fiori.draft.enabled' );
|
|
438
444
|
|
|
439
445
|
if (fioriEnabled) {
|
|
440
|
-
|
|
441
|
-
//
|
|
446
|
+
art.includes[0].$postponeInclude = 2; // first: ID_texts, locale
|
|
447
|
+
// (weird: `locale` is not necessarily the first without @fiori.draft.enabled')
|
|
448
|
+
// Element `locale` from sap.common.TextsAspect without `key` property:
|
|
442
449
|
linkToOrigin( textsAspect.elements.locale, 'locale', art, 'elements', location );
|
|
443
|
-
|
|
450
|
+
// Do not set $inferred, otherwise $postponeInclude does not work
|
|
444
451
|
}
|
|
445
452
|
|
|
446
453
|
if (addLanguageAssoc() && art.elements.language)
|
|
@@ -458,7 +465,8 @@ function generate( model ) {
|
|
|
458
465
|
const hasLocaleType = model.definitions['sap.common.Locale']?.kind === 'type';
|
|
459
466
|
const { location } = art; // is already a weak location
|
|
460
467
|
const locale = {
|
|
461
|
-
|
|
468
|
+
__proto__: XsnArtifact.prototype,
|
|
469
|
+
name: { __proto__: XsnName.prototype, location, id: 'locale' },
|
|
462
470
|
kind: 'element',
|
|
463
471
|
type: linkMainArtifact( location, hasLocaleType ? 'sap.common.Locale' : 'cds.String' ),
|
|
464
472
|
location,
|
|
@@ -483,7 +491,8 @@ function generate( model ) {
|
|
|
483
491
|
const keys = textElems.filter( e => e.key && e.key.val );
|
|
484
492
|
const location = weakEndLocation( art.elements[$location] ) || weakLocation( art.location );
|
|
485
493
|
const texts = {
|
|
486
|
-
|
|
494
|
+
__proto__: XsnArtifact.prototype,
|
|
495
|
+
name: { __proto__: XsnName.prototype, location, id: 'texts' },
|
|
487
496
|
kind: 'element',
|
|
488
497
|
location,
|
|
489
498
|
$inferred: 'localized',
|
|
@@ -498,7 +507,8 @@ function generate( model ) {
|
|
|
498
507
|
// localized.ID=ID and localized.locale = $user.locale;
|
|
499
508
|
keys.push( [ 'localized.locale', '$user.locale' ] );
|
|
500
509
|
const localized = {
|
|
501
|
-
|
|
510
|
+
__proto__: XsnArtifact.prototype,
|
|
511
|
+
name: { __proto__: XsnName.prototype, location, id: 'localized' },
|
|
502
512
|
kind: 'element',
|
|
503
513
|
location,
|
|
504
514
|
$inferred: 'localized',
|
|
@@ -687,7 +697,8 @@ function generate( model ) {
|
|
|
687
697
|
};
|
|
688
698
|
|
|
689
699
|
const up_ = { // elements.up_ = ...
|
|
690
|
-
|
|
700
|
+
__proto__: XsnArtifact.prototype,
|
|
701
|
+
name: { __proto__: XsnName.prototype, location, id: 'up_' },
|
|
691
702
|
kind: 'element',
|
|
692
703
|
location,
|
|
693
704
|
key: { location, val: true },
|
|
@@ -704,8 +715,10 @@ function generate( model ) {
|
|
|
704
715
|
},
|
|
705
716
|
};
|
|
706
717
|
const art = Functions.registerGeneratedEntity( {
|
|
718
|
+
__proto__: XsnArtifact.prototype,
|
|
707
719
|
kind: 'entity',
|
|
708
720
|
name: {
|
|
721
|
+
__proto__: XsnName.prototype,
|
|
709
722
|
id: entityName,
|
|
710
723
|
// for code navigation (e.g. via `extend`s): point to the element's name
|
|
711
724
|
location: weakLocation( elem.name.location ),
|
|
@@ -873,7 +886,7 @@ function augmentEqual( location, assocname, relations, prefix = '' ) {
|
|
|
873
886
|
/**
|
|
874
887
|
* Propagate the given `prop` (e.g. annotation) early, i.e. copy it from all `.includes`
|
|
875
888
|
* if they have the property.
|
|
876
|
-
*
|
|
889
|
+
* TODO: move to ./utils.js,
|
|
877
890
|
*
|
|
878
891
|
* @param {XSN.Definition} art
|
|
879
892
|
* @param {string} prop
|
|
@@ -23,6 +23,7 @@ const {
|
|
|
23
23
|
} = require('./dictionaries');
|
|
24
24
|
const { weakLocation, weakRefLocation } = require('../base/location');
|
|
25
25
|
const { CompilerAssertion } = require('../base/error');
|
|
26
|
+
const { XsnArtifact, XsnName } = require('./xsn-model');
|
|
26
27
|
|
|
27
28
|
const { kindProperties } = require('./base');
|
|
28
29
|
const {
|
|
@@ -216,12 +217,14 @@ function populate( model ) {
|
|
|
216
217
|
// Without type, value.path or _origin at beginning, link to itself:
|
|
217
218
|
extendArtifactBefore( a );
|
|
218
219
|
populateGeneratedEntity( a );
|
|
219
|
-
if (a.includes)
|
|
220
|
+
if (a.includes) // TODO: make this part of populateArtifact()
|
|
220
221
|
a.includes.forEach( i => resolveInclude( i, a ) );
|
|
221
222
|
art = populateArtifact( a, art ) || a;
|
|
222
223
|
extendArtifactAdd( a );
|
|
223
224
|
setLink( a, '_effectiveType', art );
|
|
224
225
|
a.$effectiveSeqNo = ++effectiveSeqNo;
|
|
226
|
+
if (!a._main && !a._outer)
|
|
227
|
+
model._entities.push( a ); // for propagation of keys
|
|
225
228
|
// console.log('PE:',require('../model/revealInternalProperties').ref(a))
|
|
226
229
|
if (a.elements$ || a.enum$)
|
|
227
230
|
mergeSpecifiedElementsOrEnum( a );
|
|
@@ -238,10 +241,11 @@ function populate( model ) {
|
|
|
238
241
|
|
|
239
242
|
function resolveInclude( include, art ) {
|
|
240
243
|
// includes have been resolved with resolveUncheckedPath() with art/ext
|
|
241
|
-
// before, i.e. it is ok to just use `
|
|
244
|
+
// before, i.e. it is ok to just use `art` as "user"
|
|
242
245
|
const name = resolveUncheckedPath( include, 'include', art );
|
|
243
246
|
// use effectiveType(), which applies extensions, before resolvePath()
|
|
244
247
|
// where we check for the number of elements in the accept functions
|
|
248
|
+
// TODO: not necessary anymore - accept function doesn't do that anymore
|
|
245
249
|
if (name)
|
|
246
250
|
effectiveType( model.definitions[name] );
|
|
247
251
|
resolvePath( include, 'include', art );
|
|
@@ -421,7 +425,7 @@ function populate( model ) {
|
|
|
421
425
|
return true;
|
|
422
426
|
}
|
|
423
427
|
const location = weakRefLocation( art.type || art.value ) || weakLocation( art.location );
|
|
424
|
-
art.items = { $inferred: 'expanded', location };
|
|
428
|
+
art.items = { __proto__: XsnArtifact.prototype, $inferred: 'expanded', location };
|
|
425
429
|
setLink( art.items, '_outer', art );
|
|
426
430
|
setLink( art.items, '_parent', art._parent );
|
|
427
431
|
setLink( art.items, '_origin', origin.items );
|
|
@@ -480,7 +484,10 @@ function populate( model ) {
|
|
|
480
484
|
// TODO: make linkToOrigin() work for returns, kind/name?
|
|
481
485
|
const location = weakLocation( origin.returns.location );
|
|
482
486
|
art.returns = {
|
|
483
|
-
|
|
487
|
+
__proto__: XsnArtifact.prototype,
|
|
488
|
+
name: {
|
|
489
|
+
__proto__: XsnName.prototype, ...art.name, id: '', location,
|
|
490
|
+
},
|
|
484
491
|
kind: 'param',
|
|
485
492
|
location,
|
|
486
493
|
$inferred: 'expanded',
|
|
@@ -537,8 +544,6 @@ function populate( model ) {
|
|
|
537
544
|
// Views
|
|
538
545
|
//--------------------------------------------------------------------------
|
|
539
546
|
|
|
540
|
-
// TODO: delete XSN._entities
|
|
541
|
-
|
|
542
547
|
/**
|
|
543
548
|
* Merge _specified_ elements with _inferred_ elements in the given view/element,
|
|
544
549
|
* where specified elements can appear through CSN.
|
|
@@ -749,7 +754,9 @@ function populate( model ) {
|
|
|
749
754
|
const { targetMax } = path[path.length - 1].cardinality ||
|
|
750
755
|
getInheritedProp( assoc, 'cardinality' ) || {};
|
|
751
756
|
if (targetMax && (targetMax.val === '*' || targetMax.val > 1)) {
|
|
752
|
-
elem.items = {
|
|
757
|
+
elem.items = {
|
|
758
|
+
__proto__: XsnArtifact.prototype, location: elem.expand[$location], $inferred: 'query',
|
|
759
|
+
};
|
|
753
760
|
setLink( elem.items, '_outer', elem );
|
|
754
761
|
}
|
|
755
762
|
return initFromColumns( elem, elem.expand );
|
|
@@ -784,7 +791,7 @@ function populate( model ) {
|
|
|
784
791
|
const q = userQuery( query );
|
|
785
792
|
q.$inlines.push( col );
|
|
786
793
|
col.kind = '$inline';
|
|
787
|
-
col.name = { id: `.${ q.$inlines.length }`, $inferred: '$internal' };
|
|
794
|
+
col.name = { __proto__: XsnName.prototype, id: `.${ q.$inlines.length }`, $inferred: '$internal' };
|
|
788
795
|
// TODO: use a name already set in define.js
|
|
789
796
|
// TODO: really use $inferred: '$internal', not '$inline' ? Re-check.
|
|
790
797
|
// a name for this internal symtab entry (e.g. '.2' to avoid clashes
|
|
@@ -1088,7 +1095,7 @@ function populate( model ) {
|
|
|
1088
1095
|
if (!exposed.length) {
|
|
1089
1096
|
const origTarget = target;
|
|
1090
1097
|
// TODO: probably calculate effectiveType of target earlier
|
|
1091
|
-
if (effectiveType( target ) && isAutoExposed( target ))
|
|
1098
|
+
if (effectiveType( target ) && isAutoExposed( target, service ))
|
|
1092
1099
|
target = createAutoExposed( origTarget, service, elemScope );
|
|
1093
1100
|
const desc = origTarget._descendants ||
|
|
1094
1101
|
setLink( origTarget, '_descendants', Object.create( null ) );
|
|
@@ -1207,7 +1214,10 @@ function populate( model ) {
|
|
|
1207
1214
|
return autoScope;
|
|
1208
1215
|
const { location } = service.name;
|
|
1209
1216
|
const nullScope = {
|
|
1210
|
-
|
|
1217
|
+
__proto__: XsnArtifact.prototype,
|
|
1218
|
+
kind: 'namespace',
|
|
1219
|
+
name: { __proto__: XsnName.prototype, id: autoScopeName, location },
|
|
1220
|
+
location,
|
|
1211
1221
|
};
|
|
1212
1222
|
model.definitions[autoScopeName] = nullScope;
|
|
1213
1223
|
initMainArtifact( nullScope );
|
|
@@ -1252,46 +1262,60 @@ function populate( model ) {
|
|
|
1252
1262
|
|
|
1253
1263
|
// Auto-exposure -----------------------------------------------------------
|
|
1254
1264
|
|
|
1265
|
+
// @cds.autoexpose on entity is propagated along query source (not via assoc)
|
|
1266
|
+
//
|
|
1267
|
+
// - not provided or null: auto-expose if it "is composition target"
|
|
1268
|
+
// (is also propagated, but has lower priority)
|
|
1269
|
+
// - false (or 0, ''): don't auto-expose
|
|
1270
|
+
// - truthy: auto-expose if there is no falsy @cds.autoexpose on service,
|
|
1271
|
+
// counts as not provided otherwise → check "is composition target"
|
|
1272
|
+
|
|
1255
1273
|
// Remark: With includes, the compiler propagates @cds.autoexpose early.
|
|
1256
|
-
function isAutoExposed( target ) {
|
|
1274
|
+
function isAutoExposed( target, service ) {
|
|
1257
1275
|
// remark: effectiveType( target ) has been called → we can use links directly
|
|
1258
|
-
|
|
1259
|
-
|
|
1276
|
+
const viaAnno = inheritAutoExpose( target, autoExposeViaAnno ) &&
|
|
1277
|
+
(!annotationIsFalse( service['@cds.autoexpose'] ) || null);
|
|
1278
|
+
return viaAnno ?? inheritAutoExpose( target, autoExposeViaComposition );
|
|
1279
|
+
}
|
|
1260
1280
|
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1281
|
+
function inheritAutoExpose( art, callback ) {
|
|
1282
|
+
let val = callback( art );
|
|
1283
|
+
if (val !== undefined)
|
|
1284
|
+
return val;
|
|
1285
|
+
|
|
1286
|
+
const chain = [ art ];
|
|
1287
|
+
while (val === undefined && art.query && art._effectiveType) { // no answer yet
|
|
1288
|
+
let alias = art._origin;
|
|
1289
|
+
while (alias?._origin?._main) // sub query in from
|
|
1290
|
+
alias = alias._origin._origin; // its first table alias
|
|
1291
|
+
art = alias?._artifact; // not alias?._origin(!)
|
|
1292
|
+
if (!art || art._main) // ref error or `Source:assoc`
|
|
1272
1293
|
break;
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
}
|
|
1276
|
-
const autoexpose = target.$autoexpose;
|
|
1277
|
-
if (typeof autoexpose === 'boolean') {
|
|
1278
|
-
for (const a of chain)
|
|
1279
|
-
a.$autoexpose = autoexpose;
|
|
1294
|
+
val = callback( art );
|
|
1295
|
+
chain.push( art );
|
|
1280
1296
|
}
|
|
1281
|
-
|
|
1297
|
+
val ??= null;
|
|
1298
|
+
chain.forEach( a => callback( a, val ) );
|
|
1299
|
+
return val;
|
|
1282
1300
|
}
|
|
1283
1301
|
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
if (anno && anno.val !== null) { // XSN TODO: set val, but no location for anno short form
|
|
1288
|
-
// @cds.autoexpose:true or @cds.autoexpose:false
|
|
1289
|
-
art.$autoexpose = anno.val === undefined || !!anno.val;
|
|
1290
|
-
return false; // stop with @cds.autoexpose
|
|
1302
|
+
function autoExposeViaAnno( art, val = undefined ) {
|
|
1303
|
+
if (val !== undefined) {
|
|
1304
|
+
art.$autoexpose = val;
|
|
1291
1305
|
}
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1306
|
+
else if (art.$autoexpose === undefined) {
|
|
1307
|
+
const anno = art['@cds.autoexpose'];
|
|
1308
|
+
if (anno && anno.val !== null)
|
|
1309
|
+
return anno.val === undefined || !!anno.val;
|
|
1310
|
+
}
|
|
1311
|
+
return art.$autoexpose;
|
|
1312
|
+
}
|
|
1313
|
+
|
|
1314
|
+
function autoExposeViaComposition( art, val = undefined ) {
|
|
1315
|
+
const { id } = art.name;
|
|
1316
|
+
if (val !== undefined)
|
|
1317
|
+
model.$compositionTargets[id] = val;
|
|
1318
|
+
return model.$compositionTargets[id];
|
|
1295
1319
|
}
|
|
1296
1320
|
|
|
1297
1321
|
function autoExposedName( target, service, elemScope ) {
|
|
@@ -1357,14 +1381,19 @@ function populate( model ) {
|
|
|
1357
1381
|
const location = weakRefLocation( target.name );
|
|
1358
1382
|
const from = { path: [ { id: target.name.id, location } ], location };
|
|
1359
1383
|
const art = registerGeneratedEntity( {
|
|
1384
|
+
__proto__: XsnArtifact.prototype,
|
|
1360
1385
|
kind: 'entity',
|
|
1361
|
-
name: { location, id: absolute },
|
|
1386
|
+
name: { __proto__: XsnName.prototype, location, id: absolute },
|
|
1362
1387
|
location,
|
|
1363
1388
|
query: { location, op: { val: 'SELECT', location }, from },
|
|
1364
1389
|
$syntax: 'projection',
|
|
1365
1390
|
$inferred: 'autoexposed',
|
|
1366
1391
|
'@cds.autoexposed': {
|
|
1367
|
-
name: {
|
|
1392
|
+
name: {
|
|
1393
|
+
__proto__: XsnName.prototype,
|
|
1394
|
+
path: [ { id: 'cds.autoexposed', location } ],
|
|
1395
|
+
location,
|
|
1396
|
+
},
|
|
1368
1397
|
$inferred: '$generated',
|
|
1369
1398
|
},
|
|
1370
1399
|
} );
|
|
@@ -1376,7 +1405,7 @@ function populate( model ) {
|
|
|
1376
1405
|
forEachGeneric( target, 'params', (p, pn) => {
|
|
1377
1406
|
art.params[pn] = linkToOrigin( p, pn, art, 'params' );
|
|
1378
1407
|
from.path[0].args[pn] = {
|
|
1379
|
-
name: { id: p.name.id, location },
|
|
1408
|
+
name: { __proto__: XsnName.prototype, id: p.name.id, location },
|
|
1380
1409
|
location,
|
|
1381
1410
|
scope: 'param',
|
|
1382
1411
|
path: [ { id: pn, location } ],
|
|
@@ -347,6 +347,7 @@ function propagate( model ) {
|
|
|
347
347
|
/**
|
|
348
348
|
* Propagate `localized`, but not for a texts entity
|
|
349
349
|
* (as `null` in an Universal CSN).
|
|
350
|
+
* TODO: extra handling of #14363 for .texts still necessary? we have `localized: null`
|
|
350
351
|
*/
|
|
351
352
|
function localized( prop, target, source ) {
|
|
352
353
|
const main = target._main;
|
|
@@ -69,6 +69,7 @@ const {
|
|
|
69
69
|
|
|
70
70
|
const detectCycles = require('./cycle-detector');
|
|
71
71
|
const { CompilerAssertion } = require('../base/error');
|
|
72
|
+
const { XsnName, XsnArtifact } = require('./xsn-model');
|
|
72
73
|
|
|
73
74
|
const $location = Symbol.for( 'cds.$location' );
|
|
74
75
|
|
|
@@ -148,9 +149,6 @@ function resolve( model ) {
|
|
|
148
149
|
// foreign keys in populate.js (foreign key access w/o JOINs).
|
|
149
150
|
|
|
150
151
|
// Phase 2+3: calculate keys along simple queries in collected views:
|
|
151
|
-
model._entities = Object.values( model.definitions )
|
|
152
|
-
.filter( art => art.$effectiveSeqNo )
|
|
153
|
-
.sort( (x, y) => x.$effectiveSeqNo - y.$effectiveSeqNo );
|
|
154
152
|
model._entities.forEach( setNavigationProjections );
|
|
155
153
|
model._entities.forEach( propagateKeyProps );
|
|
156
154
|
// While most dependencies leading have been added at this point, new
|
|
@@ -637,6 +635,7 @@ function resolve( model ) {
|
|
|
637
635
|
art.value.scope === 'param' )) {
|
|
638
636
|
art['@Core.Computed'] = {
|
|
639
637
|
name: {
|
|
638
|
+
__proto__: XsnName.prototype,
|
|
640
639
|
path: [ { id: 'Core.Computed', location: art.location } ],
|
|
641
640
|
location: art.location,
|
|
642
641
|
},
|
|
@@ -1457,7 +1456,10 @@ function resolve( model ) {
|
|
|
1457
1456
|
if (elem.key?.val) {
|
|
1458
1457
|
const location = weakLocation( obj.target.location );
|
|
1459
1458
|
const key = {
|
|
1460
|
-
|
|
1459
|
+
__proto__: XsnArtifact.prototype,
|
|
1460
|
+
name: {
|
|
1461
|
+
__proto__: XsnName.prototype, location, id: elem.name.id, $inferred: 'keys',
|
|
1462
|
+
},
|
|
1461
1463
|
kind: 'key',
|
|
1462
1464
|
targetElement: { path: [ { id: elem.name.id, location } ], location },
|
|
1463
1465
|
location,
|
|
@@ -41,6 +41,8 @@ function fns( model ) {
|
|
|
41
41
|
const Functions = model.$functions;
|
|
42
42
|
|
|
43
43
|
// Map `exprCtx` (is a param of traversal functions) to reference semantics
|
|
44
|
+
//
|
|
45
|
+
// accept: function w
|
|
44
46
|
const referenceSemantics = {
|
|
45
47
|
// global: ------------------------------------------------------------------
|
|
46
48
|
using: { // only used to produce warnings
|
|
@@ -939,12 +941,11 @@ function fns( model ) {
|
|
|
939
941
|
}
|
|
940
942
|
else if (art.$inferred === 'autoexposed' && !user.$inferred &&
|
|
941
943
|
isMainRef !== 'no-leaf-gap') {
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
//
|
|
945
|
-
//
|
|
946
|
-
|
|
947
|
-
'An auto-exposed entity can\'t be referred to - expose entity $(ART) explicitly' );
|
|
944
|
+
semantics.notFound( user, item, [ removeGapArtifact( env, true ) ],
|
|
945
|
+
null, prev, path, semantics );
|
|
946
|
+
// TODO: with delayed messaging, we could have an extra text variant for
|
|
947
|
+
// 'An auto-exposed entity can\'t be referred to', see code in v6. Not now,
|
|
948
|
+
// since the creation of auto-exposed entities depends on the processing seq
|
|
948
949
|
return null; // continuation semantics: like “not found”
|
|
949
950
|
}
|
|
950
951
|
}
|
|
@@ -1691,52 +1692,30 @@ function fns( model ) {
|
|
|
1691
1692
|
return false;
|
|
1692
1693
|
}
|
|
1693
1694
|
|
|
1694
|
-
function acceptStructOrBare( art, user, ref ) { // for includes
|
|
1695
|
-
//
|
|
1696
|
-
if (user.kind in { context: 1, service: 1, action: 1, function: 1 })
|
|
1697
|
-
return false;
|
|
1698
|
-
// It had been checked before that `includes` is already forbidden for
|
|
1699
|
-
// non-entity/aspect/type/event.
|
|
1700
|
-
//
|
|
1701
|
-
// We currently disallow as include:
|
|
1702
|
-
// - non-structured types or derived type of structured:
|
|
1703
|
-
// would have to follow type in extend/include;
|
|
1704
|
-
// - entities with params: clarify inheritance, use of param in ON/DEFAULT;
|
|
1705
|
-
// - query entities/events: difficult sequence of resolve steps
|
|
1706
|
-
// - aspect with one ore more elements on query entities / events
|
|
1707
|
-
// - aspect with `elements` property on non-structured types
|
|
1708
|
-
|
|
1709
|
-
// TODO: adapt `user` if it is an `extend`? NOTE: we cannot call
|
|
1710
|
-
// effectiveType() on user - it might be in the process of being computed!
|
|
1711
|
-
// Also, it is not clear whether `art.elements` has been completed → testing
|
|
1712
|
-
// its length might be processing-sequence dependent, see #11346. We must
|
|
1713
|
-
// ensure that an include does not add the `elements` property!
|
|
1695
|
+
function acceptStructOrBare( art, user, ref ) { // for includes
|
|
1696
|
+
// Also consider reportInvalidIncludes() in extend.js
|
|
1714
1697
|
const base = (user.kind === 'extend' ? user.name._artifact : user);
|
|
1715
|
-
if (!base)
|
|
1698
|
+
if (!base) // TODO: test CSN input
|
|
1699
|
+
return art;
|
|
1700
|
+
|
|
1701
|
+
if (![ 'entity', 'aspect', 'type', 'event' ].includes( base.kind )) {
|
|
1702
|
+
// TODO: allow bare aspects for all others - soon
|
|
1703
|
+
error( 'extend-unexpected-include', [ ref.location, user ], { '#': base.kind } );
|
|
1704
|
+
}
|
|
1705
|
+
else if (![ 'entity', 'aspect', 'type', 'event' ].includes( art.kind )) {
|
|
1706
|
+
// Remark: with delayed message text, we could choose the bare text variant
|
|
1707
|
+
// where appropriate (scalar types, …); can do that here only for aspects,
|
|
1708
|
+
// because the effective type of `base` has not necessarily been calculated
|
|
1709
|
+
error( 'ref-invalid-include', [ ref.location, user ],
|
|
1710
|
+
{ '#': (art.kind !== 'aspect' || art.elements ? 'std' : 'bare') } );
|
|
1711
|
+
}
|
|
1712
|
+
else if (!art.params) {
|
|
1716
1713
|
return art;
|
|
1717
|
-
if (base.query || base.type || !base.elements) {
|
|
1718
|
-
// Remark: it is not necessary to test for user.elements[$inferred], because
|
|
1719
|
-
// the type could only have inferred elements if it has a type expression.
|
|
1720
|
-
// Including aspects with elements is forbidden for aspects without the
|
|
1721
|
-
// `elements` property. Testing for the length of `art.elements` requires
|
|
1722
|
-
// that we have applied potential `includes` of `art` before!
|
|
1723
|
-
// We might allow includes with elements in the future, they'd probably
|
|
1724
|
-
// count as specified elements with lower priority, i.e. annos, types, key
|
|
1725
|
-
// etc on columns beat those inherited from the include.
|
|
1726
|
-
// TODO v7 forbid `extend Proj with ZeroElemAspect` even if ZeroElemAspect has
|
|
1727
|
-
// 0 elements. Making the element-length check work requires that effectiveType()
|
|
1728
|
-
// has been called on the include already before.
|
|
1729
|
-
if (art.kind === 'aspect' &&
|
|
1730
|
-
(!art.elements || base.query && !Object.keys( art.elements ).length))
|
|
1731
|
-
return art;
|
|
1732
|
-
signalNotFound( 'ref-invalid-include', [ ref.location, user ], null,
|
|
1733
|
-
{ '#': 'bare' } );
|
|
1734
1714
|
}
|
|
1735
1715
|
else {
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
signalNotFound( 'ref-invalid-include', [ ref.location, user ], null, { '#': variant } );
|
|
1716
|
+
// art.params could not come via inferrence or be added via extend
|
|
1717
|
+
signalNotFound( 'ref-invalid-include', [ ref.location, user ], null,
|
|
1718
|
+
{ '#': 'param' } );
|
|
1740
1719
|
}
|
|
1741
1720
|
return false;
|
|
1742
1721
|
}
|
|
@@ -2220,7 +2199,7 @@ function fns( model ) {
|
|
|
2220
2199
|
names.length = 20;
|
|
2221
2200
|
names[20] = '…';
|
|
2222
2201
|
}
|
|
2223
|
-
info( null, [ loc, null ],
|
|
2202
|
+
info( null, [ loc, null ], // Ok to have no message-id here (just --test-mode)
|
|
2224
2203
|
{ '#': !names.length ? 'zero' : 'std' },
|
|
2225
2204
|
{ std: `Valid: ${ names.join( ', ' ) }`, zero: 'No valid names' } );
|
|
2226
2205
|
}
|
|
@@ -2255,6 +2234,8 @@ function removeDollarNames( dict ) {
|
|
|
2255
2234
|
}
|
|
2256
2235
|
|
|
2257
2236
|
function removeGapArtifact( dict, alsoRemoveInferred ) {
|
|
2237
|
+
// With `alsoRemoveInferred`, do not list compiler-generated entities
|
|
2238
|
+
// TODO: limit to auto-exposed entities, don't use !definedViaCdl() as arg
|
|
2258
2239
|
const r = Object.create( null );
|
|
2259
2240
|
for (const name in dict) {
|
|
2260
2241
|
const art = dict[name];
|