From 0c99609cc74d53ceecebb6235aff3b25104c7cd2 Mon Sep 17 00:00:00 2001 From: sanketshevkar Date: Mon, 13 Jan 2025 22:30:15 +0530 Subject: [PATCH 01/12] chore(aliasing): tests import aliasing Signed-off-by: sanketshevkar --- package-lock.json | 1157 +++---- .../lib/introspect/declaration.js | 1 + .../concerto-core/lib/introspect/property.js | 1 + packages/concerto-core/package.json | 2 +- .../test/data/aliasing/child.cto | 5 + .../test/data/aliasing/parent.cto | 24 + .../test/data/model/carResolved.json | 167 +- .../test/data/model/personResolved.json | 2758 +++++++++-------- .../test/introspect/classdeclaration.js | 104 + .../test/introspect/decorator.js | 49 + .../concerto-core/test/introspect/property.js | 57 + .../test/introspect/scalardeclaration.js | 65 + packages/concerto-cto/package.json | 2 +- packages/concerto-vocabulary/package.json | 2 +- 14 files changed, 2350 insertions(+), 2044 deletions(-) create mode 100644 packages/concerto-core/test/data/aliasing/child.cto create mode 100644 packages/concerto-core/test/data/aliasing/parent.cto diff --git a/package-lock.json b/package-lock.json index 6e1207efb0..186e686f26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,6 +28,28 @@ "npm": ">=10" } }, + "../concerto-metamodel": { + "name": "@accordproject/concerto-metamodel", + "version": "3.10.4", + "license": "Apache-2.0", + "devDependencies": { + "@types/webgl-ext": "0.0.37", + "chai": "4.3.6", + "chai-things": "0.2.0", + "dayjs": "1.11.13", + "eslint": "8.57.1", + "jsdoc": "^4.0.4", + "license-check-and-add": "2.3.6", + "mocha": "10.8.2", + "nyc": "17.1.0", + "semver": "7.6.3", + "typescript": "5.7.2" + }, + "engines": { + "node": ">=14", + "npm": ">=6" + } + }, "node_modules/@accordproject/concerto-analysis": { "resolved": "packages/concerto-analysis", "link": true @@ -342,14 +364,8 @@ "link": true }, "node_modules/@accordproject/concerto-metamodel": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.4.tgz", - "integrity": "sha512-5xnuxEMen6WeRXsSyEcfDwU9/12JfvuGBZoYCsDoKLgGZ/36paR+9saFXTZMyU4HLNgyqvn+/5Xcldqd8INkCg==", - "license": "Apache-2.0", - "engines": { - "node": ">=14", - "npm": ">=6" - } + "resolved": "../concerto-metamodel", + "link": true }, "node_modules/@accordproject/concerto-types": { "resolved": "packages/concerto-types", @@ -393,9 +409,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", - "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", "dev": true, "license": "MIT", "engines": { @@ -451,14 +467,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -481,13 +497,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.9", + "@babel/compat-data": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", @@ -644,9 +660,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, "license": "MIT", "engines": { @@ -672,15 +688,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-member-expression-to-functions": "^7.25.9", "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/traverse": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -763,13 +779,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.26.3" + "@babel/types": "^7.26.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -1200,13 +1216,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1620,13 +1636,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.5.tgz", + "integrity": "sha512-OHqczNm4NTQlW1ghrVY43FPoiRzbmzNVbcgVnMKZN/RQYezHUSdjACjaX50CD3B7UIAjv39+MlsrVDb3v741FA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -2136,17 +2152,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.26.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", - "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", + "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.3", - "@babel/parser": "^7.26.3", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.5", "@babel/template": "^7.25.9", - "@babel/types": "^7.26.3", + "@babel/types": "^7.26.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2155,9 +2171,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", "dev": true, "license": "MIT", "dependencies": { @@ -2345,109 +2361,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -2895,9 +2808,9 @@ } }, "node_modules/@jsdoc/salty": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", - "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.9.tgz", + "integrity": "sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2968,9 +2881,9 @@ } }, "node_modules/@openapi-contrib/openapi-schema-to-json-schema/node_modules/@types/node": { - "version": "20.17.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", - "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "version": "20.17.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.12.tgz", + "integrity": "sha512-vo/wmBgMIiEA23A/knMfn/cf37VnuF52nZh5ZoW0GWt4e4sxNquibrMRJ7UQsA06+MBx9r/H1jsI9grYjQCQlw==", "dev": true, "license": "MIT", "dependencies": { @@ -3314,9 +3227,9 @@ "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", - "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A==", "dev": true, "license": "MIT" }, @@ -3346,9 +3259,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "version": "22.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", + "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4101,14 +4014,14 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -4128,20 +4041,19 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -4741,9 +4653,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -4761,9 +4673,9 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { @@ -4892,14 +4804,14 @@ } }, "node_modules/call-bound": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.2.tgz", - "integrity": "sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "get-intrinsic": "^1.2.5" + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -4929,9 +4841,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001688", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001688.tgz", - "integrity": "sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==", + "version": "1.0.30001692", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz", + "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==", "dev": true, "funding": [ { @@ -5267,13 +5179,13 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.24.2" + "browserslist": "^4.24.3" }, "funding": { "type": "opencollective", @@ -5281,9 +5193,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.39.0.tgz", - "integrity": "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==", + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz", + "integrity": "sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -5430,15 +5342,15 @@ } }, "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5448,31 +5360,31 @@ } }, "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/inspect-js" } }, "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, @@ -5723,13 +5635,13 @@ } }, "node_modules/dunder-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.0.tgz", - "integrity": "sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.0", + "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" }, @@ -5737,13 +5649,6 @@ "node": ">= 0.4" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, "node_modules/ejs": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", @@ -5761,9 +5666,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.73", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.73.tgz", - "integrity": "sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==", + "version": "1.5.80", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.80.tgz", + "integrity": "sha512-LTrKpW0AqIuHwmlVNV+cjFYTnXtM9K37OGhpe0ZI10ScPSxqVSryZHIY3WnCS5NSYbBODRTZyhRMS2h5FAEqAw==", "dev": true, "license": "ISC" }, @@ -5811,9 +5716,9 @@ "license": "MIT" }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5861,58 +5766,63 @@ } }, "node_modules/es-abstract": { - "version": "1.23.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", - "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" }, "engines": { "node": ">= 0.4" @@ -5942,9 +5852,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", "dev": true, "license": "MIT" }, @@ -5962,15 +5872,16 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.4", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -6418,9 +6329,9 @@ "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -6428,7 +6339,7 @@ "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -6449,10 +6360,20 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz", + "integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], "license": "BSD-3-Clause" }, "node_modules/fastest-levenshtein": { @@ -6466,9 +6387,9 @@ } }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, "license": "ISC", "dependencies": { @@ -6724,16 +6645,18 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -6783,22 +6706,22 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", - "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", - "dunder-proto": "^1.0.0", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", + "get-proto": "^1.0.0", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "math-intrinsics": "^1.0.0" + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -6817,6 +6740,20 @@ "node": ">=8.0.0" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -6831,15 +6768,15 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -7002,11 +6939,14 @@ "license": "MIT" }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7305,15 +7245,15 @@ "license": "ISC" }, "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -7330,14 +7270,14 @@ } }, "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -7347,14 +7287,15 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -7371,13 +7312,16 @@ "license": "MIT" }, "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", + "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -7416,13 +7360,13 @@ } }, "node_modules/is-boolean-object": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.0.tgz", - "integrity": "sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" }, "engines": { @@ -7446,9 +7390,9 @@ } }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, "license": "MIT", "dependencies": { @@ -7480,13 +7424,14 @@ } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -7506,13 +7451,13 @@ } }, "node_modules/is-finalizationregistry": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", - "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -7542,13 +7487,16 @@ } }, "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -7600,19 +7548,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -7624,13 +7559,13 @@ } }, "node_modules/is-number-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.0.tgz", - "integrity": "sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" }, "engines": { @@ -7706,13 +7641,13 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -7735,13 +7670,13 @@ } }, "node_modules/is-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.0.tgz", - "integrity": "sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" }, "engines": { @@ -7752,15 +7687,15 @@ } }, "node_modules/is-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.0.tgz", - "integrity": "sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "has-symbols": "^1.0.3", - "safe-regex-test": "^1.0.3" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -7770,13 +7705,13 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -7819,27 +7754,30 @@ } }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -8000,22 +7938,6 @@ "node": ">=8" } }, - "node_modules/jackspeak": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", - "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/jake": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", @@ -9434,9 +9356,9 @@ } }, "node_modules/math-intrinsics": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.0.0.tgz", - "integrity": "sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, "license": "MIT", "engines": { @@ -9596,16 +9518,6 @@ "node": "*" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -10115,9 +10027,9 @@ } }, "node_modules/node-polyfill-webpack-plugin/node_modules/type-fest": { - "version": "4.30.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz", - "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==", + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.32.0.tgz", + "integrity": "sha512-rfgpoi08xagF3JSdtJlCwMq9DGNDE0IMh3Mkpc1wUypg9vPi786AiqeBBKcqvIkq42azsBM85N490fyZjeUftw==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -10549,15 +10461,17 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -10669,6 +10583,24 @@ "dev": true, "license": "MIT" }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -10737,13 +10669,6 @@ "node": ">=8" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -10845,33 +10770,6 @@ "dev": true, "license": "MIT" }, - "node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", - "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/path-to-regexp": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", @@ -11306,9 +11204,9 @@ } }, "node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", "dev": true, "license": "MIT", "dependencies": { @@ -11349,20 +11247,20 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.8.tgz", - "integrity": "sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "dunder-proto": "^1.0.0", - "es-abstract": "^1.23.5", + "es-abstract": "^1.23.9", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.2.0", - "which-builtin-type": "^1.2.0" + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -11409,15 +11307,17 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", "set-function-name": "^2.0.2" }, "engines": { @@ -11529,19 +11429,22 @@ } }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11699,16 +11602,40 @@ ], "license": "MIT" }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "is-regex": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -11837,6 +11764,21 @@ "node": ">= 0.4" } }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -12257,39 +12199,6 @@ "node": ">=6" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/string-width/node_modules/ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -12404,20 +12313,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -12507,17 +12402,17 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -12541,25 +12436,6 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -12759,32 +12635,32 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -12794,19 +12670,19 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", - "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "reflect.getprototypeof": "^1.0.6" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -12868,16 +12744,19 @@ "license": "MIT" }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12965,9 +12844,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "dev": true, "funding": [ { @@ -12986,7 +12865,7 @@ "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -13315,17 +13194,17 @@ } }, "node_modules/which-boxed-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz", - "integrity": "sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, "license": "MIT", "dependencies": { "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.0", - "is-number-object": "^1.1.0", - "is-string": "^1.1.0", - "is-symbol": "^1.1.0" + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -13335,25 +13214,25 @@ } }, "node_modules/which-builtin-type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", - "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", + "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", + "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", + "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", - "which-typed-array": "^1.1.15" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -13396,16 +13275,17 @@ "license": "ISC" }, "node_modules/which-typed-array": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", - "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, "engines": { @@ -13454,57 +13334,6 @@ "node": ">=6" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -13804,7 +13633,7 @@ "license": "Apache-2.0", "dependencies": { "@accordproject/concerto-cto": "3.20.1", - "@accordproject/concerto-metamodel": "3.10.4", + "@accordproject/concerto-metamodel": "../../../concerto-metamodel", "@accordproject/concerto-util": "3.20.1", "dayjs": "1.11.13", "debug": "4.3.7", @@ -13998,7 +13827,7 @@ "version": "3.20.1", "license": "Apache-2.0", "dependencies": { - "@accordproject/concerto-metamodel": "3.10.4", + "@accordproject/concerto-metamodel": "../../../concerto-metamodel", "@accordproject/concerto-util": "3.20.1" }, "devDependencies": { @@ -14059,8 +13888,6 @@ }, "packages/concerto-types/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { @@ -14069,8 +13896,6 @@ }, "packages/concerto-types/node_modules/glob": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, "license": "ISC", "dependencies": { @@ -14093,8 +13918,6 @@ }, "packages/concerto-types/node_modules/minimatch": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, "license": "ISC", "dependencies": { @@ -14109,8 +13932,6 @@ }, "packages/concerto-types/node_modules/rimraf": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", - "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", "dev": true, "license": "ISC", "dependencies": { @@ -14186,7 +14007,7 @@ "version": "3.20.1", "license": "Apache-2.0", "dependencies": { - "@accordproject/concerto-metamodel": "3.10.4", + "@accordproject/concerto-metamodel": "../../../concerto-metamodel", "yaml": "2.6.1" }, "devDependencies": { diff --git a/packages/concerto-core/lib/introspect/declaration.js b/packages/concerto-core/lib/introspect/declaration.js index 033c2afe45..91d59c691a 100644 --- a/packages/concerto-core/lib/introspect/declaration.js +++ b/packages/concerto-core/lib/introspect/declaration.js @@ -65,6 +65,7 @@ class Declaration extends Decorated { throw new IllegalModelException(`Invalid class name '${this.ast.name}'`, this.modelFile, this.ast.location); } + // should we use resolved name here? this.name = this.ast.name; this.fqn = ModelUtil.getFullyQualifiedName(this.modelFile.getNamespace(), this.name); } diff --git a/packages/concerto-core/lib/introspect/property.js b/packages/concerto-core/lib/introspect/property.js index db041f0d0b..1a92117c7f 100644 --- a/packages/concerto-core/lib/introspect/property.js +++ b/packages/concerto-core/lib/introspect/property.js @@ -109,6 +109,7 @@ class Property extends Decorated { this.type = 'String'; break; case `${MetaModelNamespace}.ObjectProperty`: + // should we have resolved name here? this.type = this.ast.type ? this.ast.type.name : null; break; case `${MetaModelNamespace}.RelationshipProperty`: diff --git a/packages/concerto-core/package.json b/packages/concerto-core/package.json index 27d04e8ce6..eaec744985 100644 --- a/packages/concerto-core/package.json +++ b/packages/concerto-core/package.json @@ -65,7 +65,7 @@ }, "dependencies": { "@accordproject/concerto-cto": "3.20.1", - "@accordproject/concerto-metamodel": "3.10.4", + "@accordproject/concerto-metamodel": "../../../concerto-metamodel", "@accordproject/concerto-util": "3.20.1", "dayjs": "1.11.13", "debug": "4.3.7", diff --git a/packages/concerto-core/test/data/aliasing/child.cto b/packages/concerto-core/test/data/aliasing/child.cto new file mode 100644 index 0000000000..0e0995d172 --- /dev/null +++ b/packages/concerto-core/test/data/aliasing/child.cto @@ -0,0 +1,5 @@ +namespace child@1.0.0 +concept Child { + o Integer age +} +scalar MyString extends String diff --git a/packages/concerto-core/test/data/aliasing/parent.cto b/packages/concerto-core/test/data/aliasing/parent.cto new file mode 100644 index 0000000000..71d8dde62d --- /dev/null +++ b/packages/concerto-core/test/data/aliasing/parent.cto @@ -0,0 +1,24 @@ +@test(Kid) +namespace parent@1.0.0 + +import child@1.0.0.{MyString as Str, Child as Kid} + +@test(Kid) +concept Child extends Kid { + @test(Kid) + o Kid kid + o Str str +} + +concept Student extends Child { + o Str schoolName + o Str name + o Child myChild +} + +@test(Kid) +map KidIndex { + o Str + @test(Kid) + o Kid +} diff --git a/packages/concerto-core/test/data/model/carResolved.json b/packages/concerto-core/test/data/model/carResolved.json index 667973508c..64e91aadf7 100644 --- a/packages/concerto-core/test/data/model/carResolved.json +++ b/packages/concerto-core/test/data/model/carResolved.json @@ -1 +1,166 @@ -{"$class":"concerto.metamodel@1.0.0.Models","models":[{"$class":"concerto.metamodel@1.0.0.Model","decorators":[],"namespace":"org.vehicle","imports":[],"declarations":[{"$class":"concerto.metamodel@1.0.0.ConceptDeclaration","name":"Manufactured","isAbstract":true,"properties":[],"location":{"$class":"concerto.metamodel@1.0.0.Range","start":{"offset":23,"line":3,"column":1,"$class":"concerto.metamodel@1.0.0.Position"},"end":{"offset":56,"line":4,"column":2,"$class":"concerto.metamodel@1.0.0.Position"}}},{"$class":"concerto.metamodel@1.0.0.ConceptDeclaration","name":"Vehicle","isAbstract":true,"properties":[{"$class":"concerto.metamodel@1.0.0.StringProperty","name":"name","isArray":false,"isOptional":false,"location":{"$class":"concerto.metamodel@1.0.0.Range","start":{"offset":108,"line":7,"column":3,"$class":"concerto.metamodel@1.0.0.Position"},"end":{"offset":124,"line":8,"column":3,"$class":"concerto.metamodel@1.0.0.Position"}}},{"$class":"concerto.metamodel@1.0.0.DoubleProperty","name":"range","isArray":false,"isOptional":false,"location":{"$class":"concerto.metamodel@1.0.0.Range","start":{"offset":124,"line":8,"column":3,"$class":"concerto.metamodel@1.0.0.Position"},"end":{"offset":139,"line":9,"column":1,"$class":"concerto.metamodel@1.0.0.Position"}}}],"location":{"$class":"concerto.metamodel@1.0.0.Range","start":{"offset":58,"line":6,"column":1,"$class":"concerto.metamodel@1.0.0.Position"},"end":{"offset":140,"line":9,"column":2,"$class":"concerto.metamodel@1.0.0.Position"}},"superType":{"$class":"concerto.metamodel@1.0.0.TypeIdentifier","name":"Manufactured","namespace":"org.vehicle"}}]},{"$class":"concerto.metamodel@1.0.0.Model","decorators":[],"namespace":"org.car","imports":[{"$class":"concerto.metamodel@1.0.0.ImportAll","namespace":"org.vehicle"}],"declarations":[{"$class":"concerto.metamodel@1.0.0.ConceptDeclaration","name":"Car","isAbstract":false,"properties":[{"$class":"concerto.metamodel@1.0.0.DoubleProperty","name":"mileage","isArray":false,"isOptional":false,"location":{"$class":"concerto.metamodel@1.0.0.Range","start":{"offset":73,"line":6,"column":3,"$class":"concerto.metamodel@1.0.0.Position"},"end":{"offset":90,"line":7,"column":1,"$class":"concerto.metamodel@1.0.0.Position"}}}],"location":{"$class":"concerto.metamodel@1.0.0.Range","start":{"offset":41,"line":5,"column":1,"$class":"concerto.metamodel@1.0.0.Position"},"end":{"offset":91,"line":7,"column":2,"$class":"concerto.metamodel@1.0.0.Position"}},"superType":{"$class":"concerto.metamodel@1.0.0.TypeIdentifier","name":"Vehicle","namespace":"org.vehicle"}}]}]} +{ + "$class": "concerto.metamodel@1.0.0.Models", + "models": [ + { + "$class": "concerto.metamodel@1.0.0.Model", + "decorators": [], + "namespace": "org.vehicle", + "imports": [], + "declarations": [ + { + "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", + "name": "Manufactured", + "isAbstract": true, + "properties": [], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 23, + "line": 3, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 56, + "line": 4, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", + "name": "Vehicle", + "isAbstract": true, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "name", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 108, + "line": 7, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 124, + "line": 8, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DoubleProperty", + "name": "range", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 124, + "line": 8, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 139, + "line": 9, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 58, + "line": 6, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 140, + "line": 9, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "superType": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Manufactured", + "namespace": "org.vehicle", + "resolvedName": "Manufactured" + } + } + ] + }, + { + "$class": "concerto.metamodel@1.0.0.Model", + "decorators": [], + "namespace": "org.car", + "imports": [ + { + "$class": "concerto.metamodel@1.0.0.ImportAll", + "namespace": "org.vehicle" + } + ], + "declarations": [ + { + "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", + "name": "Car", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.DoubleProperty", + "name": "mileage", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 73, + "line": 6, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 90, + "line": 7, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 41, + "line": 5, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 91, + "line": 7, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "superType": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Vehicle", + "namespace": "org.vehicle", + "resolvedName": "Vehicle" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/packages/concerto-core/test/data/model/personResolved.json b/packages/concerto-core/test/data/model/personResolved.json index e41e5406b0..e4782bd514 100644 --- a/packages/concerto-core/test/data/model/personResolved.json +++ b/packages/concerto-core/test/data/model/personResolved.json @@ -1,1462 +1,1476 @@ { - "$class": "concerto.metamodel@1.0.0.Model", - "decorators": [], - "namespace": "test.person", - "imports": [ + "$class": "concerto.metamodel@1.0.0.Model", + "decorators": [], + "namespace": "test.person", + "imports": [ + { + "$class": "concerto.metamodel@1.0.0.ImportAll", + "namespace": "org.accordproject.time", + "uri": "https://models.accordproject.org/time@0.2.0.cto" + }, + { + "$class": "concerto.metamodel@1.0.0.ImportType", + "name": "TemporalUnit", + "namespace": "org.accordproject.time", + "uri": "https://models.accordproject.org/time@0.2.0.cto" + } + ], + "declarations": [ + { + "$class": "concerto.metamodel@1.0.0.EnumDeclaration", + "name": "Gender", + "properties": [ { - "$class": "concerto.metamodel@1.0.0.ImportAll", - "namespace": "org.accordproject.time", - "uri": "https://models.accordproject.org/time@0.2.0.cto" + "$class": "concerto.metamodel@1.0.0.EnumProperty", + "name": "MALE", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 221, + "line": 7, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 230, + "line": 8, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } }, { - "$class": "concerto.metamodel@1.0.0.ImportType", - "name": "TemporalUnit", - "namespace": "org.accordproject.time", - "uri": "https://models.accordproject.org/time@0.2.0.cto" + "$class": "concerto.metamodel@1.0.0.EnumProperty", + "name": "FEMALE", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 230, + "line": 8, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 241, + "line": 9, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.EnumProperty", + "name": "OTHER", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 241, + "line": 9, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 249, + "line": 10, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 205, + "line": 6, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 250, + "line": 10, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ParticipantDeclaration", + "name": "Individual", + "isAbstract": true, + "properties": [], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 252, + "line": 12, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 287, + "line": 13, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" } - ], - "declarations": [ + } + }, + { + "$class": "concerto.metamodel@1.0.0.ParticipantDeclaration", + "name": "Person", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "firstName", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 331, + "line": 16, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 371, + "line": 17, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.StringRegexValidator", + "pattern": "[a-zA-Z]*", + "flags": "u" + } + }, + { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "lastName", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 371, + "line": 17, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 391, + "line": 18, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "address", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Address", + "namespace": "test.person", + "resolvedName": "Address" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 391, + "line": 18, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 411, + "line": 19, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "address2", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Address", + "namespace": "test.person", + "resolvedName": "Address" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 411, + "line": 19, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 452, + "line": 20, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": "USAddress" + }, + { + "$class": "concerto.metamodel@1.0.0.RelationshipProperty", + "name": "address3", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Address", + "namespace": "test.person", + "resolvedName": "Address" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 452, + "line": 20, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 475, + "line": 21, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, { - "$class": "concerto.metamodel@1.0.0.EnumDeclaration", + "$class": "concerto.metamodel@1.0.0.RelationshipProperty", + "name": "address4", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Address", + "namespace": "test.person", + "resolvedName": "Address" + }, + "isArray": true, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 475, + "line": 21, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 500, + "line": 22, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.RelationshipProperty", + "name": "address5", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Address", + "namespace": "test.person", + "resolvedName": "Address" + }, + "isArray": false, + "isOptional": true, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 500, + "line": 22, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 532, + "line": 23, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "gender", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", "name": "Gender", - "properties": [ - { - "$class": "concerto.metamodel@1.0.0.EnumProperty", - "name": "MALE", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 221, - "line": 7, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 230, - "line": 8, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.EnumProperty", - "name": "FEMALE", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 230, - "line": 8, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 241, - "line": 9, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.EnumProperty", - "name": "OTHER", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 241, - "line": 9, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 249, - "line": 10, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - } - ], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 205, - "line": 6, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 250, - "line": 10, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" - } + "namespace": "test.person", + "resolvedName": "Gender" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 532, + "line": 23, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 550, + "line": 24, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DateTimeProperty", + "name": "dob", + "isArray": false, + "isOptional": true, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 550, + "line": 24, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 574, + "line": 25, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 289, + "line": 15, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 575, + "line": 25, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "superType": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Individual", + "namespace": "test.person", + "resolvedName": "Individual" + } + }, + { + "$class": "concerto.metamodel@1.0.0.ParticipantDeclaration", + "name": "Employee", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "company", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 617, + "line": 28, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 636, + "line": 29, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.BooleanProperty", + "name": "onLeave", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 636, + "line": 29, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 654, + "line": 30, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 577, + "line": 27, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 655, + "line": 30, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "superType": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Person", + "namespace": "test.person", + "resolvedName": "Person" + } + }, + { + "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", + "name": "Address", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.IntegerProperty", + "name": "zip", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 688, + "line": 33, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 718, + "line": 34, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": 10001 + }, + { + "$class": "concerto.metamodel@1.0.0.LongProperty", + "name": "zip2", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 718, + "line": 34, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 746, + "line": 35, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": 10001 + }, + { + "$class": "concerto.metamodel@1.0.0.DoubleProperty", + "name": "zip3", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 746, + "line": 35, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 778, + "line": 36, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": 10001 + }, + { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "city", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 778, + "line": 36, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 808, + "line": 37, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": "NYC" + }, + { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "country", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 808, + "line": 37, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 841, + "line": 38, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" } + }, + "defaultValue": "USA" }, { - "$class": "concerto.metamodel@1.0.0.ParticipantDeclaration", - "name": "Individual", - "isAbstract": true, - "properties": [], - "location": { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "street", + "isArray": true, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 841, + "line": 38, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 861, + "line": 39, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.BooleanProperty", + "name": "isResidential", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 861, + "line": 39, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 900, + "line": 40, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": true + }, + { + "$class": "concerto.metamodel@1.0.0.BooleanProperty", + "name": "isPrivate", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 900, + "line": 40, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 934, + "line": 41, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": false + } + ], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 657, + "line": 32, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 935, + "line": 41, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "identified": { + "$class": "concerto.metamodel@1.0.0.Identified" + } + }, + { + "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", + "name": "USAddress", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.IntegerProperty", + "name": "zip4", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1054, + "line": 47, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1139, + "line": 51, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "Zip", + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 252, - "line": 12, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 1054, + "line": 47, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 287, - "line": 13, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 1084, + "line": 47, + "column": 33, + "$class": "concerto.metamodel@1.0.0.Position" } - } - }, - { - "$class": "concerto.metamodel@1.0.0.ParticipantDeclaration", - "name": "Person", - "isAbstract": false, - "properties": [ + }, + "arguments": [ { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "firstName", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 331, - "line": 16, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 371, - "line": 17, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "x", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1059, + "line": 47, + "column": 8, + "$class": "concerto.metamodel@1.0.0.Position" }, - "validator": { - "$class": "concerto.metamodel@1.0.0.StringRegexValidator", - "pattern": "[a-zA-Z]*", - "flags": "u" + "end": { + "offset": 1062, + "line": 47, + "column": 11, + "$class": "concerto.metamodel@1.0.0.Position" } + } }, { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "lastName", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 371, - "line": 17, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 391, - "line": 18, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "address", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Address", - "namespace": "test.person" + "$class": "concerto.metamodel@1.0.0.DecoratorNumber", + "value": 1, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1063, + "line": 47, + "column": 12, + "$class": "concerto.metamodel@1.0.0.Position" }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 391, - "line": 18, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 411, - "line": 19, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } + "end": { + "offset": 1064, + "line": 47, + "column": 13, + "$class": "concerto.metamodel@1.0.0.Position" } + } }, { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "address2", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Address", - "namespace": "test.person" - }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 411, - "line": 19, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 452, - "line": 20, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": "USAddress" - }, - { - "$class": "concerto.metamodel@1.0.0.RelationshipProperty", - "name": "address3", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Address", - "namespace": "test.person" + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "y", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1065, + "line": 47, + "column": 14, + "$class": "concerto.metamodel@1.0.0.Position" }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 452, - "line": 20, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 475, - "line": 21, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } + "end": { + "offset": 1068, + "line": 47, + "column": 17, + "$class": "concerto.metamodel@1.0.0.Position" } + } }, { - "$class": "concerto.metamodel@1.0.0.RelationshipProperty", - "name": "address4", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Address", - "namespace": "test.person" + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "foo", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1069, + "line": 47, + "column": 18, + "$class": "concerto.metamodel@1.0.0.Position" }, - "isArray": true, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 475, - "line": 21, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 500, - "line": 22, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } + "end": { + "offset": 1074, + "line": 47, + "column": 23, + "$class": "concerto.metamodel@1.0.0.Position" } + } }, { - "$class": "concerto.metamodel@1.0.0.RelationshipProperty", - "name": "address5", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Address", - "namespace": "test.person" + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "z", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1075, + "line": 47, + "column": 24, + "$class": "concerto.metamodel@1.0.0.Position" }, - "isArray": false, - "isOptional": true, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 500, - "line": 22, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 532, - "line": 23, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } + "end": { + "offset": 1078, + "line": 47, + "column": 27, + "$class": "concerto.metamodel@1.0.0.Position" } + } }, { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "gender", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Gender", - "namespace": "test.person" + "$class": "concerto.metamodel@1.0.0.DecoratorBoolean", + "value": true, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1079, + "line": 47, + "column": 28, + "$class": "concerto.metamodel@1.0.0.Position" }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 532, - "line": 23, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 550, - "line": 24, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DateTimeProperty", - "name": "dob", - "isArray": false, - "isOptional": true, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 550, - "line": 24, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 574, - "line": 25, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - } + "end": { + "offset": 1083, + "line": 47, + "column": 32, + "$class": "concerto.metamodel@1.0.0.Position" } + } } - ], - "location": { + ] + }, + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "Zip2", + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 289, - "line": 15, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 1087, + "line": 48, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 575, - "line": 25, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 1094, + "line": 48, + "column": 10, + "$class": "concerto.metamodel@1.0.0.Position" } + }, + "arguments": [] }, - "superType": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Individual", - "namespace": "test.person" - } - }, - { - "$class": "concerto.metamodel@1.0.0.ParticipantDeclaration", - "name": "Employee", - "isAbstract": false, - "properties": [ - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "company", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 617, - "line": 28, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 636, - "line": 29, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.BooleanProperty", - "name": "onLeave", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 636, - "line": 29, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 654, - "line": 30, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - } - ], - "location": { + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "Zip3", + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 577, - "line": 27, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 1097, + "line": 49, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 655, - "line": 30, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 1102, + "line": 49, + "column": 8, + "$class": "concerto.metamodel@1.0.0.Position" } + } + } + ], + "validator": { + "$class": "concerto.metamodel@1.0.0.IntegerDomainValidator", + "lower": -365, + "upper": 365 + } + }, + { + "$class": "concerto.metamodel@1.0.0.IntegerProperty", + "name": "zip41", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1139, + "line": 51, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" }, - "superType": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Person", - "namespace": "test.person" + "end": { + "offset": 1170, + "line": 52, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.IntegerDomainValidator", + "upper": 365 + } }, { - "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", - "name": "Address", - "isAbstract": false, - "properties": [ - { - "$class": "concerto.metamodel@1.0.0.IntegerProperty", - "name": "zip", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 688, - "line": 33, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 718, - "line": 34, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": 10001 - }, - { - "$class": "concerto.metamodel@1.0.0.LongProperty", - "name": "zip2", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 718, - "line": 34, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 746, - "line": 35, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": 10001 - }, - { - "$class": "concerto.metamodel@1.0.0.DoubleProperty", - "name": "zip3", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 746, - "line": 35, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 778, - "line": 36, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": 10001 - }, - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "city", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 778, - "line": 36, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 808, - "line": 37, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": "NYC" - }, - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "country", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 808, - "line": 37, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 841, - "line": 38, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": "USA" - }, - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "street", - "isArray": true, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 841, - "line": 38, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 861, - "line": 39, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.BooleanProperty", - "name": "isResidential", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 861, - "line": 39, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 900, - "line": 40, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": true - }, - { - "$class": "concerto.metamodel@1.0.0.BooleanProperty", - "name": "isPrivate", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 900, - "line": 40, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 934, - "line": 41, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": false - } - ], - "location": { + "$class": "concerto.metamodel@1.0.0.IntegerProperty", + "name": "zip42", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1170, + "line": 52, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1202, + "line": 53, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.IntegerDomainValidator", + "lower": -365 + } + }, + { + "$class": "concerto.metamodel@1.0.0.LongProperty", + "name": "zip5", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1202, + "line": 53, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1233, + "line": 54, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.LongDomainValidator", + "lower": -365, + "upper": 365 + } + }, + { + "$class": "concerto.metamodel@1.0.0.LongProperty", + "name": "zip51", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1233, + "line": 54, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1261, + "line": 55, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.LongDomainValidator", + "upper": 365 + } + }, + { + "$class": "concerto.metamodel@1.0.0.LongProperty", + "name": "zip52", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1261, + "line": 55, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1290, + "line": 56, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.LongDomainValidator", + "lower": -365 + } + }, + { + "$class": "concerto.metamodel@1.0.0.DoubleProperty", + "name": "zip6", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1290, + "line": 56, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1325, + "line": 57, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.DoubleDomainValidator", + "lower": -3.14, + "upper": 3.14 + } + }, + { + "$class": "concerto.metamodel@1.0.0.DoubleProperty", + "name": "zip61", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1325, + "line": 57, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1357, + "line": 58, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.DoubleDomainValidator", + "lower": -3.14 + } + }, + { + "$class": "concerto.metamodel@1.0.0.DoubleProperty", + "name": "zip62", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1357, + "line": 58, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1386, + "line": 59, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.DoubleDomainValidator", + "upper": 3.14 + } + } + ], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 937, + "line": 43, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1387, + "line": 59, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "superType": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Address", + "namespace": "test.person", + "resolvedName": "Address" + }, + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "Address", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 937, + "line": 43, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 993, + "line": 43, + "column": 57, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "x", + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 657, - "line": 32, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 946, + "line": 43, + "column": 10, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 935, - "line": 41, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 949, + "line": 43, + "column": 13, + "$class": "concerto.metamodel@1.0.0.Position" } + } }, - "identified": { - "$class": "concerto.metamodel@1.0.0.Identified" - } - }, - { - "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", - "name": "USAddress", - "isAbstract": false, - "properties": [ - { - "$class": "concerto.metamodel@1.0.0.IntegerProperty", - "name": "zip4", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1054, - "line": 47, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1139, - "line": 51, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "decorators": [ - { - "$class": "concerto.metamodel@1.0.0.Decorator", - "name": "Zip", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1054, - "line": 47, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1084, - "line": 47, - "column": 33, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "arguments": [ - { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "x", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1059, - "line": 47, - "column": 8, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1062, - "line": 47, - "column": 11, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorNumber", - "value": 1, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1063, - "line": 47, - "column": 12, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1064, - "line": 47, - "column": 13, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "y", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1065, - "line": 47, - "column": 14, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1068, - "line": 47, - "column": 17, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "foo", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1069, - "line": 47, - "column": 18, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1074, - "line": 47, - "column": 23, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "z", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1075, - "line": 47, - "column": 24, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1078, - "line": 47, - "column": 27, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorBoolean", - "value": true, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1079, - "line": 47, - "column": 28, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1083, - "line": 47, - "column": 32, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - } - ] - }, - { - "$class": "concerto.metamodel@1.0.0.Decorator", - "name": "Zip2", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1087, - "line": 48, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1094, - "line": 48, - "column": 10, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "arguments": [] - }, - { - "$class": "concerto.metamodel@1.0.0.Decorator", - "name": "Zip3", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1097, - "line": 49, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1102, - "line": 49, - "column": 8, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - } - ], - "validator": { - "$class": "concerto.metamodel@1.0.0.IntegerDomainValidator", - "lower": -365, - "upper": 365 - } - }, - { - "$class": "concerto.metamodel@1.0.0.IntegerProperty", - "name": "zip41", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1139, - "line": 51, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1170, - "line": 52, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.IntegerDomainValidator", - "upper": 365 - } - }, - { - "$class": "concerto.metamodel@1.0.0.IntegerProperty", - "name": "zip42", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1170, - "line": 52, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1202, - "line": 53, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.IntegerDomainValidator", - "lower": -365 - } - }, - { - "$class": "concerto.metamodel@1.0.0.LongProperty", - "name": "zip5", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1202, - "line": 53, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1233, - "line": 54, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.LongDomainValidator", - "lower": -365, - "upper": 365 - } - }, - { - "$class": "concerto.metamodel@1.0.0.LongProperty", - "name": "zip51", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1233, - "line": 54, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1261, - "line": 55, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.LongDomainValidator", - "upper": 365 - } - }, - { - "$class": "concerto.metamodel@1.0.0.LongProperty", - "name": "zip52", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1261, - "line": 55, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1290, - "line": 56, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.LongDomainValidator", - "lower": -365 - } - }, - { - "$class": "concerto.metamodel@1.0.0.DoubleProperty", - "name": "zip6", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1290, - "line": 56, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1325, - "line": 57, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.DoubleDomainValidator", - "lower": -3.14, - "upper": 3.14 - } - }, - { - "$class": "concerto.metamodel@1.0.0.DoubleProperty", - "name": "zip61", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1325, - "line": 57, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1357, - "line": 58, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.DoubleDomainValidator", - "lower": -3.14 - } + { + "$class": "concerto.metamodel@1.0.0.DecoratorNumber", + "value": 1, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 950, + "line": 43, + "column": 14, + "$class": "concerto.metamodel@1.0.0.Position" }, - { - "$class": "concerto.metamodel@1.0.0.DoubleProperty", - "name": "zip62", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1357, - "line": 58, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1386, - "line": 59, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.DoubleDomainValidator", - "upper": 3.14 - } + "end": { + "offset": 951, + "line": 43, + "column": 15, + "$class": "concerto.metamodel@1.0.0.Position" } - ], - "location": { + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "y", + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 937, - "line": 43, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 952, + "line": 43, + "column": 16, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 1387, - "line": 59, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 955, + "line": 43, + "column": 19, + "$class": "concerto.metamodel@1.0.0.Position" } + } }, - "superType": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Address", - "namespace": "test.person" - }, - "decorators": [ - { - "$class": "concerto.metamodel@1.0.0.Decorator", - "name": "Address", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 937, - "line": 43, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 993, - "line": 43, - "column": 57, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "arguments": [ - { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "x", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 946, - "line": 43, - "column": 10, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 949, - "line": 43, - "column": 13, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorNumber", - "value": 1, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 950, - "line": 43, - "column": 14, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 951, - "line": 43, - "column": 15, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "y", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 952, - "line": 43, - "column": 16, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 955, - "line": 43, - "column": 19, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "foo", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 956, - "line": 43, - "column": 20, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 961, - "line": 43, - "column": 25, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "z", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 962, - "line": 43, - "column": 26, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 965, - "line": 43, - "column": 29, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorBoolean", - "value": true, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 966, - "line": 43, - "column": 30, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 970, - "line": 43, - "column": 34, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Gender", - "namespace": "test.person" - }, - "isArray": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 971, - "line": 43, - "column": 35, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 977, - "line": 43, - "column": 41, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "TemporalUnit", - "namespace": "org.accordproject.time" - }, - "isArray": true, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 978, - "line": 43, - "column": 42, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 992, - "line": 43, - "column": 56, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - } - ] - }, - { - "$class": "concerto.metamodel@1.0.0.Decorator", - "name": "Address2", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 994, - "line": 44, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1005, - "line": 44, - "column": 12, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "arguments": [] + { + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "foo", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 956, + "line": 43, + "column": 20, + "$class": "concerto.metamodel@1.0.0.Position" }, - { - "$class": "concerto.metamodel@1.0.0.Decorator", - "name": "Address3", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1006, - "line": 45, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1015, - "line": 45, - "column": 10, - "$class": "concerto.metamodel@1.0.0.Position" - } - } + "end": { + "offset": 961, + "line": 43, + "column": 25, + "$class": "concerto.metamodel@1.0.0.Position" } - ] - }, - { - "$class": "concerto.metamodel@1.0.0.AssetDeclaration", - "name": "A", - "isAbstract": false, - "properties": [], - "location": { + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "z", + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 1389, - "line": 61, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 962, + "line": 43, + "column": 26, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 1400, - "line": 62, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 965, + "line": 43, + "column": 29, + "$class": "concerto.metamodel@1.0.0.Position" } - } - }, - { - "$class": "concerto.metamodel@1.0.0.EventDeclaration", - "name": "E", - "isAbstract": false, - "properties": [], - "location": { + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorBoolean", + "value": true, + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 1402, - "line": 64, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 966, + "line": 43, + "column": 30, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 1413, - "line": 65, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 970, + "line": 43, + "column": 34, + "$class": "concerto.metamodel@1.0.0.Position" } - } - }, - { - "$class": "concerto.metamodel@1.0.0.TransactionDeclaration", - "name": "T", - "isAbstract": false, - "properties": [ - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "id", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1450, - "line": 68, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1464, - "line": 69, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "tu", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "TemporalUnit", - "namespace": "org.accordproject.time" - }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1464, - "line": 69, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1484, - "line": 70, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "month", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Month", - "namespace": "org.accordproject.time" - }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1484, - "line": 70, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1500, - "line": 71, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Gender", + "namespace": "test.person", + "resolvedName": "Gender" + }, + "isArray": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 971, + "line": 43, + "column": 35, + "$class": "concerto.metamodel@1.0.0.Position" }, - { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "p", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Participant", - "namespace": "concerto@1.0.0" - }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1500, - "line": 71, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1516, - "line": 72, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - } - } + "end": { + "offset": 977, + "line": 43, + "column": 41, + "$class": "concerto.metamodel@1.0.0.Position" } - ], - "location": { + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "TemporalUnit", + "namespace": "org.accordproject.time", + "resolvedName": "TemporalUnit" + }, + "isArray": true, + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 1415, - "line": 67, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 978, + "line": 43, + "column": 42, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 1517, - "line": 72, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 992, + "line": 43, + "column": 56, + "$class": "concerto.metamodel@1.0.0.Position" } + } + } + ] + }, + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "Address2", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 994, + "line": 44, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" }, - "identified": { - "$class": "concerto.metamodel@1.0.0.IdentifiedBy", - "name": "id" + "end": { + "offset": 1005, + "line": 44, + "column": 12, + "$class": "concerto.metamodel@1.0.0.Position" } + }, + "arguments": [] + }, + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "Address3", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1006, + "line": 45, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1015, + "line": 45, + "column": 10, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ] + }, + { + "$class": "concerto.metamodel@1.0.0.AssetDeclaration", + "name": "A", + "isAbstract": false, + "properties": [], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1389, + "line": 61, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1400, + "line": 62, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.EventDeclaration", + "name": "E", + "isAbstract": false, + "properties": [], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1402, + "line": 64, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1413, + "line": 65, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.TransactionDeclaration", + "name": "T", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "id", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1450, + "line": 68, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1464, + "line": 69, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "tu", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "TemporalUnit", + "namespace": "org.accordproject.time", + "resolvedName": "TemporalUnit" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1464, + "line": 69, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1484, + "line": 70, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "month", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Month", + "namespace": "org.accordproject.time", + "resolvedName": "Month" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1484, + "line": 70, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1500, + "line": 71, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "p", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Participant", + "namespace": "concerto@1.0.0", + "resolvedName": "Participant" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1500, + "line": 71, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1516, + "line": 72, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1415, + "line": 67, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1517, + "line": 72, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" } - ] -} + }, + "identified": { + "$class": "concerto.metamodel@1.0.0.IdentifiedBy", + "name": "id" + } + } + ] +} \ No newline at end of file diff --git a/packages/concerto-core/test/introspect/classdeclaration.js b/packages/concerto-core/test/introspect/classdeclaration.js index 1faafe0520..72139739d6 100644 --- a/packages/concerto-core/test/introspect/classdeclaration.js +++ b/packages/concerto-core/test/introspect/classdeclaration.js @@ -1,3 +1,4 @@ +/* eslint-disable no-unused-vars */ /* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,6 +29,9 @@ const Util = require('../composer/composermodelutility'); const should = require('chai').should(); const sinon = require('sinon'); +const fs = require('fs'); +const path = require('path'); +const ModelFile = require('../../lib/introspect/modelfile'); describe('ClassDeclaration', () => { @@ -485,3 +489,103 @@ describe('ClassDeclaration', () => { }); }); }); + + +describe('ClassDeclaration - Test for declarations using Import Aliasing', () => { + + let modelManager; + let resolvedModelManager; + + beforeEach(() => { + modelManager = new ModelManager({ strict: true, importAliasing: true, enableMapType: true}); + + const childModelCTO = fs.readFileSync(path.resolve(__dirname, '../data/aliasing/child.cto'), 'utf8'); + const parentModelCTO = fs.readFileSync(path.resolve(__dirname, '../data/aliasing/parent.cto'), 'utf8'); + + modelManager.addCTOModel(childModelCTO, 'child@1.0.0.cto'); + modelManager.addCTOModel(parentModelCTO, 'parent@1.0.0.cto'); + const resolvedMetamodelChild = modelManager.resolveMetaModel(modelManager.getAst().models[0]); + const resolvedMetamodelParent = modelManager.resolveMetaModel(modelManager.getAst().models[1]); + resolvedModelManager = new ModelManager({ strict: true, importAliasing: true, enableMapType: true}); + const resolvedModelFileChild = new ModelFile(resolvedModelManager, resolvedMetamodelChild, 'child@1.0.0.cto'); + const resolvedModelFileParent = new ModelFile(resolvedModelManager, resolvedMetamodelParent, 'parent@1.0.0.cto'); + resolvedModelManager.addModelFiles([resolvedModelFileChild, resolvedModelFileParent], ['child@1.0.0.cto', 'parent@1.0.0.cto']); + }); + + describe('#getName', () => { + + it('should return the local aliased name of the Type', () => { + const classDecl = resolvedModelManager.getType('parent@1.0.0.Child'); + classDecl.getName().should.equal('Child'); + }); + + }); + + describe('#getFullyQualifiedName', () => { + + it('should return the fully qualified name if function is in a namespace', () => { + const classDecl = resolvedModelManager.getType('parent@1.0.0.Child'); + classDecl.getFullyQualifiedName().should.equal('parent@1.0.0.Child'); + }); + + }); + + describe('#getSuperType', function() { + + it('should return superclass when one exists in a different model file and is aliased my importing', function() { + const subclass = resolvedModelManager.getType('parent@1.0.0.Child'); + const superclassName = subclass.getSuperType(); + superclassName.should.equal('child@1.0.0.Child'); + }); + }); + + describe('#getNested', function() { + + it('get nested happy path', function() { + let aliasedClassDeclration = resolvedModelManager.getType('parent@1.0.0.Student'); + should.exist(aliasedClassDeclration.getNestedProperty('myChild.kid.age')); + }); + }); + + describe('#getAssignableClassDeclarations', function() { + + it('should return all subclass definitions', function() { + const baseclass = resolvedModelManager.getType('child@1.0.0.Child'); + should.exist(baseclass); + const subclasses = baseclass.getAssignableClassDeclarations(); + const subclassNames = subclasses.map(classDef => classDef.getName()); + subclassNames.should.have.same.members(['Child', 'Child', 'Student']); + }); + }); + + describe('#_resolveSuperType', () => { + + it('should return the super class declaration for a super class in another file and is aliased while importing', () => { + let classDecl = resolvedModelManager.getType('parent@1.0.0.Child'); + let superClassDecl = classDecl._resolveSuperType(); + superClassDecl.getFullyQualifiedName().should.equal('child@1.0.0.Child'); + }); + + }); + + describe('#getAllSuperTypeDeclarations', function() { + + it('should return all superclass definitions with one of the classDeclration being aliased while importing', function() { + const testClass = resolvedModelManager.getType('parent@1.0.0.Child'); + should.exist(testClass); + const superclasses = testClass.getAllSuperTypeDeclarations(); + const superclassNames = superclasses.map(classDef => classDef.getName()); + superclassNames.should.have.same.members(['Child', 'Concept']); + }); + }); + + describe('#getDirectSubclasses', function() { + it('should return an array with Child (in parent@1.0.0) given it extends Child (in parent@1.0.0)', function() { + const testClass = resolvedModelManager.getType('child@1.0.0.Child'); + should.exist(testClass); + const subclasses = testClass.getDirectSubclasses(); + const subclassNames = subclasses.map(classDef => classDef.getName()); + subclassNames.should.have.same.members(['Child']); + }); + }); +}); diff --git a/packages/concerto-core/test/introspect/decorator.js b/packages/concerto-core/test/introspect/decorator.js index 1828cbe726..4142f755d2 100644 --- a/packages/concerto-core/test/introspect/decorator.js +++ b/packages/concerto-core/test/introspect/decorator.js @@ -21,6 +21,12 @@ const Decorator = require('../../lib/introspect/decorator'); require('chai').should(); const sinon = require('sinon'); +const ModelManager = require('../../lib/modelmanager'); +const ModelFile = require('../../lib/introspect/modelfile'); + +const fs = require('fs'); +const path = require('path'); +const { expect } = require('chai'); describe('Decorator', () => { @@ -76,3 +82,46 @@ describe('Decorator', () => { }); }); + +describe('Decorator - Test for declarations using Import Aliasing', () => { + + let modelManager; + let resolvedModelManager; + + beforeEach(() => { + modelManager = new ModelManager({ strict: true, importAliasing: true, enableMapType: true}); + + const childModelCTO = fs.readFileSync(path.resolve(__dirname, '../data/aliasing/child.cto'), 'utf8'); + const parentModelCTO = fs.readFileSync(path.resolve(__dirname, '../data/aliasing/parent.cto'), 'utf8'); + + modelManager.addCTOModel(childModelCTO, 'child@1.0.0.cto'); + modelManager.addCTOModel(parentModelCTO, 'parent@1.0.0.cto'); + const resolvedMetamodelChild = modelManager.resolveMetaModel(modelManager.getAst().models[0]); + const resolvedMetamodelParent = modelManager.resolveMetaModel(modelManager.getAst().models[1]); + resolvedModelManager = new ModelManager({ strict: true, importAliasing: true, enableMapType: true}); + const resolvedModelFileChild = new ModelFile(resolvedModelManager, resolvedMetamodelChild, 'child@1.0.0.cto'); + const resolvedModelFileParent = new ModelFile(resolvedModelManager, resolvedMetamodelParent, 'parent@1.0.0.cto'); + resolvedModelManager.addModelFiles([resolvedModelFileChild, resolvedModelFileParent], ['child@1.0.0.cto', 'parent@1.0.0.cto']); + }); + + // describe.only('#getArguments', () => { + + // it('should be able get validate a decorator whose argument is an imported type which is aliased', () => { + // const classDeclaration = resolvedModelManager.getType('parent@1.0.0.Child'); + // const decorator = classDeclaration.getDecorators()[0]; + // console.log(decorator.getArguments()[0]); + // this returns { type: 'Identifier', name: 'Kid', array: false }, how do we get back the base/super type? + // }); + + // }); + + describe('#validate', () => { + + it('should be able get validate a decorator whose argument is an imported type which is aliased', () => { + const classDeclaration = resolvedModelManager.getType('parent@1.0.0.Child'); + const decorator = classDeclaration.getDecorators()[0]; + expect(decorator.validate.bind(decorator)).to.not.throw(); + }); + + }); +}); diff --git a/packages/concerto-core/test/introspect/property.js b/packages/concerto-core/test/introspect/property.js index f5b5daebe3..bd5441c476 100644 --- a/packages/concerto-core/test/introspect/property.js +++ b/packages/concerto-core/test/introspect/property.js @@ -22,6 +22,10 @@ const Property = require('../../lib/introspect/property'); const should = require('chai').should(); const sinon = require('sinon'); +const ModelManager = require('../../lib/modelmanager'); + +const fs = require('fs'); +const path = require('path'); describe('Property', () => { @@ -112,3 +116,56 @@ describe('Property', () => { }); }); + +describe('Property - Test for declarations using Import Aliasing', () => { + + let modelManager; + let resolvedModelManager; + + beforeEach(() => { + modelManager = new ModelManager({ strict: true, importAliasing: true, enableMapType: true}); + + const childModelCTO = fs.readFileSync(path.resolve(__dirname, '../data/aliasing/child.cto'), 'utf8'); + const parentModelCTO = fs.readFileSync(path.resolve(__dirname, '../data/aliasing/parent.cto'), 'utf8'); + + modelManager.addCTOModel(childModelCTO, 'child@1.0.0.cto'); + modelManager.addCTOModel(parentModelCTO, 'parent@1.0.0.cto'); + const resolvedMetamodelChild = modelManager.resolveMetaModel(modelManager.getAst().models[0]); + const resolvedMetamodelParent = modelManager.resolveMetaModel(modelManager.getAst().models[1]); + resolvedModelManager = new ModelManager({ strict: true, importAliasing: true, enableMapType: true}); + const resolvedModelFileChild = new ModelFile(resolvedModelManager, resolvedMetamodelChild, 'child@1.0.0.cto'); + const resolvedModelFileParent = new ModelFile(resolvedModelManager, resolvedMetamodelParent, 'parent@1.0.0.cto'); + resolvedModelManager.addModelFiles([resolvedModelFileChild, resolvedModelFileParent], ['child@1.0.0.cto', 'parent@1.0.0.cto']); + }); + + describe('#getType', () => { + + it('should return the local aliased name of the Type', () => { + const classDeclaration = resolvedModelManager.getType('parent@1.0.0.Child'); + const property = classDeclaration.getProperty('kid'); + property.getType().should.equal('Kid'); + }); + + }); + + describe('#getFullyQualifiedTypeName', () => { + + it('should return the fully qualified type of name of the base classDeclaration that was imported aliased', () => { + const classDeclaration = resolvedModelManager.getType('parent@1.0.0.Child'); + const property = classDeclaration.getProperty('kid'); + property.getFullyQualifiedTypeName().should.equal('child@1.0.0.Child'); + }); + + }); + + describe('#getFullyQualifiedName', () => { + + it('should return the fully qualified name of the property', () => { + const classDeclaration = resolvedModelManager.getType('parent@1.0.0.Child'); + const property = classDeclaration.getProperty('kid'); + property.getFullyQualifiedName().should.equal('parent@1.0.0.Child.kid'); + }); + + }); + +}); diff --git a/packages/concerto-core/test/introspect/scalardeclaration.js b/packages/concerto-core/test/introspect/scalardeclaration.js index fb10e602b0..04daae0486 100644 --- a/packages/concerto-core/test/introspect/scalardeclaration.js +++ b/packages/concerto-core/test/introspect/scalardeclaration.js @@ -23,6 +23,10 @@ const Util = require('../composer/composermodelutility'); const should = require('chai').should(); const sinon = require('sinon'); +const ModelFile = require('../../lib/introspect/modelfile'); + +const fs = require('fs'); +const path = require('path'); describe('ScalarDeclaration', () => { @@ -304,3 +308,64 @@ describe('ScalarDeclaration', () => { }); }); }); + +describe('ScalarDeclaration - - Test for declarations using Import Aliasing', () => { + + let modelManager; + let resolvedModelManager; + + beforeEach(() => { + modelManager = new ModelManager({ strict: true, importAliasing: true, enableMapType: true}); + + const childModelCTO = fs.readFileSync(path.resolve(__dirname, '../data/aliasing/child.cto'), 'utf8'); + const parentModelCTO = fs.readFileSync(path.resolve(__dirname, '../data/aliasing/parent.cto'), 'utf8'); + + modelManager.addCTOModel(childModelCTO, 'child@1.0.0.cto'); + modelManager.addCTOModel(parentModelCTO, 'parent@1.0.0.cto'); + const resolvedMetamodelChild = modelManager.resolveMetaModel(modelManager.getAst().models[0]); + const resolvedMetamodelParent = modelManager.resolveMetaModel(modelManager.getAst().models[1]); + resolvedModelManager = new ModelManager({ strict: true, importAliasing: true, enableMapType: true}); + const resolvedModelFileChild = new ModelFile(resolvedModelManager, resolvedMetamodelChild, 'child@1.0.0.cto'); + const resolvedModelFileParent = new ModelFile(resolvedModelManager, resolvedMetamodelParent, 'parent@1.0.0.cto'); + resolvedModelManager.addModelFiles([resolvedModelFileChild, resolvedModelFileParent], ['child@1.0.0.cto', 'parent@1.0.0.cto']); + }); + + // describe.only('#getName', () => { + // it('should return the scalar name', () => { + // // This fails, current imports are not declared within a namespace. Is this a bug? + // // Why are we treating imported declrations as foreign objects? Shouldn't they be treated as part of the namespace and declared? + // // Extend this test to map keys and value as well + // const classDeclaration = resolvedModelManager.getType('parent@1.0.0.Child'); + // const property = classDeclaration.getProperty('str'); + // const type = property.getType(); + // const namespce = property.getNamespace(); + // const scalarDeclarationFQN = `${namespce}.${type}`; + // const scalarDeclaration = resolvedModelManager.getType(scalarDeclarationFQN); + // console.log(scalarDeclaration); + // }); + + // }); + + // describe('#getNamespace', () => { + // const modelFileName = 'test/data/parser/scalardeclaration.ssn.cto'; + + // beforeEach(() => { + // const modelFiles = introspectUtils.loadModelFiles([modelFileName], modelManager); + // modelManager.addModelFiles(modelFiles); + // }); + // it('should return null', () => { + // const testClass = modelManager.getType('com.testing.SSN'); + // should.equal(testClass.getNamespace(), 'com.testing'); + // }); + // }); + + // describe('#getFullyQualifiedName', () => { + // it('should return the fully qualified name if function is in a namespace', () => { + // let clz = new ScalarDeclaration(modelFile, { + // name: 'suchName', + // }); + // clz.getFullyQualifiedName().should.equal('com.hyperledger.testing.suchName'); + // }); + + // }); +}); diff --git a/packages/concerto-cto/package.json b/packages/concerto-cto/package.json index 05b437c86d..2d099cb2a8 100644 --- a/packages/concerto-cto/package.json +++ b/packages/concerto-cto/package.json @@ -52,7 +52,7 @@ "typescript": "5.7.2" }, "dependencies": { - "@accordproject/concerto-metamodel": "3.10.4", + "@accordproject/concerto-metamodel": "../../../concerto-metamodel", "@accordproject/concerto-util": "3.20.1" }, "browserslist": "> 0.25%, not dead", diff --git a/packages/concerto-vocabulary/package.json b/packages/concerto-vocabulary/package.json index ee18c7d63d..64dd13434e 100644 --- a/packages/concerto-vocabulary/package.json +++ b/packages/concerto-vocabulary/package.json @@ -47,7 +47,7 @@ "@types/webgl-ext": "^0.0.37" }, "dependencies": { - "@accordproject/concerto-metamodel": "3.10.4", + "@accordproject/concerto-metamodel": "../../../concerto-metamodel", "yaml": "2.6.1" }, "browserslist": "> 0.25%, not dead", From 462236d5dc9033474873698a387db1b69d38706c Mon Sep 17 00:00:00 2001 From: sanketshevkar Date: Thu, 16 Jan 2025 18:25:25 +0530 Subject: [PATCH 02/12] fix(aliasing): add new tests Signed-off-by: sanketshevkar --- package-lock.json | 38 +- packages/concerto-core/package.json | 2 +- .../test/data/aliasing/child.cto | 4 +- .../test/data/aliasing/parent.cto | 20 +- .../test/data/aliasing/parent.json | 498 +++ .../test/data/model/carResolved.json | 167 +- .../test/data/model/personResolved.json | 2758 ++++++++--------- .../test/introspect/decorator.js | 12 - .../test/introspect/metamodel.js | 40 + .../test/introspect/scalardeclaration.js | 64 - packages/concerto-cto/package.json | 2 +- packages/concerto-cto/test/cto/child.cto | 7 + packages/concerto-cto/test/cto/child.json | 25 + packages/concerto-cto/test/cto/parent.cto | 24 + packages/concerto-cto/test/cto/parent.json | 198 ++ packages/concerto-vocabulary/package.json | 2 +- 16 files changed, 2192 insertions(+), 1669 deletions(-) create mode 100644 packages/concerto-core/test/data/aliasing/parent.json create mode 100644 packages/concerto-cto/test/cto/child.cto create mode 100644 packages/concerto-cto/test/cto/child.json create mode 100644 packages/concerto-cto/test/cto/parent.cto create mode 100644 packages/concerto-cto/test/cto/parent.json diff --git a/package-lock.json b/package-lock.json index 186e686f26..570c85285d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,28 +28,6 @@ "npm": ">=10" } }, - "../concerto-metamodel": { - "name": "@accordproject/concerto-metamodel", - "version": "3.10.4", - "license": "Apache-2.0", - "devDependencies": { - "@types/webgl-ext": "0.0.37", - "chai": "4.3.6", - "chai-things": "0.2.0", - "dayjs": "1.11.13", - "eslint": "8.57.1", - "jsdoc": "^4.0.4", - "license-check-and-add": "2.3.6", - "mocha": "10.8.2", - "nyc": "17.1.0", - "semver": "7.6.3", - "typescript": "5.7.2" - }, - "engines": { - "node": ">=14", - "npm": ">=6" - } - }, "node_modules/@accordproject/concerto-analysis": { "resolved": "packages/concerto-analysis", "link": true @@ -364,8 +342,14 @@ "link": true }, "node_modules/@accordproject/concerto-metamodel": { - "resolved": "../concerto-metamodel", - "link": true + "version": "3.10.5-20250116112652", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.5-20250116112652.tgz", + "integrity": "sha512-WpWx7ILTYPEr79KPV/pyIGgdjkAmtUoqSjwkD4qbZsA9kE/PpvKgs7Z1CowyWF73s1yf+B/nnCFT6M5PUGMNqA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14", + "npm": ">=6" + } }, "node_modules/@accordproject/concerto-types": { "resolved": "packages/concerto-types", @@ -13633,7 +13617,7 @@ "license": "Apache-2.0", "dependencies": { "@accordproject/concerto-cto": "3.20.1", - "@accordproject/concerto-metamodel": "../../../concerto-metamodel", + "@accordproject/concerto-metamodel": "3.10.5-20250116112652", "@accordproject/concerto-util": "3.20.1", "dayjs": "1.11.13", "debug": "4.3.7", @@ -13827,7 +13811,7 @@ "version": "3.20.1", "license": "Apache-2.0", "dependencies": { - "@accordproject/concerto-metamodel": "../../../concerto-metamodel", + "@accordproject/concerto-metamodel": "3.10.5-20250116112652", "@accordproject/concerto-util": "3.20.1" }, "devDependencies": { @@ -14007,7 +13991,7 @@ "version": "3.20.1", "license": "Apache-2.0", "dependencies": { - "@accordproject/concerto-metamodel": "../../../concerto-metamodel", + "@accordproject/concerto-metamodel": "3.10.5-20250116112652", "yaml": "2.6.1" }, "devDependencies": { diff --git a/packages/concerto-core/package.json b/packages/concerto-core/package.json index eaec744985..9728ad9f9f 100644 --- a/packages/concerto-core/package.json +++ b/packages/concerto-core/package.json @@ -65,7 +65,7 @@ }, "dependencies": { "@accordproject/concerto-cto": "3.20.1", - "@accordproject/concerto-metamodel": "../../../concerto-metamodel", + "@accordproject/concerto-metamodel": "3.10.5-20250116112652", "@accordproject/concerto-util": "3.20.1", "dayjs": "1.11.13", "debug": "4.3.7", diff --git a/packages/concerto-core/test/data/aliasing/child.cto b/packages/concerto-core/test/data/aliasing/child.cto index 0e0995d172..62b187f9f8 100644 --- a/packages/concerto-core/test/data/aliasing/child.cto +++ b/packages/concerto-core/test/data/aliasing/child.cto @@ -1,5 +1,7 @@ namespace child@1.0.0 + concept Child { - o Integer age + o Integer age } + scalar MyString extends String diff --git a/packages/concerto-core/test/data/aliasing/parent.cto b/packages/concerto-core/test/data/aliasing/parent.cto index 71d8dde62d..a0a1879aae 100644 --- a/packages/concerto-core/test/data/aliasing/parent.cto +++ b/packages/concerto-core/test/data/aliasing/parent.cto @@ -1,24 +1,24 @@ @test(Kid) namespace parent@1.0.0 -import child@1.0.0.{MyString as Str, Child as Kid} +import child@1.0.0.{MyString as Str,Child as Kid} @test(Kid) concept Child extends Kid { - @test(Kid) - o Kid kid - o Str str + @test(Kid) + o Kid kid + o Str str } concept Student extends Child { - o Str schoolName - o Str name - o Child myChild + o Str schoolName + o Str name + o Child myChild } @test(Kid) map KidIndex { - o Str - @test(Kid) - o Kid + o Str + @test(Kid) + o Kid } diff --git a/packages/concerto-core/test/data/aliasing/parent.json b/packages/concerto-core/test/data/aliasing/parent.json new file mode 100644 index 0000000000..bd123df851 --- /dev/null +++ b/packages/concerto-core/test/data/aliasing/parent.json @@ -0,0 +1,498 @@ +{ + "$class": "concerto.metamodel@1.0.0.Model", + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "test", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 0, + "line": 1, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 10, + "line": 1, + "column": 11, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "isArray": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 6, + "line": 1, + "column": 7, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 9, + "line": 1, + "column": 10, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ] + } + ], + "namespace": "parent@1.0.0", + "imports": [ + { + "$class": "concerto.metamodel@1.0.0.ImportTypes", + "namespace": "child@1.0.0", + "types": [ + "MyString", + "Child" + ], + "aliasedTypes": [ + { + "$class": "concerto.metamodel@1.0.0.AliasedType", + "name": "MyString", + "aliasedName": "Str" + }, + { + "$class": "concerto.metamodel@1.0.0.AliasedType", + "name": "Child", + "aliasedName": "Kid" + } + ] + } + ], + "declarations": [ + { + "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", + "name": "Child", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "kid", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 127, + "line": 8, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 152, + "line": 10, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "test", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 127, + "line": 8, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 137, + "line": 8, + "column": 13, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "isArray": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 133, + "line": 8, + "column": 9, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 136, + "line": 8, + "column": 12, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ] + } + ] + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "str", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Str" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 152, + "line": 10, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 162, + "line": 11, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 86, + "line": 6, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 163, + "line": 11, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "superType": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "test", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 86, + "line": 6, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 96, + "line": 6, + "column": 11, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "isArray": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 92, + "line": 6, + "column": 7, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 95, + "line": 6, + "column": 10, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ] + } + ] + }, + { + "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", + "name": "Student", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "schoolName", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Str" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 199, + "line": 14, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 218, + "line": 15, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "name", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Str" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 218, + "line": 15, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 231, + "line": 16, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "myChild", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Child" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 231, + "line": 16, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 247, + "line": 17, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 165, + "line": 13, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 248, + "line": 17, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "superType": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Child" + } + }, + { + "$class": "concerto.metamodel@1.0.0.MapDeclaration", + "name": "KidIndex", + "key": { + "$class": "concerto.metamodel@1.0.0.ObjectMapKeyType", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Str" + }, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 278, + "line": 21, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 286, + "line": 22, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + "value": { + "$class": "concerto.metamodel@1.0.0.ObjectMapValueType", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 286, + "line": 22, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 305, + "line": 24, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "test", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 286, + "line": 22, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 296, + "line": 22, + "column": 13, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "isArray": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 292, + "line": 22, + "column": 9, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 295, + "line": 22, + "column": 12, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ] + } + ] + }, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 250, + "line": 19, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 306, + "line": 24, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "test", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 250, + "line": 19, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 260, + "line": 19, + "column": 11, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "isArray": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 256, + "line": 19, + "column": 7, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 259, + "line": 19, + "column": 10, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/packages/concerto-core/test/data/model/carResolved.json b/packages/concerto-core/test/data/model/carResolved.json index 64e91aadf7..667973508c 100644 --- a/packages/concerto-core/test/data/model/carResolved.json +++ b/packages/concerto-core/test/data/model/carResolved.json @@ -1,166 +1 @@ -{ - "$class": "concerto.metamodel@1.0.0.Models", - "models": [ - { - "$class": "concerto.metamodel@1.0.0.Model", - "decorators": [], - "namespace": "org.vehicle", - "imports": [], - "declarations": [ - { - "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", - "name": "Manufactured", - "isAbstract": true, - "properties": [], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 23, - "line": 3, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 56, - "line": 4, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", - "name": "Vehicle", - "isAbstract": true, - "properties": [ - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "name", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 108, - "line": 7, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 124, - "line": 8, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DoubleProperty", - "name": "range", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 124, - "line": 8, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 139, - "line": 9, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - } - ], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 58, - "line": 6, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 140, - "line": 9, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "superType": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Manufactured", - "namespace": "org.vehicle", - "resolvedName": "Manufactured" - } - } - ] - }, - { - "$class": "concerto.metamodel@1.0.0.Model", - "decorators": [], - "namespace": "org.car", - "imports": [ - { - "$class": "concerto.metamodel@1.0.0.ImportAll", - "namespace": "org.vehicle" - } - ], - "declarations": [ - { - "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", - "name": "Car", - "isAbstract": false, - "properties": [ - { - "$class": "concerto.metamodel@1.0.0.DoubleProperty", - "name": "mileage", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 73, - "line": 6, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 90, - "line": 7, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - } - ], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 41, - "line": 5, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 91, - "line": 7, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "superType": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Vehicle", - "namespace": "org.vehicle", - "resolvedName": "Vehicle" - } - } - ] - } - ] -} \ No newline at end of file +{"$class":"concerto.metamodel@1.0.0.Models","models":[{"$class":"concerto.metamodel@1.0.0.Model","decorators":[],"namespace":"org.vehicle","imports":[],"declarations":[{"$class":"concerto.metamodel@1.0.0.ConceptDeclaration","name":"Manufactured","isAbstract":true,"properties":[],"location":{"$class":"concerto.metamodel@1.0.0.Range","start":{"offset":23,"line":3,"column":1,"$class":"concerto.metamodel@1.0.0.Position"},"end":{"offset":56,"line":4,"column":2,"$class":"concerto.metamodel@1.0.0.Position"}}},{"$class":"concerto.metamodel@1.0.0.ConceptDeclaration","name":"Vehicle","isAbstract":true,"properties":[{"$class":"concerto.metamodel@1.0.0.StringProperty","name":"name","isArray":false,"isOptional":false,"location":{"$class":"concerto.metamodel@1.0.0.Range","start":{"offset":108,"line":7,"column":3,"$class":"concerto.metamodel@1.0.0.Position"},"end":{"offset":124,"line":8,"column":3,"$class":"concerto.metamodel@1.0.0.Position"}}},{"$class":"concerto.metamodel@1.0.0.DoubleProperty","name":"range","isArray":false,"isOptional":false,"location":{"$class":"concerto.metamodel@1.0.0.Range","start":{"offset":124,"line":8,"column":3,"$class":"concerto.metamodel@1.0.0.Position"},"end":{"offset":139,"line":9,"column":1,"$class":"concerto.metamodel@1.0.0.Position"}}}],"location":{"$class":"concerto.metamodel@1.0.0.Range","start":{"offset":58,"line":6,"column":1,"$class":"concerto.metamodel@1.0.0.Position"},"end":{"offset":140,"line":9,"column":2,"$class":"concerto.metamodel@1.0.0.Position"}},"superType":{"$class":"concerto.metamodel@1.0.0.TypeIdentifier","name":"Manufactured","namespace":"org.vehicle"}}]},{"$class":"concerto.metamodel@1.0.0.Model","decorators":[],"namespace":"org.car","imports":[{"$class":"concerto.metamodel@1.0.0.ImportAll","namespace":"org.vehicle"}],"declarations":[{"$class":"concerto.metamodel@1.0.0.ConceptDeclaration","name":"Car","isAbstract":false,"properties":[{"$class":"concerto.metamodel@1.0.0.DoubleProperty","name":"mileage","isArray":false,"isOptional":false,"location":{"$class":"concerto.metamodel@1.0.0.Range","start":{"offset":73,"line":6,"column":3,"$class":"concerto.metamodel@1.0.0.Position"},"end":{"offset":90,"line":7,"column":1,"$class":"concerto.metamodel@1.0.0.Position"}}}],"location":{"$class":"concerto.metamodel@1.0.0.Range","start":{"offset":41,"line":5,"column":1,"$class":"concerto.metamodel@1.0.0.Position"},"end":{"offset":91,"line":7,"column":2,"$class":"concerto.metamodel@1.0.0.Position"}},"superType":{"$class":"concerto.metamodel@1.0.0.TypeIdentifier","name":"Vehicle","namespace":"org.vehicle"}}]}]} diff --git a/packages/concerto-core/test/data/model/personResolved.json b/packages/concerto-core/test/data/model/personResolved.json index e4782bd514..e41e5406b0 100644 --- a/packages/concerto-core/test/data/model/personResolved.json +++ b/packages/concerto-core/test/data/model/personResolved.json @@ -1,1476 +1,1462 @@ { - "$class": "concerto.metamodel@1.0.0.Model", - "decorators": [], - "namespace": "test.person", - "imports": [ - { - "$class": "concerto.metamodel@1.0.0.ImportAll", - "namespace": "org.accordproject.time", - "uri": "https://models.accordproject.org/time@0.2.0.cto" - }, - { - "$class": "concerto.metamodel@1.0.0.ImportType", - "name": "TemporalUnit", - "namespace": "org.accordproject.time", - "uri": "https://models.accordproject.org/time@0.2.0.cto" - } - ], - "declarations": [ - { - "$class": "concerto.metamodel@1.0.0.EnumDeclaration", - "name": "Gender", - "properties": [ + "$class": "concerto.metamodel@1.0.0.Model", + "decorators": [], + "namespace": "test.person", + "imports": [ { - "$class": "concerto.metamodel@1.0.0.EnumProperty", - "name": "MALE", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 221, - "line": 7, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 230, - "line": 8, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.EnumProperty", - "name": "FEMALE", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 230, - "line": 8, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 241, - "line": 9, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } + "$class": "concerto.metamodel@1.0.0.ImportAll", + "namespace": "org.accordproject.time", + "uri": "https://models.accordproject.org/time@0.2.0.cto" }, { - "$class": "concerto.metamodel@1.0.0.EnumProperty", - "name": "OTHER", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 241, - "line": 9, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 249, - "line": 10, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - } - ], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 205, - "line": 6, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 250, - "line": 10, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.ParticipantDeclaration", - "name": "Individual", - "isAbstract": true, - "properties": [], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 252, - "line": 12, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 287, - "line": 13, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" + "$class": "concerto.metamodel@1.0.0.ImportType", + "name": "TemporalUnit", + "namespace": "org.accordproject.time", + "uri": "https://models.accordproject.org/time@0.2.0.cto" } - } - }, - { - "$class": "concerto.metamodel@1.0.0.ParticipantDeclaration", - "name": "Person", - "isAbstract": false, - "properties": [ - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "firstName", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 331, - "line": 16, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 371, - "line": 17, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.StringRegexValidator", - "pattern": "[a-zA-Z]*", - "flags": "u" - } - }, - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "lastName", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 371, - "line": 17, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 391, - "line": 18, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "address", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Address", - "namespace": "test.person", - "resolvedName": "Address" - }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 391, - "line": 18, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 411, - "line": 19, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "address2", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Address", - "namespace": "test.person", - "resolvedName": "Address" - }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 411, - "line": 19, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 452, - "line": 20, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": "USAddress" - }, - { - "$class": "concerto.metamodel@1.0.0.RelationshipProperty", - "name": "address3", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Address", - "namespace": "test.person", - "resolvedName": "Address" - }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 452, - "line": 20, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 475, - "line": 21, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, + ], + "declarations": [ { - "$class": "concerto.metamodel@1.0.0.RelationshipProperty", - "name": "address4", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Address", - "namespace": "test.person", - "resolvedName": "Address" - }, - "isArray": true, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 475, - "line": 21, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 500, - "line": 22, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.RelationshipProperty", - "name": "address5", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Address", - "namespace": "test.person", - "resolvedName": "Address" - }, - "isArray": false, - "isOptional": true, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 500, - "line": 22, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 532, - "line": 23, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "gender", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "$class": "concerto.metamodel@1.0.0.EnumDeclaration", "name": "Gender", - "namespace": "test.person", - "resolvedName": "Gender" - }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 532, - "line": 23, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 550, - "line": 24, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DateTimeProperty", - "name": "dob", - "isArray": false, - "isOptional": true, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 550, - "line": 24, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 574, - "line": 25, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - } - ], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 289, - "line": 15, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 575, - "line": 25, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "superType": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Individual", - "namespace": "test.person", - "resolvedName": "Individual" - } - }, - { - "$class": "concerto.metamodel@1.0.0.ParticipantDeclaration", - "name": "Employee", - "isAbstract": false, - "properties": [ - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "company", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 617, - "line": 28, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 636, - "line": 29, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.BooleanProperty", - "name": "onLeave", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 636, - "line": 29, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 654, - "line": 30, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - } - ], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 577, - "line": 27, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 655, - "line": 30, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "superType": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Person", - "namespace": "test.person", - "resolvedName": "Person" - } - }, - { - "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", - "name": "Address", - "isAbstract": false, - "properties": [ - { - "$class": "concerto.metamodel@1.0.0.IntegerProperty", - "name": "zip", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 688, - "line": 33, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 718, - "line": 34, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": 10001 - }, - { - "$class": "concerto.metamodel@1.0.0.LongProperty", - "name": "zip2", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 718, - "line": 34, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 746, - "line": 35, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": 10001 - }, - { - "$class": "concerto.metamodel@1.0.0.DoubleProperty", - "name": "zip3", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 746, - "line": 35, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 778, - "line": 36, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": 10001 - }, - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "city", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 778, - "line": 36, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 808, - "line": 37, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": "NYC" - }, - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "country", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 808, - "line": 37, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 841, - "line": 38, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": "USA" - }, - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "street", - "isArray": true, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 841, - "line": 38, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 861, - "line": 39, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.BooleanProperty", - "name": "isResidential", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 861, - "line": 39, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 900, - "line": 40, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "defaultValue": true - }, - { - "$class": "concerto.metamodel@1.0.0.BooleanProperty", - "name": "isPrivate", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 900, - "line": 40, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 934, - "line": 41, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.EnumProperty", + "name": "MALE", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 221, + "line": 7, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 230, + "line": 8, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.EnumProperty", + "name": "FEMALE", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 230, + "line": 8, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 241, + "line": 9, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.EnumProperty", + "name": "OTHER", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 241, + "line": 9, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 249, + "line": 10, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 205, + "line": 6, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 250, + "line": 10, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } } - }, - "defaultValue": false - } - ], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 657, - "line": 32, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" }, - "end": { - "offset": 935, - "line": 41, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "identified": { - "$class": "concerto.metamodel@1.0.0.Identified" - } - }, - { - "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", - "name": "USAddress", - "isAbstract": false, - "properties": [ { - "$class": "concerto.metamodel@1.0.0.IntegerProperty", - "name": "zip4", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1054, - "line": 47, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1139, - "line": 51, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "decorators": [ - { - "$class": "concerto.metamodel@1.0.0.Decorator", - "name": "Zip", - "location": { + "$class": "concerto.metamodel@1.0.0.ParticipantDeclaration", + "name": "Individual", + "isAbstract": true, + "properties": [], + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 1054, - "line": 47, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 252, + "line": 12, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 1084, - "line": 47, - "column": 33, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 287, + "line": 13, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" } - }, - "arguments": [ + } + }, + { + "$class": "concerto.metamodel@1.0.0.ParticipantDeclaration", + "name": "Person", + "isAbstract": false, + "properties": [ { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "x", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1059, - "line": 47, - "column": 8, - "$class": "concerto.metamodel@1.0.0.Position" + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "firstName", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 331, + "line": 16, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 371, + "line": 17, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } }, - "end": { - "offset": 1062, - "line": 47, - "column": 11, - "$class": "concerto.metamodel@1.0.0.Position" + "validator": { + "$class": "concerto.metamodel@1.0.0.StringRegexValidator", + "pattern": "[a-zA-Z]*", + "flags": "u" } - } }, { - "$class": "concerto.metamodel@1.0.0.DecoratorNumber", - "value": 1, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1063, - "line": 47, - "column": 12, - "$class": "concerto.metamodel@1.0.0.Position" + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "lastName", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 371, + "line": 17, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 391, + "line": 18, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "address", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Address", + "namespace": "test.person" }, - "end": { - "offset": 1064, - "line": 47, - "column": 13, - "$class": "concerto.metamodel@1.0.0.Position" + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 391, + "line": 18, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 411, + "line": 19, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } } - } }, { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "y", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1065, - "line": 47, - "column": 14, - "$class": "concerto.metamodel@1.0.0.Position" + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "address2", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Address", + "namespace": "test.person" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 411, + "line": 19, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 452, + "line": 20, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": "USAddress" + }, + { + "$class": "concerto.metamodel@1.0.0.RelationshipProperty", + "name": "address3", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Address", + "namespace": "test.person" }, - "end": { - "offset": 1068, - "line": 47, - "column": 17, - "$class": "concerto.metamodel@1.0.0.Position" + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 452, + "line": 20, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 475, + "line": 21, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } } - } }, { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "foo", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1069, - "line": 47, - "column": 18, - "$class": "concerto.metamodel@1.0.0.Position" + "$class": "concerto.metamodel@1.0.0.RelationshipProperty", + "name": "address4", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Address", + "namespace": "test.person" }, - "end": { - "offset": 1074, - "line": 47, - "column": 23, - "$class": "concerto.metamodel@1.0.0.Position" + "isArray": true, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 475, + "line": 21, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 500, + "line": 22, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } } - } }, { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "z", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1075, - "line": 47, - "column": 24, - "$class": "concerto.metamodel@1.0.0.Position" + "$class": "concerto.metamodel@1.0.0.RelationshipProperty", + "name": "address5", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Address", + "namespace": "test.person" }, - "end": { - "offset": 1078, - "line": 47, - "column": 27, - "$class": "concerto.metamodel@1.0.0.Position" + "isArray": false, + "isOptional": true, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 500, + "line": 22, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 532, + "line": 23, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } } - } }, { - "$class": "concerto.metamodel@1.0.0.DecoratorBoolean", - "value": true, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1079, - "line": 47, - "column": 28, - "$class": "concerto.metamodel@1.0.0.Position" + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "gender", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Gender", + "namespace": "test.person" }, - "end": { - "offset": 1083, - "line": 47, - "column": 32, - "$class": "concerto.metamodel@1.0.0.Position" + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 532, + "line": 23, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 550, + "line": 24, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } } - } - } - ] - }, - { - "$class": "concerto.metamodel@1.0.0.Decorator", - "name": "Zip2", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1087, - "line": 48, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" }, - "end": { - "offset": 1094, - "line": 48, - "column": 10, - "$class": "concerto.metamodel@1.0.0.Position" + { + "$class": "concerto.metamodel@1.0.0.DateTimeProperty", + "name": "dob", + "isArray": false, + "isOptional": true, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 550, + "line": 24, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 574, + "line": 25, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + } } - }, - "arguments": [] - }, - { - "$class": "concerto.metamodel@1.0.0.Decorator", - "name": "Zip3", - "location": { + ], + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 1097, - "line": 49, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 289, + "line": 15, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 1102, - "line": 49, - "column": 8, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 575, + "line": 25, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" } - } - } - ], - "validator": { - "$class": "concerto.metamodel@1.0.0.IntegerDomainValidator", - "lower": -365, - "upper": 365 - } - }, - { - "$class": "concerto.metamodel@1.0.0.IntegerProperty", - "name": "zip41", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1139, - "line": 51, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" }, - "end": { - "offset": 1170, - "line": 52, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.IntegerDomainValidator", - "upper": 365 - } - }, - { - "$class": "concerto.metamodel@1.0.0.IntegerProperty", - "name": "zip42", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1170, - "line": 52, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1202, - "line": 53, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.IntegerDomainValidator", - "lower": -365 - } - }, - { - "$class": "concerto.metamodel@1.0.0.LongProperty", - "name": "zip5", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1202, - "line": 53, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1233, - "line": 54, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.LongDomainValidator", - "lower": -365, - "upper": 365 - } - }, - { - "$class": "concerto.metamodel@1.0.0.LongProperty", - "name": "zip51", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1233, - "line": 54, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1261, - "line": 55, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.LongDomainValidator", - "upper": 365 - } - }, - { - "$class": "concerto.metamodel@1.0.0.LongProperty", - "name": "zip52", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1261, - "line": 55, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1290, - "line": 56, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.LongDomainValidator", - "lower": -365 - } - }, - { - "$class": "concerto.metamodel@1.0.0.DoubleProperty", - "name": "zip6", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1290, - "line": 56, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1325, - "line": 57, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.DoubleDomainValidator", - "lower": -3.14, - "upper": 3.14 - } - }, - { - "$class": "concerto.metamodel@1.0.0.DoubleProperty", - "name": "zip61", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1325, - "line": 57, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1357, - "line": 58, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.DoubleDomainValidator", - "lower": -3.14 - } - }, - { - "$class": "concerto.metamodel@1.0.0.DoubleProperty", - "name": "zip62", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1357, - "line": 58, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1386, - "line": 59, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" + "superType": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Individual", + "namespace": "test.person" } - }, - "validator": { - "$class": "concerto.metamodel@1.0.0.DoubleDomainValidator", - "upper": 3.14 - } - } - ], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 937, - "line": 43, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" }, - "end": { - "offset": 1387, - "line": 59, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "superType": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Address", - "namespace": "test.person", - "resolvedName": "Address" - }, - "decorators": [ { - "$class": "concerto.metamodel@1.0.0.Decorator", - "name": "Address", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 937, - "line": 43, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 993, - "line": 43, - "column": 57, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "arguments": [ - { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "x", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 946, - "line": 43, - "column": 10, - "$class": "concerto.metamodel@1.0.0.Position" + "$class": "concerto.metamodel@1.0.0.ParticipantDeclaration", + "name": "Employee", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "company", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 617, + "line": 28, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 636, + "line": 29, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } }, - "end": { - "offset": 949, - "line": 43, - "column": 13, - "$class": "concerto.metamodel@1.0.0.Position" + { + "$class": "concerto.metamodel@1.0.0.BooleanProperty", + "name": "onLeave", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 636, + "line": 29, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 654, + "line": 30, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + } } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorNumber", - "value": 1, - "location": { + ], + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 950, - "line": 43, - "column": 14, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 577, + "line": 27, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 951, - "line": 43, - "column": 15, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 655, + "line": 30, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" } - } }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "y", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 952, - "line": 43, - "column": 16, - "$class": "concerto.metamodel@1.0.0.Position" + "superType": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Person", + "namespace": "test.person" + } + }, + { + "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", + "name": "Address", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.IntegerProperty", + "name": "zip", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 688, + "line": 33, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 718, + "line": 34, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": 10001 }, - "end": { - "offset": 955, - "line": 43, - "column": 19, - "$class": "concerto.metamodel@1.0.0.Position" + { + "$class": "concerto.metamodel@1.0.0.LongProperty", + "name": "zip2", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 718, + "line": 34, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 746, + "line": 35, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": 10001 + }, + { + "$class": "concerto.metamodel@1.0.0.DoubleProperty", + "name": "zip3", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 746, + "line": 35, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 778, + "line": 36, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": 10001 + }, + { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "city", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 778, + "line": 36, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 808, + "line": 37, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": "NYC" + }, + { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "country", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 808, + "line": 37, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 841, + "line": 38, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": "USA" + }, + { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "street", + "isArray": true, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 841, + "line": 38, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 861, + "line": 39, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.BooleanProperty", + "name": "isResidential", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 861, + "line": 39, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 900, + "line": 40, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": true + }, + { + "$class": "concerto.metamodel@1.0.0.BooleanProperty", + "name": "isPrivate", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 900, + "line": 40, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 934, + "line": 41, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "defaultValue": false } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "foo", - "location": { + ], + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 956, - "line": 43, - "column": 20, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 657, + "line": 32, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 961, - "line": 43, - "column": 25, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 935, + "line": 41, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" } - } }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorString", - "value": "z", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 962, - "line": 43, - "column": 26, - "$class": "concerto.metamodel@1.0.0.Position" + "identified": { + "$class": "concerto.metamodel@1.0.0.Identified" + } + }, + { + "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", + "name": "USAddress", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.IntegerProperty", + "name": "zip4", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1054, + "line": 47, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1139, + "line": 51, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "Zip", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1054, + "line": 47, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1084, + "line": 47, + "column": 33, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "x", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1059, + "line": 47, + "column": 8, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1062, + "line": 47, + "column": 11, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorNumber", + "value": 1, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1063, + "line": 47, + "column": 12, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1064, + "line": 47, + "column": 13, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "y", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1065, + "line": 47, + "column": 14, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1068, + "line": 47, + "column": 17, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "foo", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1069, + "line": 47, + "column": 18, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1074, + "line": 47, + "column": 23, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "z", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1075, + "line": 47, + "column": 24, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1078, + "line": 47, + "column": 27, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorBoolean", + "value": true, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1079, + "line": 47, + "column": 28, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1083, + "line": 47, + "column": 32, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ] + }, + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "Zip2", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1087, + "line": 48, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1094, + "line": 48, + "column": 10, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "arguments": [] + }, + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "Zip3", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1097, + "line": 49, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1102, + "line": 49, + "column": 8, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ], + "validator": { + "$class": "concerto.metamodel@1.0.0.IntegerDomainValidator", + "lower": -365, + "upper": 365 + } }, - "end": { - "offset": 965, - "line": 43, - "column": 29, - "$class": "concerto.metamodel@1.0.0.Position" + { + "$class": "concerto.metamodel@1.0.0.IntegerProperty", + "name": "zip41", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1139, + "line": 51, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1170, + "line": 52, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.IntegerDomainValidator", + "upper": 365 + } + }, + { + "$class": "concerto.metamodel@1.0.0.IntegerProperty", + "name": "zip42", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1170, + "line": 52, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1202, + "line": 53, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.IntegerDomainValidator", + "lower": -365 + } + }, + { + "$class": "concerto.metamodel@1.0.0.LongProperty", + "name": "zip5", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1202, + "line": 53, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1233, + "line": 54, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.LongDomainValidator", + "lower": -365, + "upper": 365 + } + }, + { + "$class": "concerto.metamodel@1.0.0.LongProperty", + "name": "zip51", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1233, + "line": 54, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1261, + "line": 55, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.LongDomainValidator", + "upper": 365 + } + }, + { + "$class": "concerto.metamodel@1.0.0.LongProperty", + "name": "zip52", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1261, + "line": 55, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1290, + "line": 56, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.LongDomainValidator", + "lower": -365 + } + }, + { + "$class": "concerto.metamodel@1.0.0.DoubleProperty", + "name": "zip6", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1290, + "line": 56, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1325, + "line": 57, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.DoubleDomainValidator", + "lower": -3.14, + "upper": 3.14 + } + }, + { + "$class": "concerto.metamodel@1.0.0.DoubleProperty", + "name": "zip61", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1325, + "line": 57, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1357, + "line": 58, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.DoubleDomainValidator", + "lower": -3.14 + } + }, + { + "$class": "concerto.metamodel@1.0.0.DoubleProperty", + "name": "zip62", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1357, + "line": 58, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1386, + "line": 59, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "validator": { + "$class": "concerto.metamodel@1.0.0.DoubleDomainValidator", + "upper": 3.14 + } } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorBoolean", - "value": true, - "location": { + ], + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 966, - "line": 43, - "column": 30, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 937, + "line": 43, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 970, - "line": 43, - "column": 34, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 1387, + "line": 59, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" } - } }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", - "type": { + "superType": { "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Gender", - "namespace": "test.person", - "resolvedName": "Gender" - }, - "isArray": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 971, - "line": 43, - "column": 35, - "$class": "concerto.metamodel@1.0.0.Position" + "name": "Address", + "namespace": "test.person" + }, + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "Address", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 937, + "line": 43, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 993, + "line": 43, + "column": 57, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "x", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 946, + "line": 43, + "column": 10, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 949, + "line": 43, + "column": 13, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorNumber", + "value": 1, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 950, + "line": 43, + "column": 14, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 951, + "line": 43, + "column": 15, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "y", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 952, + "line": 43, + "column": 16, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 955, + "line": 43, + "column": 19, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "foo", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 956, + "line": 43, + "column": 20, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 961, + "line": 43, + "column": 25, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorString", + "value": "z", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 962, + "line": 43, + "column": 26, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 965, + "line": 43, + "column": 29, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorBoolean", + "value": true, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 966, + "line": 43, + "column": 30, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 970, + "line": 43, + "column": 34, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Gender", + "namespace": "test.person" + }, + "isArray": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 971, + "line": 43, + "column": 35, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 977, + "line": 43, + "column": 41, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "TemporalUnit", + "namespace": "org.accordproject.time" + }, + "isArray": true, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 978, + "line": 43, + "column": 42, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 992, + "line": 43, + "column": 56, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ] }, - "end": { - "offset": 977, - "line": 43, - "column": 41, - "$class": "concerto.metamodel@1.0.0.Position" + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "Address2", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 994, + "line": 44, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1005, + "line": 44, + "column": 12, + "$class": "concerto.metamodel@1.0.0.Position" + } + }, + "arguments": [] + }, + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "Address3", + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1006, + "line": 45, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1015, + "line": 45, + "column": 10, + "$class": "concerto.metamodel@1.0.0.Position" + } + } } - } - }, - { - "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "TemporalUnit", - "namespace": "org.accordproject.time", - "resolvedName": "TemporalUnit" - }, - "isArray": true, - "location": { + ] + }, + { + "$class": "concerto.metamodel@1.0.0.AssetDeclaration", + "name": "A", + "isAbstract": false, + "properties": [], + "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 978, - "line": 43, - "column": 42, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 1389, + "line": 61, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 992, - "line": 43, - "column": 56, - "$class": "concerto.metamodel@1.0.0.Position" + "offset": 1400, + "line": 62, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" } - } - } - ] - }, - { - "$class": "concerto.metamodel@1.0.0.Decorator", - "name": "Address2", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 994, - "line": 44, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1005, - "line": 44, - "column": 12, - "$class": "concerto.metamodel@1.0.0.Position" - } - }, - "arguments": [] - }, - { - "$class": "concerto.metamodel@1.0.0.Decorator", - "name": "Address3", - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1006, - "line": 45, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1015, - "line": 45, - "column": 10, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - } - ] - }, - { - "$class": "concerto.metamodel@1.0.0.AssetDeclaration", - "name": "A", - "isAbstract": false, - "properties": [], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1389, - "line": 61, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1400, - "line": 62, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.EventDeclaration", - "name": "E", - "isAbstract": false, - "properties": [], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1402, - "line": 64, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1413, - "line": 65, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.TransactionDeclaration", - "name": "T", - "isAbstract": false, - "properties": [ - { - "$class": "concerto.metamodel@1.0.0.StringProperty", - "name": "id", - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1450, - "line": 68, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1464, - "line": 69, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, - { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "tu", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "TemporalUnit", - "namespace": "org.accordproject.time", - "resolvedName": "TemporalUnit" - }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1464, - "line": 69, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1484, - "line": 70, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" } - } }, { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "month", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Month", - "namespace": "org.accordproject.time", - "resolvedName": "Month" - }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1484, - "line": 70, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1500, - "line": 71, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" + "$class": "concerto.metamodel@1.0.0.EventDeclaration", + "name": "E", + "isAbstract": false, + "properties": [], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1402, + "line": 64, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1413, + "line": 65, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } } - } }, { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "p", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Participant", - "namespace": "concerto@1.0.0", - "resolvedName": "Participant" - }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1500, - "line": 71, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" + "$class": "concerto.metamodel@1.0.0.TransactionDeclaration", + "name": "T", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.StringProperty", + "name": "id", + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1450, + "line": 68, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1464, + "line": 69, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "tu", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "TemporalUnit", + "namespace": "org.accordproject.time" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1464, + "line": 69, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1484, + "line": 70, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "month", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Month", + "namespace": "org.accordproject.time" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1484, + "line": 70, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1500, + "line": 71, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "p", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Participant", + "namespace": "concerto@1.0.0" + }, + "isArray": false, + "isOptional": false, + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1500, + "line": 71, + "column": 3, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1516, + "line": 72, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + } + } + } + ], + "location": { + "$class": "concerto.metamodel@1.0.0.Range", + "start": { + "offset": 1415, + "line": 67, + "column": 1, + "$class": "concerto.metamodel@1.0.0.Position" + }, + "end": { + "offset": 1517, + "line": 72, + "column": 2, + "$class": "concerto.metamodel@1.0.0.Position" + } }, - "end": { - "offset": 1516, - "line": 72, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" + "identified": { + "$class": "concerto.metamodel@1.0.0.IdentifiedBy", + "name": "id" } - } - } - ], - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 1415, - "line": 67, - "column": 1, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 1517, - "line": 72, - "column": 2, - "$class": "concerto.metamodel@1.0.0.Position" } - }, - "identified": { - "$class": "concerto.metamodel@1.0.0.IdentifiedBy", - "name": "id" - } - } - ] -} \ No newline at end of file + ] +} diff --git a/packages/concerto-core/test/introspect/decorator.js b/packages/concerto-core/test/introspect/decorator.js index 4142f755d2..574ea41e44 100644 --- a/packages/concerto-core/test/introspect/decorator.js +++ b/packages/concerto-core/test/introspect/decorator.js @@ -104,17 +104,6 @@ describe('Decorator - Test for declarations using Import Aliasing', () => { resolvedModelManager.addModelFiles([resolvedModelFileChild, resolvedModelFileParent], ['child@1.0.0.cto', 'parent@1.0.0.cto']); }); - // describe.only('#getArguments', () => { - - // it('should be able get validate a decorator whose argument is an imported type which is aliased', () => { - // const classDeclaration = resolvedModelManager.getType('parent@1.0.0.Child'); - // const decorator = classDeclaration.getDecorators()[0]; - // console.log(decorator.getArguments()[0]); - // this returns { type: 'Identifier', name: 'Kid', array: false }, how do we get back the base/super type? - // }); - - // }); - describe('#validate', () => { it('should be able get validate a decorator whose argument is an imported type which is aliased', () => { @@ -122,6 +111,5 @@ describe('Decorator - Test for declarations using Import Aliasing', () => { const decorator = classDeclaration.getDecorators()[0]; expect(decorator.validate.bind(decorator)).to.not.throw(); }); - }); }); diff --git a/packages/concerto-core/test/introspect/metamodel.js b/packages/concerto-core/test/introspect/metamodel.js index 6bbea93b68..423073f76e 100644 --- a/packages/concerto-core/test/introspect/metamodel.js +++ b/packages/concerto-core/test/introspect/metamodel.js @@ -203,3 +203,43 @@ describe('MetaModel (Version)', () => { }); }); }); + +describe('MetaModel (Parent - Child (Import Aliasing))', () => { + const parentModelPath = path.resolve(__dirname, '../data/aliasing/parent.cto'); + const parentModel = fs.readFileSync(parentModelPath, 'utf8'); + const parentMetaModel = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../data/aliasing/parent.json'), 'utf-8')); + + const childModelPath = path.resolve(__dirname, '../data/aliasing/child.cto'); + const childModel = fs.readFileSync(childModelPath, 'utf8'); + + describe('#toMetaModel', () => { + it('should convert and validate a CTO model with import aliasing to its metamodel', () => { + const mm1 = Parser.parse(parentModel); + validateMetaModel(mm1); + mm1.should.deep.equal(parentMetaModel); + }); + + it('should convert and validate a ModelFile to its metamodel', () => { + const modelManager1 = new ModelManager({ importAliasing: true, enableMapType: true }); + const mf1 = ParserUtil.newModelFile(modelManager1, parentModel); + const mm1 = mf1.getAst(); + mm1.should.deep.equal(parentMetaModel); + const model2 = Printer.toCTO(mm1); + const modelManager2 = new ModelManager({ importAliasing: true, enableMapType: true }); + const mf2 = ParserUtil.newModelFile(modelManager2, model2); + const mm2 = mf2.getAst(); + mm2.should.deep.equal(parentMetaModel); + }); + + it('should accpet a cto model with its dependency, resolve the types and build back the cto', () => { + const modelManager = new ModelManager({ importAliasing: true, enableMapType: true }); + const mf1 = ParserUtil.newModelFile(modelManager, childModel); + const mf2 = ParserUtil.newModelFile(modelManager, parentModel); + modelManager.addModelFiles([mf1, mf2], ['child.cto', 'parent.cto']); + const resolvedParentModelAst = modelManager.resolveMetaModel(mf2.getAst()); + const resolvedModelPrint = Printer.toCTO(resolvedParentModelAst); + const mf3 = ParserUtil.newModelFile(modelManager, resolvedModelPrint); + mf3.getAst().should.deep.equal(parentMetaModel); + }); + }); +}); diff --git a/packages/concerto-core/test/introspect/scalardeclaration.js b/packages/concerto-core/test/introspect/scalardeclaration.js index 04daae0486..70a9878e4b 100644 --- a/packages/concerto-core/test/introspect/scalardeclaration.js +++ b/packages/concerto-core/test/introspect/scalardeclaration.js @@ -23,10 +23,6 @@ const Util = require('../composer/composermodelutility'); const should = require('chai').should(); const sinon = require('sinon'); -const ModelFile = require('../../lib/introspect/modelfile'); - -const fs = require('fs'); -const path = require('path'); describe('ScalarDeclaration', () => { @@ -309,63 +305,3 @@ describe('ScalarDeclaration', () => { }); }); -describe('ScalarDeclaration - - Test for declarations using Import Aliasing', () => { - - let modelManager; - let resolvedModelManager; - - beforeEach(() => { - modelManager = new ModelManager({ strict: true, importAliasing: true, enableMapType: true}); - - const childModelCTO = fs.readFileSync(path.resolve(__dirname, '../data/aliasing/child.cto'), 'utf8'); - const parentModelCTO = fs.readFileSync(path.resolve(__dirname, '../data/aliasing/parent.cto'), 'utf8'); - - modelManager.addCTOModel(childModelCTO, 'child@1.0.0.cto'); - modelManager.addCTOModel(parentModelCTO, 'parent@1.0.0.cto'); - const resolvedMetamodelChild = modelManager.resolveMetaModel(modelManager.getAst().models[0]); - const resolvedMetamodelParent = modelManager.resolveMetaModel(modelManager.getAst().models[1]); - resolvedModelManager = new ModelManager({ strict: true, importAliasing: true, enableMapType: true}); - const resolvedModelFileChild = new ModelFile(resolvedModelManager, resolvedMetamodelChild, 'child@1.0.0.cto'); - const resolvedModelFileParent = new ModelFile(resolvedModelManager, resolvedMetamodelParent, 'parent@1.0.0.cto'); - resolvedModelManager.addModelFiles([resolvedModelFileChild, resolvedModelFileParent], ['child@1.0.0.cto', 'parent@1.0.0.cto']); - }); - - // describe.only('#getName', () => { - // it('should return the scalar name', () => { - // // This fails, current imports are not declared within a namespace. Is this a bug? - // // Why are we treating imported declrations as foreign objects? Shouldn't they be treated as part of the namespace and declared? - // // Extend this test to map keys and value as well - // const classDeclaration = resolvedModelManager.getType('parent@1.0.0.Child'); - // const property = classDeclaration.getProperty('str'); - // const type = property.getType(); - // const namespce = property.getNamespace(); - // const scalarDeclarationFQN = `${namespce}.${type}`; - // const scalarDeclaration = resolvedModelManager.getType(scalarDeclarationFQN); - // console.log(scalarDeclaration); - // }); - - // }); - - // describe('#getNamespace', () => { - // const modelFileName = 'test/data/parser/scalardeclaration.ssn.cto'; - - // beforeEach(() => { - // const modelFiles = introspectUtils.loadModelFiles([modelFileName], modelManager); - // modelManager.addModelFiles(modelFiles); - // }); - // it('should return null', () => { - // const testClass = modelManager.getType('com.testing.SSN'); - // should.equal(testClass.getNamespace(), 'com.testing'); - // }); - // }); - - // describe('#getFullyQualifiedName', () => { - // it('should return the fully qualified name if function is in a namespace', () => { - // let clz = new ScalarDeclaration(modelFile, { - // name: 'suchName', - // }); - // clz.getFullyQualifiedName().should.equal('com.hyperledger.testing.suchName'); - // }); - - // }); -}); diff --git a/packages/concerto-cto/package.json b/packages/concerto-cto/package.json index 2d099cb2a8..462ced58a1 100644 --- a/packages/concerto-cto/package.json +++ b/packages/concerto-cto/package.json @@ -52,7 +52,7 @@ "typescript": "5.7.2" }, "dependencies": { - "@accordproject/concerto-metamodel": "../../../concerto-metamodel", + "@accordproject/concerto-metamodel": "3.10.5-20250116112652", "@accordproject/concerto-util": "3.20.1" }, "browserslist": "> 0.25%, not dead", diff --git a/packages/concerto-cto/test/cto/child.cto b/packages/concerto-cto/test/cto/child.cto new file mode 100644 index 0000000000..62b187f9f8 --- /dev/null +++ b/packages/concerto-cto/test/cto/child.cto @@ -0,0 +1,7 @@ +namespace child@1.0.0 + +concept Child { + o Integer age +} + +scalar MyString extends String diff --git a/packages/concerto-cto/test/cto/child.json b/packages/concerto-cto/test/cto/child.json new file mode 100644 index 0000000000..28267c6178 --- /dev/null +++ b/packages/concerto-cto/test/cto/child.json @@ -0,0 +1,25 @@ +{ + "$class": "concerto.metamodel@1.0.0.Model", + "decorators": [], + "namespace": "child@1.0.0", + "imports": [], + "declarations": [ + { + "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", + "name": "Child", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.IntegerProperty", + "name": "age", + "isArray": false, + "isOptional": false + } + ] + }, + { + "$class": "concerto.metamodel@1.0.0.StringScalar", + "name": "MyString" + } + ] +} \ No newline at end of file diff --git a/packages/concerto-cto/test/cto/parent.cto b/packages/concerto-cto/test/cto/parent.cto new file mode 100644 index 0000000000..a0a1879aae --- /dev/null +++ b/packages/concerto-cto/test/cto/parent.cto @@ -0,0 +1,24 @@ +@test(Kid) +namespace parent@1.0.0 + +import child@1.0.0.{MyString as Str,Child as Kid} + +@test(Kid) +concept Child extends Kid { + @test(Kid) + o Kid kid + o Str str +} + +concept Student extends Child { + o Str schoolName + o Str name + o Child myChild +} + +@test(Kid) +map KidIndex { + o Str + @test(Kid) + o Kid +} diff --git a/packages/concerto-cto/test/cto/parent.json b/packages/concerto-cto/test/cto/parent.json new file mode 100644 index 0000000000..5493557f2b --- /dev/null +++ b/packages/concerto-cto/test/cto/parent.json @@ -0,0 +1,198 @@ +{ + "$class": "concerto.metamodel@1.0.0.Model", + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "test", + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "isArray": false + } + ] + } + ], + "namespace": "parent@1.0.0", + "imports": [ + { + "$class": "concerto.metamodel@1.0.0.ImportTypes", + "namespace": "child@1.0.0", + "types": [ + "MyString", + "Child" + ], + "aliasedTypes": [ + { + "$class": "concerto.metamodel@1.0.0.AliasedType", + "name": "MyString", + "aliasedName": "Str" + }, + { + "$class": "concerto.metamodel@1.0.0.AliasedType", + "name": "Child", + "aliasedName": "Kid" + } + ] + } + ], + "declarations": [ + { + "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", + "name": "Child", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "kid", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "isArray": false, + "isOptional": false, + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "test", + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "isArray": false + } + ] + } + ] + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "str", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Str" + }, + "isArray": false, + "isOptional": false + } + ], + "superType": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "test", + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "isArray": false + } + ] + } + ] + }, + { + "$class": "concerto.metamodel@1.0.0.ConceptDeclaration", + "name": "Student", + "isAbstract": false, + "properties": [ + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "schoolName", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Str" + }, + "isArray": false, + "isOptional": false + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "name", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Str" + }, + "isArray": false, + "isOptional": false + }, + { + "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "name": "myChild", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Child" + }, + "isArray": false, + "isOptional": false + } + ], + "superType": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Child" + } + }, + { + "$class": "concerto.metamodel@1.0.0.MapDeclaration", + "name": "KidIndex", + "key": { + "$class": "concerto.metamodel@1.0.0.ObjectMapKeyType", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Str" + } + }, + "value": { + "$class": "concerto.metamodel@1.0.0.ObjectMapValueType", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "test", + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "isArray": false + } + ] + } + ] + }, + "decorators": [ + { + "$class": "concerto.metamodel@1.0.0.Decorator", + "name": "test", + "arguments": [ + { + "$class": "concerto.metamodel@1.0.0.DecoratorTypeReference", + "type": { + "$class": "concerto.metamodel@1.0.0.TypeIdentifier", + "name": "Kid" + }, + "isArray": false + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/packages/concerto-vocabulary/package.json b/packages/concerto-vocabulary/package.json index 64dd13434e..1931499807 100644 --- a/packages/concerto-vocabulary/package.json +++ b/packages/concerto-vocabulary/package.json @@ -47,7 +47,7 @@ "@types/webgl-ext": "^0.0.37" }, "dependencies": { - "@accordproject/concerto-metamodel": "../../../concerto-metamodel", + "@accordproject/concerto-metamodel": "3.10.5-20250116112652", "yaml": "2.6.1" }, "browserslist": "> 0.25%, not dead", From 2d0662331ed3e0dde5408de8d719f1b2a3e273af Mon Sep 17 00:00:00 2001 From: sanketshevkar Date: Thu, 16 Jan 2025 18:34:44 +0530 Subject: [PATCH 03/12] fix(aliasing): add new tests Signed-off-by: sanketshevkar --- .../test/introspect/mapdeclaration.js | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/packages/concerto-core/test/introspect/mapdeclaration.js b/packages/concerto-core/test/introspect/mapdeclaration.js index aa0dc11568..04f6565d3e 100644 --- a/packages/concerto-core/test/introspect/mapdeclaration.js +++ b/packages/concerto-core/test/introspect/mapdeclaration.js @@ -26,8 +26,10 @@ const ParserUtil = require('./parserutility'); const ModelManager = require('../../lib/modelmanager'); const Util = require('../composer/composermodelutility'); const fs = require('fs'); +const path = require('path'); const sinon = require('sinon'); +const ModelFile = require('../../lib/introspect/modelfile'); const expect = require('chai').expect; @@ -787,3 +789,40 @@ describe('MapDeclaration', () => { }); }); }); + +describe('MapDeclration - Test for declarations using Import Aliasing', () => { + + let modelManager; + let resolvedModelManager; + + beforeEach(() => { + modelManager = new ModelManager({ strict: true, importAliasing: true, enableMapType: true}); + + const childModelCTO = fs.readFileSync(path.resolve(__dirname, '../data/aliasing/child.cto'), 'utf8'); + const parentModelCTO = fs.readFileSync(path.resolve(__dirname, '../data/aliasing/parent.cto'), 'utf8'); + + modelManager.addCTOModel(childModelCTO, 'child@1.0.0.cto'); + modelManager.addCTOModel(parentModelCTO, 'parent@1.0.0.cto'); + const resolvedMetamodelChild = modelManager.resolveMetaModel(modelManager.getAst().models[0]); + const resolvedMetamodelParent = modelManager.resolveMetaModel(modelManager.getAst().models[1]); + resolvedModelManager = new ModelManager({ strict: true, importAliasing: true, enableMapType: true}); + const resolvedModelFileChild = new ModelFile(resolvedModelManager, resolvedMetamodelChild, 'child@1.0.0.cto'); + const resolvedModelFileParent = new ModelFile(resolvedModelManager, resolvedMetamodelParent, 'parent@1.0.0.cto'); + resolvedModelManager.addModelFiles([resolvedModelFileChild, resolvedModelFileParent], ['child@1.0.0.cto', 'parent@1.0.0.cto']); + }); + + describe('#validate', () => { + + it('should be able get validate a map key which is an imported scalar type which is aliased', () => { + const mapDeclaration = resolvedModelManager.getType('parent@1.0.0.KidIndex'); + const key = mapDeclaration.getKey(); + expect(key.validate.bind(key)).to.not.throw(); + }); + + it('should be able get validate a map value which is an imported type which is aliased', () => { + const mapDeclaration = resolvedModelManager.getType('parent@1.0.0.KidIndex'); + const value = mapDeclaration.getValue(); + expect(value.validate.bind(value)).to.not.throw(); + }); + }); +}); From 16fa5af3db0095ae76c8719bdbf02dfa0644a850 Mon Sep 17 00:00:00 2001 From: sanketshevkar Date: Thu, 16 Jan 2025 18:40:25 +0530 Subject: [PATCH 04/12] fix(aliasing): add new tests Signed-off-by: sanketshevkar --- packages/concerto-core/lib/introspect/declaration.js | 1 - packages/concerto-core/lib/introspect/property.js | 1 - packages/concerto-core/test/introspect/classdeclaration.js | 1 - packages/concerto-core/test/introspect/decorator.js | 2 +- packages/concerto-core/test/introspect/mapdeclaration.js | 2 +- packages/concerto-core/test/introspect/property.js | 2 +- 6 files changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/concerto-core/lib/introspect/declaration.js b/packages/concerto-core/lib/introspect/declaration.js index 91d59c691a..033c2afe45 100644 --- a/packages/concerto-core/lib/introspect/declaration.js +++ b/packages/concerto-core/lib/introspect/declaration.js @@ -65,7 +65,6 @@ class Declaration extends Decorated { throw new IllegalModelException(`Invalid class name '${this.ast.name}'`, this.modelFile, this.ast.location); } - // should we use resolved name here? this.name = this.ast.name; this.fqn = ModelUtil.getFullyQualifiedName(this.modelFile.getNamespace(), this.name); } diff --git a/packages/concerto-core/lib/introspect/property.js b/packages/concerto-core/lib/introspect/property.js index 1a92117c7f..db041f0d0b 100644 --- a/packages/concerto-core/lib/introspect/property.js +++ b/packages/concerto-core/lib/introspect/property.js @@ -109,7 +109,6 @@ class Property extends Decorated { this.type = 'String'; break; case `${MetaModelNamespace}.ObjectProperty`: - // should we have resolved name here? this.type = this.ast.type ? this.ast.type.name : null; break; case `${MetaModelNamespace}.RelationshipProperty`: diff --git a/packages/concerto-core/test/introspect/classdeclaration.js b/packages/concerto-core/test/introspect/classdeclaration.js index 72139739d6..b2357071df 100644 --- a/packages/concerto-core/test/introspect/classdeclaration.js +++ b/packages/concerto-core/test/introspect/classdeclaration.js @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ /* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/packages/concerto-core/test/introspect/decorator.js b/packages/concerto-core/test/introspect/decorator.js index 574ea41e44..f4b7bd0323 100644 --- a/packages/concerto-core/test/introspect/decorator.js +++ b/packages/concerto-core/test/introspect/decorator.js @@ -83,7 +83,7 @@ describe('Decorator', () => { }); }); -describe('Decorator - Test for declarations using Import Aliasing', () => { +describe('Decorator - Test for Decorator arguments using Import Aliasing', () => { let modelManager; let resolvedModelManager; diff --git a/packages/concerto-core/test/introspect/mapdeclaration.js b/packages/concerto-core/test/introspect/mapdeclaration.js index 04f6565d3e..27d67feaa4 100644 --- a/packages/concerto-core/test/introspect/mapdeclaration.js +++ b/packages/concerto-core/test/introspect/mapdeclaration.js @@ -790,7 +790,7 @@ describe('MapDeclaration', () => { }); }); -describe('MapDeclration - Test for declarations using Import Aliasing', () => { +describe('MapDeclration - Test for MapDeclrations using Import Aliasing', () => { let modelManager; let resolvedModelManager; diff --git a/packages/concerto-core/test/introspect/property.js b/packages/concerto-core/test/introspect/property.js index bd5441c476..26ad12eb03 100644 --- a/packages/concerto-core/test/introspect/property.js +++ b/packages/concerto-core/test/introspect/property.js @@ -117,7 +117,7 @@ describe('Property', () => { }); -describe('Property - Test for declarations using Import Aliasing', () => { +describe('Property - Test for property types using Import Aliasing', () => { let modelManager; let resolvedModelManager; From 38a16321f8e4d3ac4b11eafbcd5fb137406140a3 Mon Sep 17 00:00:00 2001 From: sanketshevkar Date: Thu, 16 Jan 2025 18:56:05 +0530 Subject: [PATCH 05/12] fix(aliasing): upgrade glob to v11 to fix rimraf issue in concerto-types Signed-off-by: sanketshevkar --- package-lock.json | 518 ++++++++++++++++-- package.json | 2 +- .../unions/concerto.metamodel@1.0.0.ts | 1 + 3 files changed, 464 insertions(+), 57 deletions(-) diff --git a/package-lock.json b/package-lock.json index 570c85285d..799a9b1b5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "devDependencies": { "@types/jest": "^29.5.14", "dayjs": "1.11.13", - "glob": "^7.2.0", + "glob": "^11.0.1", "license-check-and-add": "4.0.5", "nyc": "17.1.0", "semver": "7.6.3" @@ -2345,6 +2345,109 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -2569,6 +2672,28 @@ } } }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@jest/reporters/node_modules/jest-worker": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", @@ -5633,6 +5758,13 @@ "node": ">= 0.4" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/ejs": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", @@ -6793,22 +6925,24 @@ } }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", "dev": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "*" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -6834,6 +6968,32 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -6888,6 +7048,28 @@ "node": ">=8" } }, + "node_modules/globby/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/globrex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", @@ -7922,6 +8104,22 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/jake": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", @@ -8257,6 +8455,28 @@ } } }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/jest-diff": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", @@ -8657,6 +8877,28 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/jest-snapshot": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", @@ -9502,6 +9744,16 @@ "node": "*" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -10327,6 +10579,28 @@ "dev": true, "license": "MIT" }, + "node_modules/nyc/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/nyc/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -10653,6 +10927,13 @@ "node": ">=8" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -10754,6 +11035,33 @@ "dev": true, "license": "MIT" }, + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, "node_modules/path-to-regexp": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", @@ -11503,6 +11811,28 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -12183,6 +12513,39 @@ "node": ">=6" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/string-width/node_modules/ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -12297,6 +12660,20 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -12435,6 +12812,28 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -13318,6 +13717,57 @@ "node": ">=6" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -13870,50 +14320,6 @@ "npm": ">=10" } }, - "packages/concerto-types/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "packages/concerto-types/node_modules/glob": { - "version": "11.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "packages/concerto-types/node_modules/minimatch": { - "version": "10.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "packages/concerto-types/node_modules/rimraf": { "version": "6.0.1", "dev": true, diff --git a/package.json b/package.json index a0a1b290dd..e8284a5171 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "devDependencies": { "@types/jest": "^29.5.14", "dayjs": "1.11.13", - "glob": "^7.2.0", + "glob": "^11.0.1", "license-check-and-add": "4.0.5", "nyc": "17.1.0", "semver": "7.6.3" diff --git a/packages/concerto-types/src/generated/unions/concerto.metamodel@1.0.0.ts b/packages/concerto-types/src/generated/unions/concerto.metamodel@1.0.0.ts index 2359b6e69d..17f0bb762b 100644 --- a/packages/concerto-types/src/generated/unions/concerto.metamodel@1.0.0.ts +++ b/packages/concerto-types/src/generated/unions/concerto.metamodel@1.0.0.ts @@ -37,6 +37,7 @@ export interface IRange extends IConcept { export interface ITypeIdentifier extends IConcept { name: string; + resolvedName?: string; namespace?: string; } From a3653c0daafc6efd051239be0a6aea5021395011 Mon Sep 17 00:00:00 2001 From: sanketshevkar Date: Thu, 16 Jan 2025 19:11:23 +0530 Subject: [PATCH 06/12] fix(aliasing): update coverage scollection script for globe upgarde Signed-off-by: sanketshevkar --- scripts/coverage.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/coverage.js b/scripts/coverage.js index c3caaba43f..0a47297f19 100755 --- a/scripts/coverage.js +++ b/scripts/coverage.js @@ -35,7 +35,7 @@ function copyFiles(files, destDir) { const lcovs = glob.sync(globPattern).map((dir) => { const packageName = dir.split('/').pop(); return { - source: path.join(dir, 'coverage/coverage-final.json'), + source: path.join(dir, 'coverage/coverage-final.json').split(path.sep).join('/'), destination: `${packageName}.json` }; }); @@ -45,4 +45,4 @@ copyFiles(lcovs, 'coverage').then(() => { console.log("done"); }).catch(err => { console.log(err); -}); \ No newline at end of file +}); From 85c81744f204f4c44f031fc8f876cb0bdfe57345 Mon Sep 17 00:00:00 2001 From: sanketshevkar Date: Thu, 16 Jan 2025 19:18:59 +0530 Subject: [PATCH 07/12] fix(aliasing): update coverage scollection script for globe upgarde Signed-off-by: sanketshevkar --- scripts/coverage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/coverage.js b/scripts/coverage.js index 0a47297f19..b14ad42586 100755 --- a/scripts/coverage.js +++ b/scripts/coverage.js @@ -28,7 +28,7 @@ function copyFiles(files, destDir) { fs.mkdirSync('coverage'); } return Promise.all(files.map(f => { - return copyFilePromise(f.source, path.join(destDir, f.destination)); + return copyFilePromise(f.source, path.join(destDir, f.destination).split(path.sep).join('/')); })); } From 09503bdf98ea098d1401b5938d18c868d43415db Mon Sep 17 00:00:00 2001 From: sanketshevkar Date: Thu, 16 Jan 2025 19:29:28 +0530 Subject: [PATCH 08/12] fix(aliasing): update coverage scollection script for globe upgarde Signed-off-by: sanketshevkar --- scripts/coverage.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/coverage.js b/scripts/coverage.js index b14ad42586..10f066024d 100755 --- a/scripts/coverage.js +++ b/scripts/coverage.js @@ -28,14 +28,14 @@ function copyFiles(files, destDir) { fs.mkdirSync('coverage'); } return Promise.all(files.map(f => { - return copyFilePromise(f.source, path.join(destDir, f.destination).split(path.sep).join('/')); + return copyFilePromise(f.source, path.join(destDir, f.destination)); })); } -const lcovs = glob.sync(globPattern).map((dir) => { +const lcovs = glob.sync(globPattern.split(path.sep).join('/')).map((dir) => { const packageName = dir.split('/').pop(); return { - source: path.join(dir, 'coverage/coverage-final.json').split(path.sep).join('/'), + source: path.join(dir, 'coverage/coverage-final.json'), destination: `${packageName}.json` }; }); From 56e9c523256acc2f743c7b09a5e260fa612b0294 Mon Sep 17 00:00:00 2001 From: sanketshevkar Date: Thu, 16 Jan 2025 19:34:35 +0530 Subject: [PATCH 09/12] fix(aliasing): update coverage scollection script for globe upgarde Signed-off-by: sanketshevkar --- scripts/coverage.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/coverage.js b/scripts/coverage.js index 10f066024d..c6e142b912 100755 --- a/scripts/coverage.js +++ b/scripts/coverage.js @@ -32,10 +32,10 @@ function copyFiles(files, destDir) { })); } -const lcovs = glob.sync(globPattern.split(path.sep).join('/')).map((dir) => { - const packageName = dir.split('/').pop(); +const lcovs = glob.sync(globPattern).map((dir) => { + const packageName = dir.split(path.sep).join('/').split('/').pop(); return { - source: path.join(dir, 'coverage/coverage-final.json'), + source: path.join(dir.split(path.sep).join('/'), 'coverage/coverage-final.json'), destination: `${packageName}.json` }; }); From cc54de136c4f01d918182c3b09f9858720c71ece Mon Sep 17 00:00:00 2001 From: sanketshevkar Date: Thu, 16 Jan 2025 19:40:12 +0530 Subject: [PATCH 10/12] fix(aliasing): concerto-metamodel bump Signed-off-by: sanketshevkar --- package-lock.json | 12 ++++++------ packages/concerto-core/package.json | 2 +- packages/concerto-cto/package.json | 2 +- packages/concerto-vocabulary/package.json | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 799a9b1b5d..410c5f3912 100644 --- a/package-lock.json +++ b/package-lock.json @@ -342,9 +342,9 @@ "link": true }, "node_modules/@accordproject/concerto-metamodel": { - "version": "3.10.5-20250116112652", - "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.5-20250116112652.tgz", - "integrity": "sha512-WpWx7ILTYPEr79KPV/pyIGgdjkAmtUoqSjwkD4qbZsA9kE/PpvKgs7Z1CowyWF73s1yf+B/nnCFT6M5PUGMNqA==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.11.0.tgz", + "integrity": "sha512-fEihaIrOlxtrVejPAX26OHcDdgasGLQo/Xwt89i36gM70B8B77jShLZqbvgBj97sC5YaqRVfRH9xlec7Yfqdqg==", "license": "Apache-2.0", "engines": { "node": ">=14", @@ -14067,7 +14067,7 @@ "license": "Apache-2.0", "dependencies": { "@accordproject/concerto-cto": "3.20.1", - "@accordproject/concerto-metamodel": "3.10.5-20250116112652", + "@accordproject/concerto-metamodel": "3.11.0", "@accordproject/concerto-util": "3.20.1", "dayjs": "1.11.13", "debug": "4.3.7", @@ -14261,7 +14261,7 @@ "version": "3.20.1", "license": "Apache-2.0", "dependencies": { - "@accordproject/concerto-metamodel": "3.10.5-20250116112652", + "@accordproject/concerto-metamodel": "3.11.0", "@accordproject/concerto-util": "3.20.1" }, "devDependencies": { @@ -14397,7 +14397,7 @@ "version": "3.20.1", "license": "Apache-2.0", "dependencies": { - "@accordproject/concerto-metamodel": "3.10.5-20250116112652", + "@accordproject/concerto-metamodel": "3.11.0", "yaml": "2.6.1" }, "devDependencies": { diff --git a/packages/concerto-core/package.json b/packages/concerto-core/package.json index 9728ad9f9f..0a08c82db5 100644 --- a/packages/concerto-core/package.json +++ b/packages/concerto-core/package.json @@ -65,7 +65,7 @@ }, "dependencies": { "@accordproject/concerto-cto": "3.20.1", - "@accordproject/concerto-metamodel": "3.10.5-20250116112652", + "@accordproject/concerto-metamodel": "3.11.0", "@accordproject/concerto-util": "3.20.1", "dayjs": "1.11.13", "debug": "4.3.7", diff --git a/packages/concerto-cto/package.json b/packages/concerto-cto/package.json index 462ced58a1..a2bc0fcb86 100644 --- a/packages/concerto-cto/package.json +++ b/packages/concerto-cto/package.json @@ -52,7 +52,7 @@ "typescript": "5.7.2" }, "dependencies": { - "@accordproject/concerto-metamodel": "3.10.5-20250116112652", + "@accordproject/concerto-metamodel": "3.11.0", "@accordproject/concerto-util": "3.20.1" }, "browserslist": "> 0.25%, not dead", diff --git a/packages/concerto-vocabulary/package.json b/packages/concerto-vocabulary/package.json index 1931499807..d9c79f0047 100644 --- a/packages/concerto-vocabulary/package.json +++ b/packages/concerto-vocabulary/package.json @@ -47,7 +47,7 @@ "@types/webgl-ext": "^0.0.37" }, "dependencies": { - "@accordproject/concerto-metamodel": "3.10.5-20250116112652", + "@accordproject/concerto-metamodel": "3.11.0", "yaml": "2.6.1" }, "browserslist": "> 0.25%, not dead", From bd19b0e2575f5b9bc59760a6aff28affa14bbc23 Mon Sep 17 00:00:00 2001 From: sanketshevkar Date: Thu, 16 Jan 2025 23:30:32 +0530 Subject: [PATCH 11/12] fix(aliasing): new test Signed-off-by: sanketshevkar --- packages/concerto-core/test/introspect/decorator.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/concerto-core/test/introspect/decorator.js b/packages/concerto-core/test/introspect/decorator.js index f4b7bd0323..2ab711c3e6 100644 --- a/packages/concerto-core/test/introspect/decorator.js +++ b/packages/concerto-core/test/introspect/decorator.js @@ -106,10 +106,16 @@ describe('Decorator - Test for Decorator arguments using Import Aliasing', () => describe('#validate', () => { - it('should be able get validate a decorator whose argument is an imported type which is aliased', () => { + it('should be able get validate a decorator on a classDeclaration whose argument is an imported type which is aliased', () => { const classDeclaration = resolvedModelManager.getType('parent@1.0.0.Child'); const decorator = classDeclaration.getDecorators()[0]; expect(decorator.validate.bind(decorator)).to.not.throw(); }); + + it('should be able get validate a decorator on a namespace whose argument is an imported type which is aliased', () => { + const classDeclaration = resolvedModelManager.getModelFile('parent@1.0.0'); + const decorator = classDeclaration.getDecorators()[0]; + expect(decorator.validate.bind(decorator)).to.not.throw(); + }); }); }); From ac512cd30430b094a4d70bc3f9cfc55241142d85 Mon Sep 17 00:00:00 2001 From: sanketshevkar Date: Fri, 17 Jan 2025 12:32:27 +0530 Subject: [PATCH 12/12] fix(aliasing): fix test data Signed-off-by: sanketshevkar --- .../test/data/aliasing/child.cto | 2 +- .../test/data/aliasing/parent.cto | 9 +- .../test/data/aliasing/parent.json | 145 +++++++----------- packages/concerto-cto/test/cto/child.cto | 2 +- packages/concerto-cto/test/cto/child.json | 2 +- packages/concerto-cto/test/cto/parent.cto | 9 +- packages/concerto-cto/test/cto/parent.json | 28 +--- 7 files changed, 76 insertions(+), 121 deletions(-) diff --git a/packages/concerto-core/test/data/aliasing/child.cto b/packages/concerto-core/test/data/aliasing/child.cto index 62b187f9f8..b08d2c5500 100644 --- a/packages/concerto-core/test/data/aliasing/child.cto +++ b/packages/concerto-core/test/data/aliasing/child.cto @@ -4,4 +4,4 @@ concept Child { o Integer age } -scalar MyString extends String +scalar FullName extends String diff --git a/packages/concerto-core/test/data/aliasing/parent.cto b/packages/concerto-core/test/data/aliasing/parent.cto index a0a1879aae..ab5bda6b52 100644 --- a/packages/concerto-core/test/data/aliasing/parent.cto +++ b/packages/concerto-core/test/data/aliasing/parent.cto @@ -1,24 +1,23 @@ @test(Kid) namespace parent@1.0.0 -import child@1.0.0.{MyString as Str,Child as Kid} +import child@1.0.0.{FullName as KidFullName,Child as Kid} @test(Kid) concept Child extends Kid { @test(Kid) o Kid kid - o Str str + o KidFullName name } concept Student extends Child { - o Str schoolName - o Str name + o String schoolName o Child myChild } @test(Kid) map KidIndex { - o Str + o KidFullName @test(Kid) o Kid } diff --git a/packages/concerto-core/test/data/aliasing/parent.json b/packages/concerto-core/test/data/aliasing/parent.json index bd123df851..8fe182096a 100644 --- a/packages/concerto-core/test/data/aliasing/parent.json +++ b/packages/concerto-core/test/data/aliasing/parent.json @@ -52,14 +52,14 @@ "$class": "concerto.metamodel@1.0.0.ImportTypes", "namespace": "child@1.0.0", "types": [ - "MyString", + "FullName", "Child" ], "aliasedTypes": [ { "$class": "concerto.metamodel@1.0.0.AliasedType", - "name": "MyString", - "aliasedName": "Str" + "name": "FullName", + "aliasedName": "KidFullName" }, { "$class": "concerto.metamodel@1.0.0.AliasedType", @@ -87,13 +87,13 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 127, + "offset": 135, "line": 8, "column": 3, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 152, + "offset": 160, "line": 10, "column": 3, "$class": "concerto.metamodel@1.0.0.Position" @@ -106,13 +106,13 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 127, + "offset": 135, "line": 8, "column": 3, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 137, + "offset": 145, "line": 8, "column": 13, "$class": "concerto.metamodel@1.0.0.Position" @@ -129,13 +129,13 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 133, + "offset": 141, "line": 8, "column": 9, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 136, + "offset": 144, "line": 8, "column": 12, "$class": "concerto.metamodel@1.0.0.Position" @@ -148,23 +148,23 @@ }, { "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "str", + "name": "name", "type": { "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Str" + "name": "KidFullName" }, "isArray": false, "isOptional": false, "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 152, + "offset": 160, "line": 10, "column": 3, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 162, + "offset": 179, "line": 11, "column": 1, "$class": "concerto.metamodel@1.0.0.Position" @@ -175,13 +175,13 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 86, + "offset": 94, "line": 6, "column": 1, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 163, + "offset": 180, "line": 11, "column": 2, "$class": "concerto.metamodel@1.0.0.Position" @@ -198,13 +198,13 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 86, + "offset": 94, "line": 6, "column": 1, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 96, + "offset": 104, "line": 6, "column": 11, "$class": "concerto.metamodel@1.0.0.Position" @@ -221,13 +221,13 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 92, + "offset": 100, "line": 6, "column": 7, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 95, + "offset": 103, "line": 6, "column": 10, "$class": "concerto.metamodel@1.0.0.Position" @@ -244,55 +244,26 @@ "isAbstract": false, "properties": [ { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "$class": "concerto.metamodel@1.0.0.StringProperty", "name": "schoolName", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Str" - }, "isArray": false, "isOptional": false, "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 199, + "offset": 216, "line": 14, "column": 3, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 218, + "offset": 238, "line": 15, "column": 3, "$class": "concerto.metamodel@1.0.0.Position" } } }, - { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "name", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Str" - }, - "isArray": false, - "isOptional": false, - "location": { - "$class": "concerto.metamodel@1.0.0.Range", - "start": { - "offset": 218, - "line": 15, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - }, - "end": { - "offset": 231, - "line": 16, - "column": 3, - "$class": "concerto.metamodel@1.0.0.Position" - } - } - }, { "$class": "concerto.metamodel@1.0.0.ObjectProperty", "name": "myChild", @@ -305,14 +276,14 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 231, - "line": 16, + "offset": 238, + "line": 15, "column": 3, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 247, - "line": 17, + "offset": 254, + "line": 16, "column": 1, "$class": "concerto.metamodel@1.0.0.Position" } @@ -322,14 +293,14 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 165, + "offset": 182, "line": 13, "column": 1, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 248, - "line": 17, + "offset": 255, + "line": 16, "column": 2, "$class": "concerto.metamodel@1.0.0.Position" } @@ -346,19 +317,19 @@ "$class": "concerto.metamodel@1.0.0.ObjectMapKeyType", "type": { "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Str" + "name": "KidFullName" }, "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 278, - "line": 21, + "offset": 285, + "line": 20, "column": 3, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 286, - "line": 22, + "offset": 301, + "line": 21, "column": 3, "$class": "concerto.metamodel@1.0.0.Position" } @@ -373,14 +344,14 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 286, - "line": 22, + "offset": 301, + "line": 21, "column": 3, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 305, - "line": 24, + "offset": 320, + "line": 23, "column": 1, "$class": "concerto.metamodel@1.0.0.Position" } @@ -392,14 +363,14 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 286, - "line": 22, + "offset": 301, + "line": 21, "column": 3, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 296, - "line": 22, + "offset": 311, + "line": 21, "column": 13, "$class": "concerto.metamodel@1.0.0.Position" } @@ -415,14 +386,14 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 292, - "line": 22, + "offset": 307, + "line": 21, "column": 9, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 295, - "line": 22, + "offset": 310, + "line": 21, "column": 12, "$class": "concerto.metamodel@1.0.0.Position" } @@ -435,14 +406,14 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 250, - "line": 19, + "offset": 257, + "line": 18, "column": 1, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 306, - "line": 24, + "offset": 321, + "line": 23, "column": 2, "$class": "concerto.metamodel@1.0.0.Position" } @@ -454,14 +425,14 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 250, - "line": 19, + "offset": 257, + "line": 18, "column": 1, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 260, - "line": 19, + "offset": 267, + "line": 18, "column": 11, "$class": "concerto.metamodel@1.0.0.Position" } @@ -477,14 +448,14 @@ "location": { "$class": "concerto.metamodel@1.0.0.Range", "start": { - "offset": 256, - "line": 19, + "offset": 263, + "line": 18, "column": 7, "$class": "concerto.metamodel@1.0.0.Position" }, "end": { - "offset": 259, - "line": 19, + "offset": 266, + "line": 18, "column": 10, "$class": "concerto.metamodel@1.0.0.Position" } diff --git a/packages/concerto-cto/test/cto/child.cto b/packages/concerto-cto/test/cto/child.cto index 62b187f9f8..b08d2c5500 100644 --- a/packages/concerto-cto/test/cto/child.cto +++ b/packages/concerto-cto/test/cto/child.cto @@ -4,4 +4,4 @@ concept Child { o Integer age } -scalar MyString extends String +scalar FullName extends String diff --git a/packages/concerto-cto/test/cto/child.json b/packages/concerto-cto/test/cto/child.json index 28267c6178..760f36ed66 100644 --- a/packages/concerto-cto/test/cto/child.json +++ b/packages/concerto-cto/test/cto/child.json @@ -19,7 +19,7 @@ }, { "$class": "concerto.metamodel@1.0.0.StringScalar", - "name": "MyString" + "name": "FullName" } ] } \ No newline at end of file diff --git a/packages/concerto-cto/test/cto/parent.cto b/packages/concerto-cto/test/cto/parent.cto index a0a1879aae..ab5bda6b52 100644 --- a/packages/concerto-cto/test/cto/parent.cto +++ b/packages/concerto-cto/test/cto/parent.cto @@ -1,24 +1,23 @@ @test(Kid) namespace parent@1.0.0 -import child@1.0.0.{MyString as Str,Child as Kid} +import child@1.0.0.{FullName as KidFullName,Child as Kid} @test(Kid) concept Child extends Kid { @test(Kid) o Kid kid - o Str str + o KidFullName name } concept Student extends Child { - o Str schoolName - o Str name + o String schoolName o Child myChild } @test(Kid) map KidIndex { - o Str + o KidFullName @test(Kid) o Kid } diff --git a/packages/concerto-cto/test/cto/parent.json b/packages/concerto-cto/test/cto/parent.json index 5493557f2b..e9cddc3816 100644 --- a/packages/concerto-cto/test/cto/parent.json +++ b/packages/concerto-cto/test/cto/parent.json @@ -22,14 +22,14 @@ "$class": "concerto.metamodel@1.0.0.ImportTypes", "namespace": "child@1.0.0", "types": [ - "MyString", + "FullName", "Child" ], "aliasedTypes": [ { "$class": "concerto.metamodel@1.0.0.AliasedType", - "name": "MyString", - "aliasedName": "Str" + "name": "FullName", + "aliasedName": "KidFullName" }, { "$class": "concerto.metamodel@1.0.0.AliasedType", @@ -73,10 +73,10 @@ }, { "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "str", + "name": "name", "type": { "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Str" + "name": "KidFullName" }, "isArray": false, "isOptional": false @@ -109,22 +109,8 @@ "isAbstract": false, "properties": [ { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", + "$class": "concerto.metamodel@1.0.0.StringProperty", "name": "schoolName", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Str" - }, - "isArray": false, - "isOptional": false - }, - { - "$class": "concerto.metamodel@1.0.0.ObjectProperty", - "name": "name", - "type": { - "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Str" - }, "isArray": false, "isOptional": false }, @@ -151,7 +137,7 @@ "$class": "concerto.metamodel@1.0.0.ObjectMapKeyType", "type": { "$class": "concerto.metamodel@1.0.0.TypeIdentifier", - "name": "Str" + "name": "KidFullName" } }, "value": {