From 3bd1bfa454ed497b566dc1548240a532890d8416 Mon Sep 17 00:00:00 2001 From: Belleve Date: Sun, 30 Jun 2024 20:51:05 -1000 Subject: [PATCH] share connected arc impl (#2403) --- .prettierrc.yaml | 7 + package-lock.json | 1497 +++++++++++--------- packages/font-glyphs/package.json | 2 +- packages/font/src/cleanup/glyphs.mjs | 11 +- packages/geometry-cache/src/index.mjs | 2 +- packages/geometry/package.json | 2 +- packages/geometry/src/curve-util.mjs | 6 +- packages/geometry/src/point.mjs | 8 +- packages/geometry/src/spiro-to-outline.mjs | 62 +- 9 files changed, 866 insertions(+), 731 deletions(-) diff --git a/.prettierrc.yaml b/.prettierrc.yaml index ef39a7ac7..4fc01c684 100644 --- a/.prettierrc.yaml +++ b/.prettierrc.yaml @@ -3,3 +3,10 @@ printWidth: 100 useTabs: true tabWidth: 4 arrowParens: avoid + +overrides: + - files: "package.json" + options: + parser: json + tabWidth: 2 + useTabs: false diff --git a/package-lock.json b/package-lock.json index bcd6a4f07..fbc4f2dc8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,15 +32,6 @@ "node": ">=16.0.0" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -57,9 +48,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -101,6 +92,7 @@ "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", @@ -125,9 +117,10 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true }, "node_modules/@iarna/toml": { @@ -216,41 +209,6 @@ "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, - "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 - }, - "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, - "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", @@ -266,23 +224,6 @@ "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, - "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/@msgpack/msgpack": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.8.0.tgz", @@ -327,514 +268,514 @@ } }, "node_modules/@ot-builder/bin-composite-types": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.7.3.tgz", - "integrity": "sha512-vPrWqYcs2Y8NSwH5d0G18dC2Vo0FMw4NE9jbhCN4Nhnm92Dje+pEw5WWVLcMDJvWQt3LLlcPfzvaMecwdtnbFQ==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.7.4.tgz", + "integrity": "sha512-XaSxfufTFTBG9n7NHBapyqj3m7gy4vO2O6C6F1wvd3lAmTjGrIix1oCTXbKAH6XYdqYbkrcJ637ksRgssOyj0g==", "dependencies": { - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/bin-util": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.7.3.tgz", - "integrity": "sha512-4Fuf9bkF+Y1mzGaLO7Z8B/jeryWdgJ6f7GkaBGil2+qFt3nqqESmhFIJp/4g8FheZ3YK7vmRDZcdQ9QnasVFVA==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.7.4.tgz", + "integrity": "sha512-+AMUGJBMdCAQPrSV4yA4QPi1qzS/wb8BaSsFswd6GkhTze4UWMCbiu1yjoLSV7XzMC2toCXlY2YnxT120IScJw==", "dependencies": { - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/cli-help-shower": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.7.3.tgz", - "integrity": "sha512-IGPnlcEjIASs8NkYy5al9tBOorYy6w0MPbuNh43mcfNalH31Lm8l178Bp/q1gSbGqfLaJociRQdfoRz9movX+A==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.7.4.tgz", + "integrity": "sha512-twEW4Iz93apHrvb9ZOmc3Y7K1wYGRhjfT99OvLqgH1M+os8f+f2AQIWibW18e2Vro4GcNTqwvEna+uyIkrNVbQ==", "dependencies": { - "chalk": "^4.1.1", - "tslib": "^2.0.0" + "picocolors": "^1.0.1", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/cli-proc": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.7.3.tgz", - "integrity": "sha512-a6sLK4l2mJBSlOjaz5EF5olFRNmbzbx7g4smE5mPvs4TnGAGrtrZ+/g3k+UBZFlj1felqtnY/wLybhijt7IEkQ==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.7.4.tgz", + "integrity": "sha512-tAcIgAEDYGazOTcaErZhQ9SGU4ufRL+pZe7nokce8pbzPGXfu+sQ8puJcpGRgSQ2MAoiW52RCaZOi0t2kdtZCg==", "dependencies": { - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/io-bin-font": "1.7.3", - "@ot-builder/ot": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/rectify": "1.7.3", - "@ot-builder/trace": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/io-bin-font": "1.7.4", + "@ot-builder/ot": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/rectify": "1.7.4", + "@ot-builder/trace": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/cli-shared": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.7.3.tgz", - "integrity": "sha512-u7fHnaUmS6QMVZ265KNUS9ugHBIgJ5vpVt5fQYPPd0XL1SS0YsJ/ydbyJICyFqVTGbXTRlcsd7y0woKNIVgLsw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.7.4.tgz", + "integrity": "sha512-eZocU2bGwvutOT51X21yV0FNt68JHxEdG0j+gP/vhdqoC/UZTQ06kBAAmzNy+d7yGS5nZ8NYcY/qKTKJpbqzTw==", "dependencies": { - "@ot-builder/io-bin-font": "1.7.3", - "@ot-builder/ot": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/io-bin-font": "1.7.4", + "@ot-builder/ot": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/common-impl": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.7.3.tgz", - "integrity": "sha512-mfgaL+LVHdEzhtBojDXipzJJOmbspqSYNI24q6/cqMwg/baQbC9r11uC7eVGJje3/tdDbW5uXzMeIfk0htW/mg==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.7.4.tgz", + "integrity": "sha512-lwcVk8VEKy3i2j9JxZjFJjA7QA8jbZk9ZoYKmEqcLWFEd7p+mGN9qUI0QU8joGp1w2bOfmEFm0MDTNVwz6CNuw==", "dependencies": { - "@ot-builder/prelude": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/prelude": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.7.3.tgz", - "integrity": "sha512-/dilt0VxoS/CFCwlL8MLEN9wPyrjVHBcCVesokWeOTXg6LFV33kSw7vCO+MbWlRjCdrM6fhlBgT6f+ag7U+CRw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.7.4.tgz", + "integrity": "sha512-/AKwI0jwi7t02Y3Nqe11mGIQta4hQijFDhIpwu9TcZmM1+S/8CjDRSntMQBIPQ+W2IKTNsuBH5WHWXsYAnxnyg==", "dependencies": { - "tslib": "^2.0.0" + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/io-bin-cff": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.7.3.tgz", - "integrity": "sha512-bl5aDj9E/+fTlGoc+AEVANUHCMFZsIZzWFkjgqRY2Asn1CdkoLg+rBi/DcGhC0VFC4iGvrcCiRbcsw5ARDVo8Q==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.7.4.tgz", + "integrity": "sha512-x6LdH3X6dovUaoJtLmfxxaygNrbeyftq8pcKD8eswW5XF7Lc52a8fe7yHKR+x3p7PQAUemX0qXURduTKJIym6A==", "dependencies": { - "@ot-builder/bin-composite-types": "1.7.3", - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/stat-glyphs": "1.7.3", - "@ot-builder/var-store": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-composite-types": "1.7.4", + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/stat-glyphs": "1.7.4", + "@ot-builder/var-store": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/io-bin-encoding": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.7.3.tgz", - "integrity": "sha512-98742ncQPAO5ei2sEjBVP1/CNVnVK+7ErhVZYYXAp3u3n2GWAMbFJA7pNV9e3XjdnjEjg2WNBUzCoe9IW/4b+g==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.7.4.tgz", + "integrity": "sha512-67K5TQvtkbGR3LdeHaa0MNZ7FCksssPOQ5BbFw+fsTVw/1Xjo7mFbttEPYdhD3zN+C+vsVcJgKYmFQ0mmAA1ew==", "dependencies": { - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/io-bin-sfnt": "1.7.3", - "@ot-builder/ot-encoding": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/ot-sfnt": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/io-bin-sfnt": "1.7.4", + "@ot-builder/ot-encoding": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/ot-sfnt": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/io-bin-ext-private": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.7.3.tgz", - "integrity": "sha512-3OYsTte/n2RKeMK5kQ9ghywvzREIc37SlmOqenmbgQZgtHZagxS54VXN5tVdnpCB7jEPuCeVkTBZoHtt8MpE5Q==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.7.4.tgz", + "integrity": "sha512-wnMueaaBhK2OPh8HPqIKbQt1FfRPg3rm4H7MDftgMZ7snxo+P6xCYuM9bQzfn1Lvn1JbsOg8rH93Q/HDVnjw+g==", "dependencies": { - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/io-bin-sfnt": "1.7.3", - "@ot-builder/ot-ext-private": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/ot-sfnt": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/io-bin-sfnt": "1.7.4", + "@ot-builder/ot-ext-private": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/ot-sfnt": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/io-bin-font": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.7.3.tgz", - "integrity": "sha512-rUetq6caDAjOFK+5QxIyzoAPKw45uCCqS9DtVg+BRsMY353Bb3aqYIJ/zwqk3dzjN5cwhDPAFDejW6b+Lt8rDw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.7.4.tgz", + "integrity": "sha512-5spp+1WI9uCMk0fdmLPTaEun0N1NxbCcPglsdf/PBEjWAasDaOdZoQueCx9x+xwdKaleQSnmQAFhs1v2JHusqg==", "dependencies": { - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/io-bin-encoding": "1.7.3", - "@ot-builder/io-bin-ext-private": "1.7.3", - "@ot-builder/io-bin-glyph-store": "1.7.3", - "@ot-builder/io-bin-layout": "1.7.3", - "@ot-builder/io-bin-metadata": "1.7.3", - "@ot-builder/io-bin-name": "1.7.3", - "@ot-builder/io-bin-sfnt": "1.7.3", - "@ot-builder/io-bin-vtt-private": "1.7.3", - "@ot-builder/ot": "1.7.3", - "@ot-builder/ot-encoding": "1.7.3", - "@ot-builder/ot-ext-private": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-layout": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/ot-name": "1.7.3", - "@ot-builder/ot-sfnt": "1.7.3", - "@ot-builder/ot-vtt-private": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/io-bin-encoding": "1.7.4", + "@ot-builder/io-bin-ext-private": "1.7.4", + "@ot-builder/io-bin-glyph-store": "1.7.4", + "@ot-builder/io-bin-layout": "1.7.4", + "@ot-builder/io-bin-metadata": "1.7.4", + "@ot-builder/io-bin-name": "1.7.4", + "@ot-builder/io-bin-sfnt": "1.7.4", + "@ot-builder/io-bin-vtt-private": "1.7.4", + "@ot-builder/ot": "1.7.4", + "@ot-builder/ot-encoding": "1.7.4", + "@ot-builder/ot-ext-private": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-layout": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/ot-name": "1.7.4", + "@ot-builder/ot-sfnt": "1.7.4", + "@ot-builder/ot-vtt-private": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/io-bin-glyph-store": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.7.3.tgz", - "integrity": "sha512-ZumjVaNogpdPT8RDdVLOkwOZjbBpE8I95nt17cV7acWp+f14lVfI++bC5M645XakN596kTqzX1bLujuTxcKAyg==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.7.4.tgz", + "integrity": "sha512-KYRXubuiEYdcdkf8mBKyjaDhSqdWn8ryGHAdlTtuk9NdeQZJMqa9dRFPB+eD72Oh6XYm+f4Xrk8xhXL/f6FCeA==", "dependencies": { - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/io-bin-cff": "1.7.3", - "@ot-builder/io-bin-metric": "1.7.3", - "@ot-builder/io-bin-sfnt": "1.7.3", - "@ot-builder/io-bin-ttf": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/ot-sfnt": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/stat-glyphs": "1.7.3", - "@ot-builder/var-store": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/io-bin-cff": "1.7.4", + "@ot-builder/io-bin-metric": "1.7.4", + "@ot-builder/io-bin-sfnt": "1.7.4", + "@ot-builder/io-bin-ttf": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/ot-sfnt": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/stat-glyphs": "1.7.4", + "@ot-builder/var-store": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/io-bin-layout": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.7.3.tgz", - "integrity": "sha512-SXUibQ8PHTLrFaiHKmuo6iXj4RLS/omjhemDji3flvbtXfJTPh7uwMLlREcKM/+Pwa9BFE1jfJLp30bd2I04xw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.7.4.tgz", + "integrity": "sha512-f80FpvrKs93eXg0+EJEr86nz4gIMsN/SqueH0/ulNsrhpwVULqvgSrrpcObveQrBTpybU0vVPb68l8WnzTVsQw==", "dependencies": { - "@ot-builder/bin-composite-types": "1.7.3", - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/io-bin-sfnt": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-layout": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/ot-sfnt": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/var-store": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-composite-types": "1.7.4", + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/io-bin-sfnt": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-layout": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/ot-sfnt": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/var-store": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/io-bin-metadata": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.7.3.tgz", - "integrity": "sha512-E2sxZo0OAkQVFJNPWiu5aDXHfreCTYccw919JEhlQzw1yrMnZixfXsqBcMP1vQ0q5khceehSCMa/U9n3HL7H4g==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.7.4.tgz", + "integrity": "sha512-2IYM5UPOe0ThcyF2bF4W5eZR8immdAecpE7DDh5ApBxJ8w3kaWpOy5hwtfSNeZ5M8ruB7M9ccFbRQMMtNJCMCQ==", "dependencies": { - "@ot-builder/bin-composite-types": "1.7.3", - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/io-bin-sfnt": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/ot-sfnt": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/var-store": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-composite-types": "1.7.4", + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/io-bin-sfnt": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/ot-sfnt": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/var-store": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/io-bin-metric": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.7.3.tgz", - "integrity": "sha512-DR99lpcAY40RfJtPgAYPvD0O+3ukdQ5W08oyWKCtCqKRaVmHdvsB8HXpn/1u1jFUnFFdsaHKQpSQKXbwFM06sw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.7.4.tgz", + "integrity": "sha512-/aUSlKXDRwLjzcAayf+QvLfGQodCVYTlWORoxlHrSjN+uQcRqnKGPc/shgqd1qADeO+3Slv1VNFFyIURyCxfSg==", "dependencies": { - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/var-store": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/var-store": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/io-bin-name": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.7.3.tgz", - "integrity": "sha512-LwgGiwtlsTlYiKichCEFBBFRRasn3Q/tIxPR6sL+P2bo1C90c+vhQV0qfKaG5UOO5KnFQnDAGCevW4DNSoegFg==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.7.4.tgz", + "integrity": "sha512-YCcvHOvdPpgsJHbGnE1WyZOUuUUImfXjKSAKX2PruHaE6tmly0s9rpLkx0FVPg7mIhyS4+UZ3qkk67FcgNHiiQ==", "dependencies": { - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/io-bin-sfnt": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/ot-name": "1.7.3", - "@ot-builder/ot-sfnt": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/io-bin-sfnt": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/ot-name": "1.7.4", + "@ot-builder/ot-sfnt": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", "iconv-lite": "^0.6.3", - "tslib": "^2.0.0" + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/io-bin-sfnt": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.7.3.tgz", - "integrity": "sha512-T1rxlb6w6/i9NGpBce4I8iWZdGPHP1K4cll7z6gJUNOOfK2ejeyDGwK0iiM/sCeYdpW73yEOKAsSVSa8VEA1gw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.7.4.tgz", + "integrity": "sha512-PB2d04G1SEU4jaO0BHMHGgxLklXGXNRwjENlzQobZ+VtlpgbbXAkwcLSgWUDxeQIso1PoTESALDD9TeodEgFOQ==", "dependencies": { - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/ot-sfnt": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/ot-sfnt": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/io-bin-ttf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.7.3.tgz", - "integrity": "sha512-bGoAnfUBgr7LV1Bo2DRCn4+BdbA/OlxM/NGY/n6gMllw1sZswLKCntiE67L0YkpVgGNNnt7gZcH2yRhc5ife1Q==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.7.4.tgz", + "integrity": "sha512-FG34A/H6jhvLAZy5SnjzWWqaN6KlJYyfGjnJXR5licsSYGhbH7Qqc84fYJIByqWE7M0QnHcihjFQd8awi5ZPnA==", "dependencies": { - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/stat-glyphs": "1.7.3", - "@ot-builder/var-store": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/stat-glyphs": "1.7.4", + "@ot-builder/var-store": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/io-bin-vtt-private": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-vtt-private/-/io-bin-vtt-private-1.7.3.tgz", - "integrity": "sha512-whUgnQtBXb8QnpJ3/znP6zeAtA+nxlnF9v8w5+Cwwhj0EtIaRf+s/3NsgQ4f6Tlb0I4AKXs4adATdwjZiPex/g==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-vtt-private/-/io-bin-vtt-private-1.7.4.tgz", + "integrity": "sha512-MlxloArXsecQ3VVjCxixdYXVkmZO8S8OGrQIfQawwVlKyO1tmBgDtJ0pwwMXiSf6WNQnh7AuLrVAPg6mZ9Ew0w==", "dependencies": { - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/io-bin-sfnt": "1.7.3", - "@ot-builder/io-bin-ttf": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/ot-sfnt": "1.7.3", - "@ot-builder/ot-vtt-private": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/variance": "1.7.3", + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/io-bin-sfnt": "1.7.4", + "@ot-builder/io-bin-ttf": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/ot-sfnt": "1.7.4", + "@ot-builder/ot-vtt-private": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/variance": "1.7.4", "iconv-lite": "^0.6.3", - "tslib": "^2.0.0" + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/ot": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.7.3.tgz", - "integrity": "sha512-AHNA6+dMBhOnmrp4zVrdfVbyogFQQVegM6Ewvq5WruBhh+kmGs+66ymhy3NpGSd/VHTClH5AVLdIEt/Ig0Kc2w==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.7.4.tgz", + "integrity": "sha512-TRJrEiFGStlgQB3/eJSAIJd0I5Kza1aNff8jcfmxtgUh2TPYDtHeMtpsNxzIOAVJ5RD8GlKzqTCiDVQerc17UA==", "dependencies": { - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/ot-encoding": "1.7.3", - "@ot-builder/ot-ext-private": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-layout": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/ot-name": "1.7.3", - "@ot-builder/ot-sfnt": "1.7.3", - "@ot-builder/ot-standard-glyph-namer": "1.7.3", - "@ot-builder/ot-vtt-private": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/ot-encoding": "1.7.4", + "@ot-builder/ot-ext-private": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-layout": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/ot-name": "1.7.4", + "@ot-builder/ot-sfnt": "1.7.4", + "@ot-builder/ot-standard-glyph-namer": "1.7.4", + "@ot-builder/ot-vtt-private": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/ot-encoding": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.7.3.tgz", - "integrity": "sha512-nj1z6yebG9DWIDnUd4Yqm4c8mx03WX6Dzmd15xzqpdKVy0sy1nrTBCg7ikc/zmND4XUJZMD/pHNFSU+FmlCp5g==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.7.4.tgz", + "integrity": "sha512-VCb4yPuEciEoVUcVb5rzBioGvYZtq8del1DgfOFGE1XVpfN2B+5jPqII9VLgFxjsHnjuEf4l7o6XtphVwYw+mA==", "dependencies": { - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/ot-ext-private": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.7.3.tgz", - "integrity": "sha512-Td/yoTbK1gFGVbjHxz1Pl1cwyn6chb3GbBinXnO84gLAS5rwHU9EVJTR46Nn5iUfnZzdjgjEyLMPHCYHYaI+cw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.7.4.tgz", + "integrity": "sha512-aPtn3of2pqTwkpS+tbzV76tNjwgwNCNe9M16/8z14r7GxUjwfWyj3rqw8Qbp1eilZJRpkEKLFTvOYguZdvvtYA==", "dependencies": { - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/ot-glyphs": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.7.3.tgz", - "integrity": "sha512-G9T4jToN9Uv74ouVajvGMsRRoZMeFNBSOYqjGuML/Eo2NvwTFnI6sS5RWkdlC0C6pL+m+ajZVrDNvCA6E35xNQ==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.7.4.tgz", + "integrity": "sha512-2LaJzBgZxhE0o7ohrVXYT1LCuK5d79BwXJbv5NEftrMmvmr1ppBLOiwpaVbAT8t2K8QDOr0AwuEcWU4QBGqzrw==", "dependencies": { - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/ot-layout": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.7.3.tgz", - "integrity": "sha512-UXU9ZEfDr4tEviS7eE6jWSS0MRVEAs5/bkRyw4YjzWB5qvvlt3PRH4Z9EgaxmFe7JjE1wi5pwxms7jKYT+BcHw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.7.4.tgz", + "integrity": "sha512-rYgZZRPsrzGHRujAisBOWU1vD5AaPOTWiwnFdlPJGSX+LQu5TJJM+26i63eR/45SS1BrCwUzQFTRr+/m0Xue7Q==", "dependencies": { - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/ot-metadata": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.7.3.tgz", - "integrity": "sha512-8mKLPElSjSiTZS/5aXTFTAZtH7RB6VdSFhx0DrszC/fu82f5bBGCt3BidSADleDreo7zpFM28mSmHhlOK1juxg==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.7.4.tgz", + "integrity": "sha512-yMM0xDz7bD8KduIWEezd5m/2sD6W6fGcJGANObBdmekxNcwj1gSKs2+RJL+7BPHZdB348kgWfZ8OAXHCxoO8kQ==", "dependencies": { - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/ot-name": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.7.3.tgz", - "integrity": "sha512-yfBjEoVlQ7bgNuEGQ7HAbecniaOR63hwPsQicunUD3RBO780QjjcYPhBJJ93ospiPlNeGvTRXyeuPTjY3JFY8w==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.7.4.tgz", + "integrity": "sha512-DCaQt7Cga5oDiq3sbkMLCSWkqL8OIYCcEkbouC86cO84lYwx3OmImMFJwKeFnMLuDFn+oL8IhQuE7ndMsY7mGg==", "dependencies": { - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/ot-sfnt": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.7.3.tgz", - "integrity": "sha512-D7Wzr6D3iCRgurapniXKwAT28zLuEhsBs+t2c3vi/Q8b0dkJhHpEIXIs/itAhnQi2ndK/TpVMh98Tis0cgDgOA==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.7.4.tgz", + "integrity": "sha512-qgw20yD04OXwn0QlUgrMYAsLjQt++JaivL2hjoQH+UBDRPMwYMYoUDzQL9covU9x/lvU6bESHIUbd/oPUPI12Q==", "dependencies": { - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/ot-standard-glyph-namer": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.7.3.tgz", - "integrity": "sha512-rDhw84kvx1qgeamN9LFg1g41F8hBy3J8RHRR684f8eK1OY7RMRKQpiSuBOLk1kSlgfM+rFSOALlvDwdMG49yng==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.7.4.tgz", + "integrity": "sha512-o9nB/vTR/NuMSJSkyOKG51jSd7s34m+fb41kZfZd3i9z2SLWRzjo3FwN+LRxwWhDtpR3L/bPOR8Y1KmhJYxtXw==", "dependencies": { - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/prelude": "1.7.3", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/prelude": "1.7.4", "aglfn": "^1.0.2", - "tslib": "^2.0.0" + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/ot-vtt-private": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-vtt-private/-/ot-vtt-private-1.7.3.tgz", - "integrity": "sha512-okwc3WA1pPH3RsN9xU9vSHnt85o27O70mBaKYBNNVY7q+MuIvn1akGevA71ejCkQayJEPeZpCNSPJaHZ6bb6Rg==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-vtt-private/-/ot-vtt-private-1.7.4.tgz", + "integrity": "sha512-UWgGJOVtboW6B0VKul5eK7HtSskUEZoxHzYQ0/YTKXzLmL8yqsMkIROC+5WFk+9KyzYWE81byWRJj6N46hH2Yg==", "dependencies": { - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/prelude": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.7.3.tgz", - "integrity": "sha512-J+zxpnlPn6yYZzFEiUSNSw652g03q2YvTgv8rzgWks/L5ovETzLwOrqGkAMB4GHVDjLcDCiahi4ZS2KKqqfHwA==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.7.4.tgz", + "integrity": "sha512-cCI/PbHYOpa0kaGeLuDPjjaVzQoSAK8WdrwbaIgbKTEf9e2IwNsgMdPsfvZIQTbKumJuTFQPcIbGMmJNbi2EYg==", "dependencies": { - "tslib": "^2.0.0" + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/primitive": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.7.3.tgz", - "integrity": "sha512-bwNIUAT0J0yPSZPiUP5V5QGjeByjavzhqmYxaxGwk1qJsFq5CkrqW1BxqhS/JXAH6CWlTtpMMM3UA/y4NwuNVg==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.7.4.tgz", + "integrity": "sha512-/FOpU9JozQV4uctZ7NQGHOeDIlgK86AaOrtCNhcp2drDV3vOz7qDrxerzcdKaJMAkYMC2BEENOy5aogd6IzbcQ==", "dependencies": { - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/rectify": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.7.3.tgz", - "integrity": "sha512-BEuyhQXLvWVz/9AqZj3Z0rlZicKXzMBPQuKWreJcb4lGhoio6j7NwPk92TP+GY+Kl52AO1R6s8I2R6ZodULq8Q==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.7.4.tgz", + "integrity": "sha512-gfuQIF35jIcSNAbk3wp6T2Wmyyea/cK0NhLFo2rJ57YCowjAYt8WbwUYSEr4MEEKjYgQOM0TP2brYRpTy/jnbg==", "dependencies": { - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/ot": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/ot": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/stat-glyphs": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.7.3.tgz", - "integrity": "sha512-FtOQCdbEUgu1/En74xAK+AThtiJQte0E+VM28DqJb3rCMCcdcWJhs7N4Rh6BJlwalgKvGTrDMTx/9kNXcrkB+A==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.7.4.tgz", + "integrity": "sha512-RJf4CGhEgRbb1GBBdsx+cMZcUH+QFVp+y0iHq76iP5v9DBMC+A4I9cW9ZxODsdNsdhbtTh0bhQMt1ENQfnY+2Q==", "dependencies": { - "@ot-builder/bin-composite-types": "1.7.3", - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-composite-types": "1.7.4", + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/trace": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.7.3.tgz", - "integrity": "sha512-3LvmaNwGMnvfOpg/g4FyqWHJd7+QfUS6Gp9upFVaj5UpKho/0+WWWSJ7GHWhU5dooaIHxPG+sqRfM0zczMUjEQ==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.7.4.tgz", + "integrity": "sha512-G2cBpg4uqG1uxG3dnX3isqwDGI0ok+g5ebeMiGh7BbgfSZEB7POU7kMOtKmnJaN889mWgr4e8i3yKgfqo9cX7w==", "dependencies": { - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/ot": "1.7.3", - "@ot-builder/ot-glyphs": "1.7.3", - "@ot-builder/ot-metadata": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/ot": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.4", + "@ot-builder/ot-metadata": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/var-store": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.7.3.tgz", - "integrity": "sha512-R7AbHMGXW+7bQ6JudbXzx1/BGxfCgM99fBWWuLkMJxWcga1oMviOAomP3LEyec2mew302uyQpsrtMNNnuf/rQQ==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.7.4.tgz", + "integrity": "sha512-PZByTR7HKA5LPIOnuJjLoMnv1ciAQtt1AEVq8I5JiVAtlq9LFTf6H3zquLLDYT9F9giH8bUf/CD2WuRub8ZM9Q==", "dependencies": { - "@ot-builder/bin-composite-types": "1.7.3", - "@ot-builder/bin-util": "1.7.3", - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/errors": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/variance": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-composite-types": "1.7.4", + "@ot-builder/bin-util": "1.7.4", + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/errors": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/variance": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@ot-builder/variance": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.7.3.tgz", - "integrity": "sha512-T4fJVsqb3RzMV21eCRCZbVq/bZgZgye2voiJ+gSgyczXsIX/uUV/gdCnyqyRVijH2D2LdbAipxjCMAy+xjMLaw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.7.4.tgz", + "integrity": "sha512-9DZKjKKE+PbpvUVT4hb3qUHOd3wuKQmoeybs8udcPus2zfHNGF3FjFBnrm/tk81Qyg1/nR03cE7r4pek6xDANA==", "dependencies": { - "@ot-builder/bin-composite-types": "1.7.3", - "@ot-builder/common-impl": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/bin-composite-types": "1.7.4", + "@ot-builder/common-impl": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/@pkgjs/parseargs": { @@ -873,9 +814,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -966,34 +907,16 @@ } }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.filter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", - "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -1004,15 +927,16 @@ } }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", - "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", + "es-abstract": "^1.23.2", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" }, "engines": { @@ -1218,6 +1142,43 @@ "node": ">=12" } }, + "node_modules/cliui/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 + }, + "node_modules/cliui/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, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/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, + "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/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1383,10 +1344,61 @@ "node": ">= 8" } }, + "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==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -1496,23 +1508,27 @@ "dev": true }, "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==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, "node_modules/es-abstract": { - "version": "1.22.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", - "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", "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", "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", @@ -1523,10 +1539,11 @@ "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.1", + "hasown": "^2.0.2", "internal-slot": "^1.0.7", "is-array-buffer": "^3.0.4", "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", @@ -1537,17 +1554,17 @@ "object-keys": "^1.1.1", "object.assign": "^4.1.5", "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.0", + "safe-array-concat": "^1.1.2", "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "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.5", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -1556,12 +1573,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -1600,6 +1611,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", @@ -2055,9 +2078,9 @@ } }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", "dev": true, "dependencies": { "cross-spawn": "^7.0.0", @@ -2070,18 +2093,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -2180,22 +2191,23 @@ } }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", + "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2223,9 +2235,9 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -2253,12 +2265,13 @@ } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -2290,9 +2303,9 @@ "dev": true }, "node_modules/harfbuzzjs": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/harfbuzzjs/-/harfbuzzjs-0.3.4.tgz", - "integrity": "sha512-0TH7j8TIqCJB6RVpcJ7IyhPpHRq1JlyBiSOcNRAWpuN6S1HVSBmNtdt+G0jND1Y2qLnh70nXZ2R2zYqO57y92Q==" + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/harfbuzzjs/-/harfbuzzjs-0.3.5.tgz", + "integrity": "sha512-SbNxmVAyhlUJTHdaxgK5S6Uqy4mXIu80Vl6KDn8d+ctPAF6W3DY2yehB4BwIC24I/Tk5HGLjaQkyny5gY0r41Q==" }, "node_modules/has-bigints": { "version": "1.0.2", @@ -2428,6 +2441,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "dependencies": { "once": "^1.3.0", @@ -2521,12 +2535,30 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2757,9 +2789,9 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -2876,14 +2908,12 @@ "dev": true }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", + "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", + "dev": true, "engines": { - "node": ">=10" + "node": "14 || >=16.14" } }, "node_modules/memoizeasync": { @@ -2930,9 +2960,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -2971,9 +3001,9 @@ "optional": true }, "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -2982,9 +3012,12 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3030,14 +3063,15 @@ } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -3047,27 +3081,28 @@ } }, "node_modules/object.groupby": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", - "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "dependencies": { - "array.prototype.filter": "^1.0.3", - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.0.0" + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -3100,46 +3135,46 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/ot-builder": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/ot-builder/-/ot-builder-1.7.3.tgz", - "integrity": "sha512-iLAahaMCkpNJ2nGl8/ryBQPOzcvIT3oSqG0u3gJwpAeMzBgIrLrnzt0TXX+7X/+ZFQvqljPkknklpmLLMXnXLA==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/ot-builder/-/ot-builder-1.7.4.tgz", + "integrity": "sha512-HX4wj6p1cZvKzwJA190aWYRLsMbm7CSYhQ9XN4r3HpktaFQ3k0R6DqqYa/yPFFQEXG3PUc67Z5v8W1+qB05g0g==", "dependencies": { - "@ot-builder/cli-proc": "1.7.3", - "@ot-builder/io-bin-font": "1.7.3", - "@ot-builder/ot": "1.7.3", - "@ot-builder/prelude": "1.7.3", - "@ot-builder/primitive": "1.7.3", - "@ot-builder/rectify": "1.7.3", - "@ot-builder/trace": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/cli-proc": "1.7.4", + "@ot-builder/io-bin-font": "1.7.4", + "@ot-builder/ot": "1.7.4", + "@ot-builder/prelude": "1.7.4", + "@ot-builder/primitive": "1.7.4", + "@ot-builder/rectify": "1.7.4", + "@ot-builder/trace": "1.7.4", + "tslib": "^2.6.3" } }, "node_modules/otb-ttc-bundle": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.7.3.tgz", - "integrity": "sha512-OHH/XGPYptGoh9Z2wlKq1ukJoIrxM5SLQGi2KANgMgMtiUxIWwjAZHNxtupRT3PJe6V80ZxKfNETgxiXFOXABA==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.7.4.tgz", + "integrity": "sha512-i2npID5R5QFGqmICy+03D7Qx9X59RzfxiHFKBvTdT8MVBV1uWjNIBYuFJEvQWGKdm7pouml+D9oKrZic+mroBA==", "dependencies": { - "@ot-builder/cli-help-shower": "1.7.3", - "@ot-builder/cli-shared": "1.7.3", - "ot-builder": "1.7.3", - "tslib": "^2.0.0" + "@ot-builder/cli-help-shower": "1.7.4", + "@ot-builder/cli-shared": "1.7.4", + "ot-builder": "1.7.4", + "tslib": "^2.6.3" }, "bin": { "otb-ttc-bundle": "bin/otb-ttc-bundle" @@ -3175,6 +3210,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -3245,30 +3286,21 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/patrisika": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/patrisika/-/patrisika-0.26.0.tgz", @@ -3295,10 +3327,15 @@ "node": ">=0.10" } }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, "node_modules/piscina": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz", - "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.6.1.tgz", + "integrity": "sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==", "optionalDependencies": { "nice-napi": "^1.0.2" } @@ -3321,9 +3358,9 @@ } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -3436,6 +3473,11 @@ "node": ">=8" } }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, "node_modules/resumer": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", @@ -3459,6 +3501,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { "glob": "^7.1.3" @@ -3474,6 +3517,7 @@ "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, "dependencies": { "fs.realpath": "^1.0.0", @@ -3562,12 +3606,9 @@ } }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "bin": { "semver": "bin/semver.js" }, @@ -3656,9 +3697,16 @@ } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/source-map": { "version": "0.7.4", @@ -3694,17 +3742,20 @@ "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==" }, "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==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { @@ -3722,15 +3773,49 @@ "node": ">=8" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "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 + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/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, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -3740,28 +3825,31 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3918,9 +4006,9 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" }, "node_modules/type-check": { "version": "0.4.0", @@ -4000,9 +4088,9 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", - "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "dependencies": { "call-bind": "^1.0.7", @@ -4028,9 +4116,9 @@ } }, "node_modules/typo-geom": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/typo-geom/-/typo-geom-0.15.1.tgz", - "integrity": "sha512-8pXibsBO14lwAl9a/MOC+ObmelJMDUe6LCqi+gucEbgA8GPBkK49vF00YUyS88kcGLuchNhe40EsuFW4qFsb8A==", + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/typo-geom/-/typo-geom-0.16.1.tgz", + "integrity": "sha512-sLVzRyasp1VQDdhBaH7cmhCRVs2+HTVuiTKJgO7u7fDR7kWSca4wVz/zAVifYYIgbbzF88cS+PUAtQjtnGOntQ==", "dependencies": { "clipper-lib": "^6.4.2", "tslib": "^2.6.2" @@ -4186,6 +4274,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wordwrapjs": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", @@ -4207,17 +4304,17 @@ } }, "node_modules/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==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -4241,6 +4338,65 @@ "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 + }, + "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, + "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": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/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, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -4264,11 +4420,6 @@ "node": ">=10" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -4296,6 +4447,26 @@ "node": ">=12" } }, + "node_modules/yargs/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 + }, + "node_modules/yargs/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, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -4334,7 +4505,7 @@ "@iosevka/geometry-cache": "30.3.1", "@iosevka/glyph": "30.3.1", "@iosevka/util": "30.3.1", - "typo-geom": "^0.15.1" + "typo-geom": "^0.16.1" } }, "packages/font-kits": { @@ -4361,7 +4532,7 @@ "dependencies": { "@iosevka/util": "30.3.1", "spiro": "^3.0.1", - "typo-geom": "^0.15.1" + "typo-geom": "^0.16.1" } }, "packages/geometry-cache": { diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index 1fce12ca2..3322ec1ca 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -13,6 +13,6 @@ "@iosevka/geometry-cache": "30.3.1", "@iosevka/glyph": "30.3.1", "@iosevka/util": "30.3.1", - "typo-geom": "^0.15.1" + "typo-geom": "^0.16.1" } } diff --git a/packages/font/src/cleanup/glyphs.mjs b/packages/font/src/cleanup/glyphs.mjs index ea2f6d8b8..58f7c3ed8 100644 --- a/packages/font/src/cleanup/glyphs.mjs +++ b/packages/font/src/cleanup/glyphs.mjs @@ -5,20 +5,20 @@ import { Transform } from "@iosevka/geometry/transform"; export function finalizeGlyphs(cache, para, glyphStore) { const skew = Math.tan(((para.slopeAngle || 0) / 180) * Math.PI); - regulateGlyphStore(cache, skew, glyphStore); + regulateGlyphStore(cache, para, skew, glyphStore); return glyphStore; } /////////////////////////////////////////////////////////////////////////////////////////////////// -function regulateGlyphStore(cache, skew, glyphStore) { +function regulateGlyphStore(cache, para, skew, glyphStore) { for (const g of glyphStore.glyphs()) { if (!(g.geometry.measureComplexity() & Geom.CPLX_NON_EMPTY)) continue; - if (!g.geometry.toReferences()) flattenSimpleGlyph(cache, skew, g); + if (!g.geometry.toReferences()) flattenSimpleGlyph(cache, para, skew, g); } } -function flattenSimpleGlyph(cache, skew, g) { +function flattenSimpleGlyph(cache, para, skew, g) { try { let gSimplified; const needsTransform = g.gizmo ? !Transform.isTranslate(g.gizmo) : skew != 0; @@ -38,6 +38,9 @@ function flattenSimpleGlyph(cache, skew, g) { g.includeContours(cs); } catch (e) { console.error("Detected broken geometry when processing", g._m_identifier); + console.error( + `${para.naming.family} ${para.naming.weight} ${para.naming.width} ${para.naming.slope}`, + ); g.clearGeometry(); } } diff --git a/packages/geometry-cache/src/index.mjs b/packages/geometry-cache/src/index.mjs index 29e88562d..5a28872be 100644 --- a/packages/geometry-cache/src/index.mjs +++ b/packages/geometry-cache/src/index.mjs @@ -5,7 +5,7 @@ import zlib from "zlib"; import * as CurveUtil from "@iosevka/geometry/curve-util"; import { encode, decode } from "@msgpack/msgpack"; -const Edition = 42; +const Edition = 43; const MAX_AGE = 16; class GfEntry { constructor(age, value) { diff --git a/packages/geometry/package.json b/packages/geometry/package.json index 70f826c22..123d83a3f 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -15,6 +15,6 @@ "dependencies": { "@iosevka/util": "30.3.1", "spiro": "^3.0.1", - "typo-geom": "^0.15.1" + "typo-geom": "^0.16.1" } } diff --git a/packages/geometry/src/curve-util.mjs b/packages/geometry/src/curve-util.mjs index 41c8d3954..d6ef72e03 100644 --- a/packages/geometry/src/curve-util.mjs +++ b/packages/geometry/src/curve-util.mjs @@ -41,12 +41,12 @@ function convertContourToArcs(contour) { const zc = z; let zf = contour[(j + 1) % contour.length]; const zfIsCorner = zf.type === Point.Type.contour; - if (!zfIsCorner) zf = Point.from(Point.Type.Corner, zc).mix(0.5, zf); + if (!zfIsCorner) zf = Point.from(Point.Type.Corner, zc).mix(zf, 0.5); newContour.push( new TypoGeom.Arcs.Bez3( z0, - Point.from(Point.Type.CubicStart, z0).mix(2 / 3, zc), - Point.from(Point.Type.CubicEnd, zf).mix(2 / 3, zc), + Point.from(Point.Type.CubicStart, z0).mix(zc, 2 / 3), + Point.from(Point.Type.CubicEnd, zf).mix(zc, 2 / 3), Point.from(Point.Type.Corner, zf), ), ); diff --git a/packages/geometry/src/point.mjs b/packages/geometry/src/point.mjs index e08d36e8d..15238e0a4 100644 --- a/packages/geometry/src/point.mjs +++ b/packages/geometry/src/point.mjs @@ -33,12 +33,8 @@ export class Point { addScale(scale, z2) { return new Point(this.type, this.x + scale * z2.x, this.y + scale * z2.y); } - mix(scale, z2) { - return new Point( - this.type, - this.x + scale * (z2.x - this.x), - this.y + scale * (z2.y - this.y), - ); + mix(z2, t) { + return new Point(this.type, mix(this.x, z2.x, t), mix(this.y, z2.y, t)); } scale(t) { return new Point(this.type, t * this.x, t * this.y); diff --git a/packages/geometry/src/spiro-to-outline.mjs b/packages/geometry/src/spiro-to-outline.mjs index 530315504..93fd78db3 100644 --- a/packages/geometry/src/spiro-to-outline.mjs +++ b/packages/geometry/src/spiro-to-outline.mjs @@ -54,63 +54,21 @@ class SpiroSimplifier { if (arc.arcLength > 1e-6) this.combinedArcs.push(arc); } else { const combined = new SpiroSequenceArc(this.m_ongoingArcs); - if (combined.totalLength > 1e-6) this.combinedArcs.push(combined); + if (!combined.isEmpty() && combined.totalLength > 1e-6) { + this.combinedArcs.push(combined); + } } this.m_ongoingArcs = []; } } -class SpiroSequenceArc { +const SpiroMeasurer = { + measureLength(a) { + return a.arcLength; + }, +}; +class SpiroSequenceArc extends TypoGeom.Arcs.CombinedArc { constructor(segments) { - // Filter out zero-length segments - let rear = 0; - for (let j = 0; j < segments.length; j++) { - if (segments[j].arcLength > 1e-6) { - segments[rear++] = segments[j]; - } - } - segments.length = rear; - - // Compute total length and stops - let totalLength = 0; - let stops = []; - for (let j = 0; j < segments.length; j++) { - stops[j] = totalLength; - totalLength += segments[j].arcLength; - } - for (let j = 0; j < segments.length; j++) { - stops[j] = stops[j] / totalLength; - } - this.totalLength = totalLength; - this.m_segments = segments; - this.m_stops = stops; - } - - eval(t) { - const j = segTSearch(this.m_stops, t); - const tBefore = this.m_stops[j]; - const tNext = j < this.m_stops.length - 1 ? this.m_stops[j + 1] : 1; - const tRelative = (t - tBefore) / (tNext - tBefore); - return this.m_segments[j].eval(tRelative); - } - - derivative(t) { - const j = segTSearch(this.m_stops, t); - const tBefore = this.m_stops[j]; - const tNext = j < this.m_stops.length - 1 ? this.m_stops[j + 1] : 1; - const tRelative = (t - tBefore) / (tNext - tBefore); - return Vec2.scaleFrom(1 / (tNext - tBefore), this.m_segments[j].derivative(tRelative)); + super(SpiroMeasurer, segments); } } - -function segTSearch(stops, t) { - if (t < 0) return 0; - let l = 0, - r = stops.length; - while (l < r) { - let m = (l + r) >>> 1; - if (stops[m] > t) r = m; - else l = m + 1; - } - return r - 1; -}