From 5abf44956f2c455ada56f70c60c5196c73a36721 Mon Sep 17 00:00:00 2001 From: Dan Selman Date: Fri, 8 Nov 2024 13:57:22 +0000 Subject: [PATCH] feat(foreach): update to support foreach Signed-off-by: Dan Selman --- package-lock.json | 769 ++++++++++++++++-- package.json | 2 +- packages/markdown-template/lib/TypeVisitor.js | 66 +- packages/markdown-template/src/TypeVisitor.js | 29 +- 4 files changed, 732 insertions(+), 134 deletions(-) diff --git a/package-lock.json b/package-lock.json index a8b52ab0..f5559011 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "./packages/*" ], "devDependencies": { - "@accordproject/concerto-core": "3.19.2", + "@accordproject/concerto-core": "3.19.5", "browserify-zlib": "^0.2.0", "colors": "1.4.0", "coveralls": "3.0.4", @@ -36,14 +36,15 @@ } }, "node_modules/@accordproject/concerto-core": { - "version": "3.19.2", - "resolved": "https://registry.npmjs.org/@accordproject/concerto-core/-/concerto-core-3.19.2.tgz", - "integrity": "sha512-wfpIiMaRUr6NMCVmuomPxjswN6trvxY0lEvlQhTDF5Y2hOz4PYnHniPbMT8WjN9cjaCnFk8DjrQgryQUnuMbUA==", + "version": "3.19.5", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-core/-/concerto-core-3.19.5.tgz", + "integrity": "sha512-/mCRjAOt9Fmy39J6+qM9A3jsproxdM5Cr9hXDpWgm6ztfc1/AwJxJdFMhOoV9CGHgDOYM/txH9+Hw3HMkqKBlQ==", + "dev": true, "license": "Apache-2.0", "dependencies": { - "@accordproject/concerto-cto": "3.19.1", - "@accordproject/concerto-metamodel": "3.10.1", - "@accordproject/concerto-util": "3.19.1", + "@accordproject/concerto-cto": "3.19.4", + "@accordproject/concerto-metamodel": "3.10.2", + "@accordproject/concerto-util": "3.19.3", "dayjs": "1.11.10", "debug": "4.3.4", "lorem-ipsum": "2.0.8", @@ -58,13 +59,31 @@ "npm": ">=10" } }, + "node_modules/@accordproject/concerto-core/node_modules/@accordproject/concerto-util": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.19.3.tgz", + "integrity": "sha512-Jc4QLM13OTn1VDqs7WEmgj1t085rCLAaotp7FslG7P8nxSfBN638K06bKRLyE8Dx1al0UNpwArZbFcgOgjW43w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@supercharge/promise-pool": "1.7.0", + "debug": "4.3.4", + "slash": "3.0.0" + }, + "engines": { + "node": ">=18", + "npm": ">=10" + } + }, "node_modules/@accordproject/concerto-core/node_modules/dayjs": { "version": "1.11.10", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "dev": true }, "node_modules/@accordproject/concerto-core/node_modules/semver": { "version": "7.5.4", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -80,6 +99,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -89,24 +109,26 @@ } }, "node_modules/@accordproject/concerto-cto": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/@accordproject/concerto-cto/-/concerto-cto-3.19.1.tgz", - "integrity": "sha512-GfJsyrwNB1JhctMVwrxKJC5Ga3t24H9NrgEaK+BG+wxD5rih6JiI9H5dQBGXS9cQYymmuWeX+Me+vgWfwpJx4A==", + "version": "3.19.4", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-cto/-/concerto-cto-3.19.4.tgz", + "integrity": "sha512-a2Yui7bH3CrM+xboDyy0gJJw6wHZfXKjruEIa51kaPnBvhongwRScJkVuSgwTdObAxbxqhxSgzAYxdYhdWXC3w==", + "dev": true, "license": "Apache-2.0", "dependencies": { - "@accordproject/concerto-metamodel": "3.10.0", - "@accordproject/concerto-util": "3.19.1", + "@accordproject/concerto-metamodel": "3.10.1", + "@accordproject/concerto-util": "3.19.3", "path-browserify": "1.0.1" }, "engines": { - "node": ">=16", - "npm": ">=8" + "node": ">=18", + "npm": ">=10" } }, "node_modules/@accordproject/concerto-cto/node_modules/@accordproject/concerto-metamodel": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.0.tgz", - "integrity": "sha512-xgBLwQGAHYeswIK3DlpvquT1NpTii9ETGQLqG4wpN3Ez/m8ymZXpTMFwS+pPu+pKDlX+T4+cZacewX60IecHmw==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.1.tgz", + "integrity": "sha512-I3yQeyBCZbJADDfYaTPw7lL2k4nZnhVDgRRv7hW/gBbHNSxX7vwFRypoteclQDTIGXbZDlV3FntBOo55rFPhjQ==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@accordproject/concerto-util": "3.16.9", @@ -121,6 +143,7 @@ "version": "3.16.9", "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.16.9.tgz", "integrity": "sha512-Q62s7a0zMCZMbOIybe20mnauB5+oqkwEeKlsrvg2QrkK0q3o7XvWkr3Zot2AncSwkQC3U6+rfuGiBvdyJNJ7Hw==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@supercharge/promise-pool": "1.7.0", @@ -135,10 +158,27 @@ "npm": ">=8" } }, + "node_modules/@accordproject/concerto-cto/node_modules/@accordproject/concerto-util": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.19.3.tgz", + "integrity": "sha512-Jc4QLM13OTn1VDqs7WEmgj1t085rCLAaotp7FslG7P8nxSfBN638K06bKRLyE8Dx1al0UNpwArZbFcgOgjW43w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@supercharge/promise-pool": "1.7.0", + "debug": "4.3.4", + "slash": "3.0.0" + }, + "engines": { + "node": ">=18", + "npm": ">=10" + } + }, "node_modules/@accordproject/concerto-cto/node_modules/axios": { "version": "1.6.8", "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "dev": true, "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -150,6 +190,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -161,12 +202,13 @@ } }, "node_modules/@accordproject/concerto-metamodel": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.1.tgz", - "integrity": "sha512-I3yQeyBCZbJADDfYaTPw7lL2k4nZnhVDgRRv7hW/gBbHNSxX7vwFRypoteclQDTIGXbZDlV3FntBOo55rFPhjQ==", + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.2.tgz", + "integrity": "sha512-SpCIraVzpCXsaBloGT4BiA2/GTWqXUzk+as1Ac6odUR8pAzkhYc+sXwOgEa9tOQx2heQ+EtamhqqkzDr1jS4rQ==", + "dev": true, "license": "Apache-2.0", "dependencies": { - "@accordproject/concerto-util": "3.16.9", + "@accordproject/concerto-util": "3.19.2", "@types/node": "20.7.0" }, "engines": { @@ -175,46 +217,19 @@ } }, "node_modules/@accordproject/concerto-metamodel/node_modules/@accordproject/concerto-util": { - "version": "3.16.9", - "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.16.9.tgz", - "integrity": "sha512-Q62s7a0zMCZMbOIybe20mnauB5+oqkwEeKlsrvg2QrkK0q3o7XvWkr3Zot2AncSwkQC3U6+rfuGiBvdyJNJ7Hw==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.19.2.tgz", + "integrity": "sha512-2N0soMwQCM80wKL7zPENMk55VFdtzUAddIM5W3LdHOPya4SY2GhTz2t0BDMS1I0QFE1tZ33+MjbLWXweN/+2wA==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@supercharge/promise-pool": "1.7.0", - "axios": "1.6.8", - "colors": "1.4.0", "debug": "4.3.4", - "json-colorizer": "2.2.2", "slash": "3.0.0" }, "engines": { - "node": ">=16", - "npm": ">=8" - } - }, - "node_modules/@accordproject/concerto-metamodel/node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/@accordproject/concerto-metamodel/node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" + "node": ">=18", + "npm": ">=10" } }, "node_modules/@accordproject/concerto-util": { @@ -12208,6 +12223,167 @@ "npm": ">=9" } }, + "packages/markdown-cicero/node_modules/@accordproject/concerto-core": { + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-core/-/concerto-core-3.19.2.tgz", + "integrity": "sha512-wfpIiMaRUr6NMCVmuomPxjswN6trvxY0lEvlQhTDF5Y2hOz4PYnHniPbMT8WjN9cjaCnFk8DjrQgryQUnuMbUA==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-cto": "3.19.1", + "@accordproject/concerto-metamodel": "3.10.1", + "@accordproject/concerto-util": "3.19.1", + "dayjs": "1.11.10", + "debug": "4.3.4", + "lorem-ipsum": "2.0.8", + "randexp": "0.5.3", + "semver": "7.5.4", + "slash": "3.0.0", + "urijs": "1.19.11", + "uuid": "9.0.1" + }, + "engines": { + "node": ">=18", + "npm": ">=10" + } + }, + "packages/markdown-cicero/node_modules/@accordproject/concerto-cto": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-cto/-/concerto-cto-3.19.1.tgz", + "integrity": "sha512-GfJsyrwNB1JhctMVwrxKJC5Ga3t24H9NrgEaK+BG+wxD5rih6JiI9H5dQBGXS9cQYymmuWeX+Me+vgWfwpJx4A==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-metamodel": "3.10.0", + "@accordproject/concerto-util": "3.19.1", + "path-browserify": "1.0.1" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + } + }, + "packages/markdown-cicero/node_modules/@accordproject/concerto-cto/node_modules/@accordproject/concerto-metamodel": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.0.tgz", + "integrity": "sha512-xgBLwQGAHYeswIK3DlpvquT1NpTii9ETGQLqG4wpN3Ez/m8ymZXpTMFwS+pPu+pKDlX+T4+cZacewX60IecHmw==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-util": "3.16.9", + "@types/node": "20.7.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6" + } + }, + "packages/markdown-cicero/node_modules/@accordproject/concerto-cto/node_modules/@accordproject/concerto-metamodel/node_modules/@accordproject/concerto-util": { + "version": "3.16.9", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.16.9.tgz", + "integrity": "sha512-Q62s7a0zMCZMbOIybe20mnauB5+oqkwEeKlsrvg2QrkK0q3o7XvWkr3Zot2AncSwkQC3U6+rfuGiBvdyJNJ7Hw==", + "license": "Apache-2.0", + "dependencies": { + "@supercharge/promise-pool": "1.7.0", + "axios": "1.6.8", + "colors": "1.4.0", + "debug": "4.3.4", + "json-colorizer": "2.2.2", + "slash": "3.0.0" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + } + }, + "packages/markdown-cicero/node_modules/@accordproject/concerto-metamodel": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.1.tgz", + "integrity": "sha512-I3yQeyBCZbJADDfYaTPw7lL2k4nZnhVDgRRv7hW/gBbHNSxX7vwFRypoteclQDTIGXbZDlV3FntBOo55rFPhjQ==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-util": "3.16.9", + "@types/node": "20.7.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6" + } + }, + "packages/markdown-cicero/node_modules/@accordproject/concerto-metamodel/node_modules/@accordproject/concerto-util": { + "version": "3.16.9", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.16.9.tgz", + "integrity": "sha512-Q62s7a0zMCZMbOIybe20mnauB5+oqkwEeKlsrvg2QrkK0q3o7XvWkr3Zot2AncSwkQC3U6+rfuGiBvdyJNJ7Hw==", + "license": "Apache-2.0", + "dependencies": { + "@supercharge/promise-pool": "1.7.0", + "axios": "1.6.8", + "colors": "1.4.0", + "debug": "4.3.4", + "json-colorizer": "2.2.2", + "slash": "3.0.0" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + } + }, + "packages/markdown-cicero/node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "packages/markdown-cicero/node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "license": "MIT" + }, + "packages/markdown-cicero/node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "packages/markdown-cicero/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "packages/markdown-cicero/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "packages/markdown-cli": { "name": "@accordproject/markdown-cli", "version": "0.16.25", @@ -12280,15 +12456,176 @@ "npm": ">=9" } }, - "packages/markdown-docx": { - "name": "@accordproject/markdown-docx", - "version": "0.16.25", + "packages/markdown-common/node_modules/@accordproject/concerto-core": { + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-core/-/concerto-core-3.19.2.tgz", + "integrity": "sha512-wfpIiMaRUr6NMCVmuomPxjswN6trvxY0lEvlQhTDF5Y2hOz4PYnHniPbMT8WjN9cjaCnFk8DjrQgryQUnuMbUA==", "license": "Apache-2.0", "dependencies": { - "@accordproject/markdown-cicero": "*", - "mammoth": "^1.4.19" - }, - "devDependencies": { + "@accordproject/concerto-cto": "3.19.1", + "@accordproject/concerto-metamodel": "3.10.1", + "@accordproject/concerto-util": "3.19.1", + "dayjs": "1.11.10", + "debug": "4.3.4", + "lorem-ipsum": "2.0.8", + "randexp": "0.5.3", + "semver": "7.5.4", + "slash": "3.0.0", + "urijs": "1.19.11", + "uuid": "9.0.1" + }, + "engines": { + "node": ">=18", + "npm": ">=10" + } + }, + "packages/markdown-common/node_modules/@accordproject/concerto-cto": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-cto/-/concerto-cto-3.19.1.tgz", + "integrity": "sha512-GfJsyrwNB1JhctMVwrxKJC5Ga3t24H9NrgEaK+BG+wxD5rih6JiI9H5dQBGXS9cQYymmuWeX+Me+vgWfwpJx4A==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-metamodel": "3.10.0", + "@accordproject/concerto-util": "3.19.1", + "path-browserify": "1.0.1" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + } + }, + "packages/markdown-common/node_modules/@accordproject/concerto-cto/node_modules/@accordproject/concerto-metamodel": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.0.tgz", + "integrity": "sha512-xgBLwQGAHYeswIK3DlpvquT1NpTii9ETGQLqG4wpN3Ez/m8ymZXpTMFwS+pPu+pKDlX+T4+cZacewX60IecHmw==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-util": "3.16.9", + "@types/node": "20.7.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6" + } + }, + "packages/markdown-common/node_modules/@accordproject/concerto-cto/node_modules/@accordproject/concerto-metamodel/node_modules/@accordproject/concerto-util": { + "version": "3.16.9", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.16.9.tgz", + "integrity": "sha512-Q62s7a0zMCZMbOIybe20mnauB5+oqkwEeKlsrvg2QrkK0q3o7XvWkr3Zot2AncSwkQC3U6+rfuGiBvdyJNJ7Hw==", + "license": "Apache-2.0", + "dependencies": { + "@supercharge/promise-pool": "1.7.0", + "axios": "1.6.8", + "colors": "1.4.0", + "debug": "4.3.4", + "json-colorizer": "2.2.2", + "slash": "3.0.0" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + } + }, + "packages/markdown-common/node_modules/@accordproject/concerto-metamodel": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.1.tgz", + "integrity": "sha512-I3yQeyBCZbJADDfYaTPw7lL2k4nZnhVDgRRv7hW/gBbHNSxX7vwFRypoteclQDTIGXbZDlV3FntBOo55rFPhjQ==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-util": "3.16.9", + "@types/node": "20.7.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6" + } + }, + "packages/markdown-common/node_modules/@accordproject/concerto-metamodel/node_modules/@accordproject/concerto-util": { + "version": "3.16.9", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.16.9.tgz", + "integrity": "sha512-Q62s7a0zMCZMbOIybe20mnauB5+oqkwEeKlsrvg2QrkK0q3o7XvWkr3Zot2AncSwkQC3U6+rfuGiBvdyJNJ7Hw==", + "license": "Apache-2.0", + "dependencies": { + "@supercharge/promise-pool": "1.7.0", + "axios": "1.6.8", + "colors": "1.4.0", + "debug": "4.3.4", + "json-colorizer": "2.2.2", + "slash": "3.0.0" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + } + }, + "packages/markdown-common/node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "packages/markdown-common/node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "license": "MIT" + }, + "packages/markdown-common/node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "packages/markdown-common/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "packages/markdown-common/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "packages/markdown-docx": { + "name": "@accordproject/markdown-docx", + "version": "0.16.25", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/markdown-cicero": "*", + "mammoth": "^1.4.19" + }, + "devDependencies": { "@babel/cli": "7.17.6", "@babel/core": "7.17.5", "@babel/preset-env": "7.16.11", @@ -12663,6 +13000,142 @@ "npm": ">=9" } }, + "packages/markdown-template/node_modules/@accordproject/concerto-core": { + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-core/-/concerto-core-3.19.2.tgz", + "integrity": "sha512-wfpIiMaRUr6NMCVmuomPxjswN6trvxY0lEvlQhTDF5Y2hOz4PYnHniPbMT8WjN9cjaCnFk8DjrQgryQUnuMbUA==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-cto": "3.19.1", + "@accordproject/concerto-metamodel": "3.10.1", + "@accordproject/concerto-util": "3.19.1", + "dayjs": "1.11.10", + "debug": "4.3.4", + "lorem-ipsum": "2.0.8", + "randexp": "0.5.3", + "semver": "7.5.4", + "slash": "3.0.0", + "urijs": "1.19.11", + "uuid": "9.0.1" + }, + "engines": { + "node": ">=18", + "npm": ">=10" + } + }, + "packages/markdown-template/node_modules/@accordproject/concerto-core/node_modules/@accordproject/concerto-cto": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-cto/-/concerto-cto-3.19.1.tgz", + "integrity": "sha512-GfJsyrwNB1JhctMVwrxKJC5Ga3t24H9NrgEaK+BG+wxD5rih6JiI9H5dQBGXS9cQYymmuWeX+Me+vgWfwpJx4A==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-metamodel": "3.10.0", + "@accordproject/concerto-util": "3.19.1", + "path-browserify": "1.0.1" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + } + }, + "packages/markdown-template/node_modules/@accordproject/concerto-core/node_modules/@accordproject/concerto-cto/node_modules/@accordproject/concerto-metamodel": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.0.tgz", + "integrity": "sha512-xgBLwQGAHYeswIK3DlpvquT1NpTii9ETGQLqG4wpN3Ez/m8ymZXpTMFwS+pPu+pKDlX+T4+cZacewX60IecHmw==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-util": "3.16.9", + "@types/node": "20.7.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6" + } + }, + "packages/markdown-template/node_modules/@accordproject/concerto-core/node_modules/@accordproject/concerto-cto/node_modules/@accordproject/concerto-metamodel/node_modules/@accordproject/concerto-util": { + "version": "3.16.9", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.16.9.tgz", + "integrity": "sha512-Q62s7a0zMCZMbOIybe20mnauB5+oqkwEeKlsrvg2QrkK0q3o7XvWkr3Zot2AncSwkQC3U6+rfuGiBvdyJNJ7Hw==", + "license": "Apache-2.0", + "dependencies": { + "@supercharge/promise-pool": "1.7.0", + "axios": "1.6.8", + "colors": "1.4.0", + "debug": "4.3.4", + "json-colorizer": "2.2.2", + "slash": "3.0.0" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + } + }, + "packages/markdown-template/node_modules/@accordproject/concerto-core/node_modules/@accordproject/concerto-metamodel": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.1.tgz", + "integrity": "sha512-I3yQeyBCZbJADDfYaTPw7lL2k4nZnhVDgRRv7hW/gBbHNSxX7vwFRypoteclQDTIGXbZDlV3FntBOo55rFPhjQ==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-util": "3.16.9", + "@types/node": "20.7.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6" + } + }, + "packages/markdown-template/node_modules/@accordproject/concerto-core/node_modules/@accordproject/concerto-metamodel/node_modules/@accordproject/concerto-util": { + "version": "3.16.9", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.16.9.tgz", + "integrity": "sha512-Q62s7a0zMCZMbOIybe20mnauB5+oqkwEeKlsrvg2QrkK0q3o7XvWkr3Zot2AncSwkQC3U6+rfuGiBvdyJNJ7Hw==", + "license": "Apache-2.0", + "dependencies": { + "@supercharge/promise-pool": "1.7.0", + "axios": "1.6.8", + "colors": "1.4.0", + "debug": "4.3.4", + "json-colorizer": "2.2.2", + "slash": "3.0.0" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + } + }, + "packages/markdown-template/node_modules/@accordproject/concerto-core/node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "license": "MIT" + }, + "packages/markdown-template/node_modules/@accordproject/concerto-core/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "packages/markdown-template/node_modules/@accordproject/concerto-core/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "packages/markdown-template/node_modules/@accordproject/concerto-cto": { "version": "3.19.2", "resolved": "https://registry.npmjs.org/@accordproject/concerto-cto/-/concerto-cto-3.19.2.tgz", @@ -12917,6 +13390,145 @@ "npm": ">=9" } }, + "packages/markdown-transform/node_modules/@accordproject/concerto-core": { + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-core/-/concerto-core-3.19.2.tgz", + "integrity": "sha512-wfpIiMaRUr6NMCVmuomPxjswN6trvxY0lEvlQhTDF5Y2hOz4PYnHniPbMT8WjN9cjaCnFk8DjrQgryQUnuMbUA==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-cto": "3.19.1", + "@accordproject/concerto-metamodel": "3.10.1", + "@accordproject/concerto-util": "3.19.1", + "dayjs": "1.11.10", + "debug": "4.3.4", + "lorem-ipsum": "2.0.8", + "randexp": "0.5.3", + "semver": "7.5.4", + "slash": "3.0.0", + "urijs": "1.19.11", + "uuid": "9.0.1" + }, + "engines": { + "node": ">=18", + "npm": ">=10" + } + }, + "packages/markdown-transform/node_modules/@accordproject/concerto-core/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "packages/markdown-transform/node_modules/@accordproject/concerto-cto": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-cto/-/concerto-cto-3.19.1.tgz", + "integrity": "sha512-GfJsyrwNB1JhctMVwrxKJC5Ga3t24H9NrgEaK+BG+wxD5rih6JiI9H5dQBGXS9cQYymmuWeX+Me+vgWfwpJx4A==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-metamodel": "3.10.0", + "@accordproject/concerto-util": "3.19.1", + "path-browserify": "1.0.1" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + } + }, + "packages/markdown-transform/node_modules/@accordproject/concerto-cto/node_modules/@accordproject/concerto-metamodel": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.0.tgz", + "integrity": "sha512-xgBLwQGAHYeswIK3DlpvquT1NpTii9ETGQLqG4wpN3Ez/m8ymZXpTMFwS+pPu+pKDlX+T4+cZacewX60IecHmw==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-util": "3.16.9", + "@types/node": "20.7.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6" + } + }, + "packages/markdown-transform/node_modules/@accordproject/concerto-cto/node_modules/@accordproject/concerto-metamodel/node_modules/@accordproject/concerto-util": { + "version": "3.16.9", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.16.9.tgz", + "integrity": "sha512-Q62s7a0zMCZMbOIybe20mnauB5+oqkwEeKlsrvg2QrkK0q3o7XvWkr3Zot2AncSwkQC3U6+rfuGiBvdyJNJ7Hw==", + "license": "Apache-2.0", + "dependencies": { + "@supercharge/promise-pool": "1.7.0", + "axios": "1.6.8", + "colors": "1.4.0", + "debug": "4.3.4", + "json-colorizer": "2.2.2", + "slash": "3.0.0" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + } + }, + "packages/markdown-transform/node_modules/@accordproject/concerto-cto/node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "packages/markdown-transform/node_modules/@accordproject/concerto-metamodel": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-metamodel/-/concerto-metamodel-3.10.1.tgz", + "integrity": "sha512-I3yQeyBCZbJADDfYaTPw7lL2k4nZnhVDgRRv7hW/gBbHNSxX7vwFRypoteclQDTIGXbZDlV3FntBOo55rFPhjQ==", + "license": "Apache-2.0", + "dependencies": { + "@accordproject/concerto-util": "3.16.9", + "@types/node": "20.7.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6" + } + }, + "packages/markdown-transform/node_modules/@accordproject/concerto-metamodel/node_modules/@accordproject/concerto-util": { + "version": "3.16.9", + "resolved": "https://registry.npmjs.org/@accordproject/concerto-util/-/concerto-util-3.16.9.tgz", + "integrity": "sha512-Q62s7a0zMCZMbOIybe20mnauB5+oqkwEeKlsrvg2QrkK0q3o7XvWkr3Zot2AncSwkQC3U6+rfuGiBvdyJNJ7Hw==", + "license": "Apache-2.0", + "dependencies": { + "@supercharge/promise-pool": "1.7.0", + "axios": "1.6.8", + "colors": "1.4.0", + "debug": "4.3.4", + "json-colorizer": "2.2.2", + "slash": "3.0.0" + }, + "engines": { + "node": ">=16", + "npm": ">=8" + } + }, + "packages/markdown-transform/node_modules/@accordproject/concerto-metamodel/node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "packages/markdown-transform/node_modules/@babel/core": { "version": "7.17.5", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", @@ -12947,6 +13559,26 @@ "url": "https://opencollective.com/babel" } }, + "packages/markdown-transform/node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "license": "MIT" + }, + "packages/markdown-transform/node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "packages/markdown-transform/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -12955,6 +13587,19 @@ "bin": { "semver": "bin/semver.js" } + }, + "packages/markdown-transform/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } } } } diff --git a/package.json b/package.json index 02eba481..fd586a2c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "devDependencies": { - "@accordproject/concerto-core": "3.19.2", + "@accordproject/concerto-core": "3.19.5", "browserify-zlib": "^0.2.0", "colors": "1.4.0", "coveralls": "3.0.4", diff --git a/packages/markdown-template/lib/TypeVisitor.js b/packages/markdown-template/lib/TypeVisitor.js index 0b6f98c2..4bc8052b 100644 --- a/packages/markdown-template/lib/TypeVisitor.js +++ b/packages/markdown-template/lib/TypeVisitor.js @@ -267,6 +267,8 @@ class TypeVisitor { }); } break; + case 'ForeachDefinition': + case 'JoinDefinition': case 'ListBlockDefinition': { var _property4 = currentModel.getOwnProperty(thing.name); @@ -275,7 +277,7 @@ class TypeVisitor { _throwTemplateExceptionForElement('Unknown property: ' + thing.name, thing); } if (!_property4.isArray()) { - _throwTemplateExceptionForElement('List template not on an array property: ' + thing.name, thing); + _throwTemplateExceptionForElement("".concat(thing.getType(), " template not on an array property: ").concat(thing.name), thing); } var _serializer5 = parameters.templateMarkModelManager.getSerializer(); thing.decorators = processDecorators(_serializer5, _property4); @@ -293,37 +295,11 @@ class TypeVisitor { }); } break; - case 'JoinDefinition': + case 'ConditionalDefinition': { var _property5 = currentModel.getOwnProperty(thing.name); var _nextModel2; - if (!_property5) { - _throwTemplateExceptionForElement('Unknown property: ' + thing.name, thing); - } - if (!_property5.isArray()) { - _throwTemplateExceptionForElement('Join template not on an array property: ' + thing.name, thing); - } - var _serializer6 = parameters.templateMarkModelManager.getSerializer(); - thing.decorators = processDecorators(_serializer6, _property5); - if (_property5.isPrimitive()) { - _nextModel2 = _property5; - } else { - thing.elementType = _property5.getFullyQualifiedTypeName(); - _nextModel2 = parameters.introspector.getClassDeclaration(thing.elementType); - } - TypeVisitor.visitChildren(this, thing, { - templateMarkModelManager: parameters.templateMarkModelManager, - introspector: parameters.introspector, - model: _nextModel2, - kind: parameters.kind - }); - } - break; - case 'ConditionalDefinition': - { - var _property6 = currentModel.getOwnProperty(thing.name); - var _nextModel3; - if (thing.name !== 'if' && !_property6) { + if (thing.name !== 'if' && !_property5) { // hack, allow the node to have the name 'if' _throwTemplateExceptionForElement('Unknown property: ' + thing.name, thing); } @@ -331,13 +307,13 @@ class TypeVisitor { // if (property.getType() !== 'Boolean') { // _throwTemplateExceptionForElement('Conditional template not on a boolean property: ' + thing.name, thing); // } - var _serializer7 = parameters.templateMarkModelManager.getSerializer(); - thing.decorators = _property6 ? processDecorators(_serializer7, _property6) : null; - _nextModel3 = _property6; + var _serializer6 = parameters.templateMarkModelManager.getSerializer(); + thing.decorators = _property5 ? processDecorators(_serializer6, _property5) : null; + _nextModel2 = _property5; TypeVisitor.visitChildren(this, thing, { templateMarkModelManager: parameters.templateMarkModelManager, introspector: parameters.introspector, - model: _nextModel3, + model: _nextModel2, kind: parameters.kind }, 'whenTrue'); TypeVisitor.visitChildren(this, thing, { @@ -350,27 +326,27 @@ class TypeVisitor { break; case 'OptionalDefinition': { - var _property7 = currentModel.getOwnProperty(thing.name); - var _nextModel4; - if (!_property7) { + var _property6 = currentModel.getOwnProperty(thing.name); + var _nextModel3; + if (!_property6) { _throwTemplateExceptionForElement('Unknown property: ' + thing.name, thing); } - if (!_property7.isOptional()) { + if (!_property6.isOptional()) { _throwTemplateExceptionForElement('Optional template not on an optional property: ' + thing.name, thing); } - var _serializer8 = parameters.templateMarkModelManager.getSerializer(); - thing.decorators = processDecorators(_serializer8, _property7); - if (_property7.isPrimitive()) { - thing.elementType = _property7.getFullyQualifiedTypeName(); - _nextModel4 = _property7; + var _serializer7 = parameters.templateMarkModelManager.getSerializer(); + thing.decorators = processDecorators(_serializer7, _property6); + if (_property6.isPrimitive()) { + thing.elementType = _property6.getFullyQualifiedTypeName(); + _nextModel3 = _property6; } else { - thing.elementType = _property7.getFullyQualifiedTypeName(); - _nextModel4 = parameters.introspector.getClassDeclaration(thing.elementType); + thing.elementType = _property6.getFullyQualifiedTypeName(); + _nextModel3 = parameters.introspector.getClassDeclaration(thing.elementType); } TypeVisitor.visitChildren(this, thing, { templateMarkModelManager: parameters.templateMarkModelManager, introspector: parameters.introspector, - model: _nextModel4, + model: _nextModel3, kind: parameters.kind }, 'whenSome'); TypeVisitor.visitChildren(this, thing, { diff --git a/packages/markdown-template/src/TypeVisitor.js b/packages/markdown-template/src/TypeVisitor.js index f7891d05..38bdd282 100644 --- a/packages/markdown-template/src/TypeVisitor.js +++ b/packages/markdown-template/src/TypeVisitor.js @@ -259,6 +259,8 @@ class TypeVisitor { }); } break; + case 'ForeachDefinition': + case 'JoinDefinition': case 'ListBlockDefinition': { const property = currentModel.getOwnProperty(thing.name); let nextModel; @@ -266,32 +268,7 @@ class TypeVisitor { _throwTemplateExceptionForElement('Unknown property: ' + thing.name, thing); } if (!property.isArray()) { - _throwTemplateExceptionForElement('List template not on an array property: ' + thing.name, thing); - } - const serializer = parameters.templateMarkModelManager.getSerializer(); - thing.decorators = processDecorators(serializer,property); - if (property.isPrimitive()) { - nextModel = property; - } else { - thing.elementType = property.getFullyQualifiedTypeName(); - nextModel = parameters.introspector.getClassDeclaration(thing.elementType); - } - TypeVisitor.visitChildren(this, thing, { - templateMarkModelManager:parameters.templateMarkModelManager, - introspector:parameters.introspector, - model:nextModel, - kind:parameters.kind - }); - } - break; - case 'JoinDefinition': { - const property = currentModel.getOwnProperty(thing.name); - let nextModel; - if (!property) { - _throwTemplateExceptionForElement('Unknown property: ' + thing.name, thing); - } - if (!property.isArray()) { - _throwTemplateExceptionForElement('Join template not on an array property: ' + thing.name, thing); + _throwTemplateExceptionForElement(`${thing.getType()} template not on an array property: ${thing.name}`, thing); } const serializer = parameters.templateMarkModelManager.getSerializer(); thing.decorators = processDecorators(serializer,property);