diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ef9f52546300..d54d2690800d1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1121,15 +1121,15 @@ importers: projects/js-packages/number-formatters: dependencies: - '@babel/runtime': - specifier: ^7 - version: 7.26.10 '@wordpress/date': - specifier: 5.19.0 - version: 5.19.0 + specifier: ^5.19.0 + version: 5.21.0 debug: - specifier: 4.4.0 + specifier: ^4.4.0 version: 4.4.0 + tslib: + specifier: ^2.5.0 + version: 2.5.0 devDependencies: '@babel/core': specifier: 7.26.10 @@ -1140,6 +1140,9 @@ importers: '@jest/globals': specifier: 29.4.3 version: 29.4.3 + '@knighted/duel': + specifier: 2.1.4 + version: 2.1.4(typescript@5.8.2) '@types/jest': specifier: 29.5.14 version: 29.5.14 @@ -6849,6 +6852,27 @@ packages: '@keyv/serialize@1.0.3': resolution: {integrity: sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==} + '@knighted/duel@2.1.4': + resolution: {integrity: sha512-oURnS4zx/ScX6+hdUw0PE0g5SGbDp/l7wttpafVrq4j6hDp5j/My+TrvvaBEwumZc/Qb4CacJQf285v+s2WjuA==} + engines: {node: '>=20.11.0'} + hasBin: true + peerDependencies: + typescript: '>=5.5.0-dev || >=5.6.0-dev || >=5.7.0-dev || next' + + '@knighted/module@1.0.0-alpha.8': + resolution: {integrity: sha512-hwyGKOm+rQtVfiYcVIlypS9SZb7Peb6wPHhpc609ja8J0brXq4dV/1MYjEnwzetWuPc2cYJdSssui2RAn3oexA==} + engines: {node: '>=20.11.0'} + + '@knighted/specifier@2.0.4': + resolution: {integrity: sha512-6hKveg3xPPlabzURaHeUwPW2V+0HrvCR+86/RY3uUm7yO3igF8u3LFw7/cfy585g0CMlZvCf0zyz4JiEDzZP2g==} + engines: {node: '>=20'} + + '@knighted/walk@1.0.0-rc.1': + resolution: {integrity: sha512-JUKPz/GeK+u7u28OqQTCyUosKGCen/jqgCInUZBGpRmcK0Vzg+K8XhgOC6liQaNeLCslKSBO0m1GeTUIenJ6FQ==} + engines: {node: '>=20'} + peerDependencies: + oxc-parser: '>=0.61.2' + '@mapbox/geojson-rewind@0.5.2': resolution: {integrity: sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==} hasBin: true @@ -7009,6 +7033,130 @@ packages: '@octokit/types@13.10.0': resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} + '@oxc-parser/binding-darwin-arm64@0.64.0': + resolution: {integrity: sha512-FfmLZWrt5rsG+wzruv0xfYci1fE/GQ/HnUCmB+j3keU4SfDxkxSIGUTphxdcE8S4ISoLelgeVZiE8QDGRhmSoQ==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + + '@oxc-parser/binding-darwin-arm64@0.66.0': + resolution: {integrity: sha512-vu0/j+qQTIguTGxSF7PLnB+2DR8w1GLX4JMk9dlndS2AobkzNuZYAaIfh9XuXKi1Y5SFnWdmCE8bvaqldDYdJg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + + '@oxc-parser/binding-darwin-x64@0.64.0': + resolution: {integrity: sha512-FFbtYNdlRw6d/KcfSxqOAJAI4evijC+i+PHQkpB8JJGr+mPzQEPKwVa8vh2Qe/lcspaQs6IrR2GRpJ+5UvciRw==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + + '@oxc-parser/binding-darwin-x64@0.66.0': + resolution: {integrity: sha512-zjStITzysMHDvBmznt4DpxzYQP4p6cBAkKUNqnYCP48uGuTcj5OxGzUayHaVAmeMGa0QovOJNOSZstJtX0OHWw==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + + '@oxc-parser/binding-linux-arm-gnueabihf@0.64.0': + resolution: {integrity: sha512-u113yYpeTW0rQBp6Lld2PvdEMzVQmTq8n2T4WDb7UNGQFCMzoURCKgahkIZCStph4+zHAFU5uKwG5waQaswCyw==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm-gnueabihf@0.66.0': + resolution: {integrity: sha512-6H5CLALgpGX2q5X7iA9xYrSO+zgKH9bszCa4Yb8atyEOLglTebBjhqKY+aeSLJih+Yta7Nfe/nrjmGT1coQyJQ==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm64-gnu@0.64.0': + resolution: {integrity: sha512-cqWgdJcXJ2u2Rcjd/+4mY10DPISZtKosgyL7eMZwZdCNJD8q2ohS57pk6IbCmopF55QAh9/Py8rajblKbFCJBg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + '@oxc-parser/binding-linux-arm64-gnu@0.66.0': + resolution: {integrity: sha512-uf6q2fOCVZKdw9OYoPQSYt1DMHKXSYV/ESHRaew8knTti5b8k5x9ulCDKVmS3nNEBw78t5gaWHpJJhBIkOy/vQ==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + '@oxc-parser/binding-linux-arm64-musl@0.64.0': + resolution: {integrity: sha512-b7Ma+CDlkK+UIU/Zr8Ydo+q3A9ouWUhV8PzWcnfOxiOwK+JEaoz5N02ixAPK8qvO+IKqzP00HzxPD8tUto8GcA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + '@oxc-parser/binding-linux-arm64-musl@0.66.0': + resolution: {integrity: sha512-qpExxhkSyel+7ptl5ZMhKY0Pba0ida7QvyqDmn1UemDXkT5/Zehfv02VCd3Qy+xWSZt5LXWqSypA1UWmTnrgZQ==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + '@oxc-parser/binding-linux-x64-gnu@0.64.0': + resolution: {integrity: sha512-7o/qfZNZ0kt1o5vtqUz6nQkV6tuCGor4+gOmqtrb2TtnAo3qxYwPXZVjd9LKv39Z+Nfpqz/2cnR+GIqUNqv34A==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + '@oxc-parser/binding-linux-x64-gnu@0.66.0': + resolution: {integrity: sha512-ltiZA35r80I+dicRswuwBzggJ4wOcx/Nyh/2tNgiZZ1Ds21zu96De5yWspfvh4VLioJJtHkYLfdHyjuWadZdlQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + '@oxc-parser/binding-linux-x64-musl@0.64.0': + resolution: {integrity: sha512-nuL0rqoWgvO11pP7g5FYdTDsjX93mt8ZFtUaOL4HMVkvRAx3XiKltJBYXXWiI2kySbHRC/XHJftAKWEgGhcXgg==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + '@oxc-parser/binding-linux-x64-musl@0.66.0': + resolution: {integrity: sha512-LeQYFU/BDZIFutjBPh6VE6Q0ldXF58/Z8W8+h7ihRPRs+BBzwZq8GeLeILK+lUe/hqGAdfGJWKjsRAzsGW1zMA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + '@oxc-parser/binding-wasm32-wasi@0.64.0': + resolution: {integrity: sha512-iZ5LeOPDo0gCISzcq1JKo3HGqXwuQDTgHVPBUs+UFdCL9WJ9DmNkXXQPLVYEyyI/YFXg15y7Rv2L+FEvpvYa+w==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-parser/binding-wasm32-wasi@0.66.0': + resolution: {integrity: sha512-4N9C5Ml79IiKCLnTzG/lppTbsXWyo4pEuH5zOMctS6K6KZF/k9XSukY1IEeMiblpqrnUHmVmsm1l3SuPP/50Bw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-parser/binding-win32-arm64-msvc@0.64.0': + resolution: {integrity: sha512-9kWLwYOT9sCVrFL3Egpt4+viAYtYOwmstGoy/CPikC0fxEpB760qln8u+MfZpbrH0Df2XgEdAUTqiwnRwcp+uA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + + '@oxc-parser/binding-win32-arm64-msvc@0.66.0': + resolution: {integrity: sha512-v3B+wUB4s+JlxSUj7tAFF1qOcl8wXY2/m5KQfzU5noqjZ03JdmC4A/CPaHbQkudlQFBrRq1IAAarNGnYfV7DXw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + + '@oxc-parser/binding-win32-x64-msvc@0.64.0': + resolution: {integrity: sha512-EHQglaBx4LpNw9BMA65aM36isTpuAdWxGbAUH7w55GYIGjVG7hIsMx/MuOrJXsmOBVmRokoYNYLN7X5aTd5TmQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + + '@oxc-parser/binding-win32-x64-msvc@0.66.0': + resolution: {integrity: sha512-J8HaFgP17qNyCLMnnqzGeI4NYZDcXDEECj6tMaJTafPJc+ooPF0vkEJhp6TrTOkg09rvf2EKVOkLO2C3OMLKrA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + + '@oxc-project/types@0.64.0': + resolution: {integrity: sha512-B0dxuEZFV6M4tXjPFwDSaED5/J55YUhODBaF09xNFNRrEyzQLKZuhKXAw1xYK8bO4K8Jn1d21TZfei3kAIE8dA==} + + '@oxc-project/types@0.66.0': + resolution: {integrity: sha512-KF5Wlo2KzQ+jmuCtrGISZoUfdHom7qHavNfPLW2KkeYJfYMGwtiia8KjwtsvNJ49qRiXImOCkPeVPd4bMlbR7w==} + '@paulirish/trace_engine@0.0.50': resolution: {integrity: sha512-ktkbISnr0T9dkOxtnEadjYsbArMcvX2Wp8zwgyIP6KW0eOk2Oe2s49BY4v0qdE3uQdVv/GDdQ6MnoIFuYNJ9pg==} @@ -8167,6 +8315,9 @@ packages: '@types/node@22.14.0': resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==} + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -8725,10 +8876,6 @@ packages: peerDependencies: react: ^18.0.0 - '@wordpress/date@5.19.0': - resolution: {integrity: sha512-EZ31S8za/SRpUhgLSbKePaWIFuuLy5YzU0k9pdbxw3bc6qjC8Yfl72Envw0oMqgBbylYNGJa+hfeNEBWzDBKMA==} - engines: {node: '>=18.12.0', npm: '>=8.19.2'} - '@wordpress/date@5.21.0': resolution: {integrity: sha512-8Ve5sSaaOOPpkIU7qppXBZZ8ZR1sVUIy1s+MXYkSPRyKYKj5dpIT00n+Znj97FV4B1riaWnLp+hKV3p0vZ28ew==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -11033,6 +11180,10 @@ packages: find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + find-up-simple@1.0.1: + resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} + engines: {node: '>=18'} + find-up@3.0.0: resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} engines: {node: '>=6'} @@ -11265,6 +11416,11 @@ packages: engines: {node: 20 || >=22} hasBin: true + glob@11.0.2: + resolution: {integrity: sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==} + engines: {node: 20 || >=22} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -11419,6 +11575,10 @@ packages: hookified@1.8.1: resolution: {integrity: sha512-GrO2l93P8xCWBSTBX9l2BxI78VU/MAAYag+pG8curS3aBGy0++ZlxrQ7PdUOUVMbn5BwkGb6+eRrnf43ipnFEA==} + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + hpq@1.4.0: resolution: {integrity: sha512-ycJQMRaRPBcfnoT1gS5I1XCvbbw9KO94Y0vkwksuOjcJMqNZtb03MF2tCItLI2mQbkZWSSeFinoRDPmjzv4tKg==} @@ -11583,6 +11743,10 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + index-to-position@1.1.0: + resolution: {integrity: sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==} + engines: {node: '>=18'} + inflight@1.0.6: resolution: {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. @@ -12817,6 +12981,10 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + node-module-type@1.0.2: + resolution: {integrity: sha512-5UZUtgz2txICZxHjwODRUzU316wFl8F9P1nU8ri7KwFW3FNCHVtXEeRed2CBdKyiijrNNl2hpoUSKtjXASn29w==} + engines: {node: '>=20.11.0'} + node-preload@0.2.1: resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} engines: {node: '>=8'} @@ -12824,6 +12992,10 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -12958,6 +13130,14 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + oxc-parser@0.64.0: + resolution: {integrity: sha512-T5/h7Iv3kwUwTaOwOLz2yTwz2LsUfdu5IXTmZuMEDYL2Bp/dxGdxQZHaz8lc4bUBU9Swnb+caioKk4FLBT7prg==} + engines: {node: '>=14.0.0'} + + oxc-parser@0.66.0: + resolution: {integrity: sha512-uNkhp3ZueIqwU/Hm1ccDl/ZuAKAEhVlEj3W9sC6aD66ArxjO0xA6RZ9w85XJ2rugAt4g6R4tWeGvpJOSG3jfKg==} + engines: {node: '>=14.0.0'} + p-debounce@4.0.0: resolution: {integrity: sha512-4Ispi9I9qYGO4lueiLDhe4q4iK5ERK8reLsuzH6BPaXn53EGaua8H66PXIFGrW897hwjXp+pVLrm/DLxN0RF0A==} engines: {node: '>=12'} @@ -13054,6 +13234,10 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + engines: {node: '>=18'} + parse-passwd@1.0.0: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} @@ -13821,6 +14005,14 @@ packages: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} + read-package-up@11.0.0: + resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} + engines: {node: '>=18'} + + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} + readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -14516,9 +14708,15 @@ packages: spawnd@5.0.0: resolution: {integrity: sha512-28+AJr82moMVWolQvlAIv3JcYDkjkFTEmfDc503wxrF5l2rQ3dFz6DpbXp3kD4zmgGGldfM4xM4v1sFj/ZaIOA==} + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + spdx-exceptions@2.5.0: resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@4.0.0: resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} @@ -15233,6 +15431,10 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -15390,6 +15592,9 @@ packages: resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validator@13.15.0: resolution: {integrity: sha512-36B2ryl4+oL5QxZ3AzD0t5SsMNGvTtQHpjgFO5tbNxfXbMFkY822ktCDe1MnlqV3301QQI9SLHDNJokDI+Z9pA==} engines: {node: '>= 0.10'} @@ -17528,6 +17733,46 @@ snapshots: dependencies: buffer: 6.0.3 + '@knighted/duel@2.1.4(typescript@5.8.2)': + dependencies: + '@knighted/module': 1.0.0-alpha.8 + '@knighted/specifier': 2.0.4 + find-up: 6.3.0 + get-tsconfig: 4.10.0 + glob: 11.0.2 + read-package-up: 11.0.0 + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@knighted/module@1.0.0-alpha.8': + dependencies: + '@babel/parser': 7.27.0 + '@babel/traverse': 7.27.0 + '@knighted/specifier': 2.0.4 + '@knighted/walk': 1.0.0-rc.1(oxc-parser@0.66.0) + magic-string: 0.30.17 + node-module-type: 1.0.2 + oxc-parser: 0.66.0 + transitivePeerDependencies: + - supports-color + + '@knighted/specifier@2.0.4': + dependencies: + '@knighted/walk': 1.0.0-rc.1(oxc-parser@0.64.0) + magic-string: 0.30.17 + oxc-parser: 0.64.0 + + '@knighted/walk@1.0.0-rc.1(oxc-parser@0.64.0)': + dependencies: + estree-walker: 3.0.3 + oxc-parser: 0.64.0 + + '@knighted/walk@1.0.0-rc.1(oxc-parser@0.66.0)': + dependencies: + estree-walker: 3.0.3 + oxc-parser: 0.66.0 + '@mapbox/geojson-rewind@0.5.2': dependencies: get-stream: 6.0.1 @@ -17702,6 +17947,74 @@ snapshots: dependencies: '@octokit/openapi-types': 24.2.0 + '@oxc-parser/binding-darwin-arm64@0.64.0': + optional: true + + '@oxc-parser/binding-darwin-arm64@0.66.0': + optional: true + + '@oxc-parser/binding-darwin-x64@0.64.0': + optional: true + + '@oxc-parser/binding-darwin-x64@0.66.0': + optional: true + + '@oxc-parser/binding-linux-arm-gnueabihf@0.64.0': + optional: true + + '@oxc-parser/binding-linux-arm-gnueabihf@0.66.0': + optional: true + + '@oxc-parser/binding-linux-arm64-gnu@0.64.0': + optional: true + + '@oxc-parser/binding-linux-arm64-gnu@0.66.0': + optional: true + + '@oxc-parser/binding-linux-arm64-musl@0.64.0': + optional: true + + '@oxc-parser/binding-linux-arm64-musl@0.66.0': + optional: true + + '@oxc-parser/binding-linux-x64-gnu@0.64.0': + optional: true + + '@oxc-parser/binding-linux-x64-gnu@0.66.0': + optional: true + + '@oxc-parser/binding-linux-x64-musl@0.64.0': + optional: true + + '@oxc-parser/binding-linux-x64-musl@0.66.0': + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.64.0': + dependencies: + '@napi-rs/wasm-runtime': 0.2.9 + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.66.0': + dependencies: + '@napi-rs/wasm-runtime': 0.2.9 + optional: true + + '@oxc-parser/binding-win32-arm64-msvc@0.64.0': + optional: true + + '@oxc-parser/binding-win32-arm64-msvc@0.66.0': + optional: true + + '@oxc-parser/binding-win32-x64-msvc@0.64.0': + optional: true + + '@oxc-parser/binding-win32-x64-msvc@0.66.0': + optional: true + + '@oxc-project/types@0.64.0': {} + + '@oxc-project/types@0.66.0': {} + '@paulirish/trace_engine@0.0.50': dependencies: third-party-web: 0.26.5 @@ -19214,6 +19527,8 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/normalize-package-data@2.4.4': {} + '@types/parse-json@4.0.2': {} '@types/prop-types@15.7.14': {} @@ -20776,13 +21091,6 @@ snapshots: - '@types/react' - supports-color - '@wordpress/date@5.19.0': - dependencies: - '@babel/runtime': 7.26.10 - '@wordpress/deprecated': 4.21.0 - moment: 2.30.1 - moment-timezone: 0.5.48 - '@wordpress/date@5.21.0': dependencies: '@babel/runtime': 7.26.10 @@ -24274,6 +24582,8 @@ snapshots: find-root@1.1.0: {} + find-up-simple@1.0.1: {} + find-up@3.0.0: dependencies: locate-path: 3.0.0 @@ -24527,6 +24837,15 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 2.0.0 + glob@11.0.2: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.0 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -24690,6 +25009,10 @@ snapshots: hookified@1.8.1: {} + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + hpq@1.4.0: {} html-encoding-sniffer@3.0.0: @@ -24867,6 +25190,8 @@ snapshots: indent-string@4.0.0: {} + index-to-position@1.1.0: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -26551,12 +26876,20 @@ snapshots: node-int64@0.4.0: {} + node-module-type@1.0.2: {} + node-preload@0.2.1: dependencies: process-on-spawn: 1.1.0 node-releases@2.0.19: {} + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.6.3 + validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} normalize-range@0.1.2: {} @@ -26759,6 +27092,36 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 + oxc-parser@0.64.0: + dependencies: + '@oxc-project/types': 0.64.0 + optionalDependencies: + '@oxc-parser/binding-darwin-arm64': 0.64.0 + '@oxc-parser/binding-darwin-x64': 0.64.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.64.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.64.0 + '@oxc-parser/binding-linux-arm64-musl': 0.64.0 + '@oxc-parser/binding-linux-x64-gnu': 0.64.0 + '@oxc-parser/binding-linux-x64-musl': 0.64.0 + '@oxc-parser/binding-wasm32-wasi': 0.64.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.64.0 + '@oxc-parser/binding-win32-x64-msvc': 0.64.0 + + oxc-parser@0.66.0: + dependencies: + '@oxc-project/types': 0.66.0 + optionalDependencies: + '@oxc-parser/binding-darwin-arm64': 0.66.0 + '@oxc-parser/binding-darwin-x64': 0.66.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.66.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.66.0 + '@oxc-parser/binding-linux-arm64-musl': 0.66.0 + '@oxc-parser/binding-linux-x64-gnu': 0.66.0 + '@oxc-parser/binding-linux-x64-musl': 0.66.0 + '@oxc-parser/binding-wasm32-wasi': 0.66.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.66.0 + '@oxc-parser/binding-win32-x64-msvc': 0.66.0 + p-debounce@4.0.0: {} p-finally@1.0.0: {} @@ -26865,6 +27228,12 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse-json@8.3.0: + dependencies: + '@babel/code-frame': 7.26.2 + index-to-position: 1.1.0 + type-fest: 4.39.1 + parse-passwd@1.0.0: {} parse5-htmlparser2-tree-adapter@6.0.1: @@ -27641,6 +28010,20 @@ snapshots: dependencies: loose-envify: 1.4.0 + read-package-up@11.0.0: + dependencies: + find-up-simple: 1.0.1 + read-pkg: 9.0.1 + type-fest: 4.39.1 + + read-pkg@9.0.1: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 6.0.2 + parse-json: 8.3.0 + type-fest: 4.39.1 + unicorn-magic: 0.1.0 + readable-stream@3.6.2: dependencies: inherits: 2.0.4 @@ -28368,8 +28751,18 @@ snapshots: transitivePeerDependencies: - supports-color + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.21 + spdx-exceptions@2.5.0: {} + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.21 + spdx-expression-parse@4.0.0: dependencies: spdx-exceptions: 2.5.0 @@ -29183,6 +29576,8 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} + unicorn-magic@0.1.0: {} + unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -29375,6 +29770,11 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + validator@13.15.0: {} varint@6.0.0: {} diff --git a/projects/js-packages/number-formatters/changelog/build-cjs-with-typescript b/projects/js-packages/number-formatters/changelog/build-cjs-with-typescript new file mode 100644 index 0000000000000..c774fdcfbedfb --- /dev/null +++ b/projects/js-packages/number-formatters/changelog/build-cjs-with-typescript @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Build CJS and ESM versions with TypeScript diff --git a/projects/js-packages/number-formatters/package.json b/projects/js-packages/number-formatters/package.json index b2e85accf60b6..4a9163dec6dad 100644 --- a/projects/js-packages/number-formatters/package.json +++ b/projects/js-packages/number-formatters/package.json @@ -14,30 +14,36 @@ "url": "https://github.com/Automattic/jetpack/labels/[JS Package] Number Formatters" }, "dependencies": { - "@babel/runtime": "^7", - "@wordpress/date": "5.19.0", - "debug": "4.4.0" + "@wordpress/date": "^5.19.0", + "debug": "^4.4.0", + "tslib": "^2.5.0" }, "devDependencies": { "@babel/core": "7.26.10", "@babel/preset-react": "7.26.3", "@jest/globals": "29.4.3", + "@knighted/duel": "2.1.4", "@types/jest": "29.5.14", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "typescript": "5.8.2" }, + "type": "module", + "main": "./dist/cjs/index.cjs", + "module": "./dist/esm/index.js", + "types": "./dist/types/index.d.ts", "exports": { ".": { "jetpack:src": "./src/index.ts", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" + "types": "./dist/types/index.d.ts", + "import": "./dist/esm/index.js", + "require": "./dist/cjs/index.cjs" } }, "scripts": { - "build": "pnpm run clean && pnpm run compile-ts", - "clean": "rm -rf dist/", - "compile-ts": "tsc --pretty", + "build": "pnpm run clean && pnpm run build:ts", + "build:ts": "duel --dirs", + "clean": "rm -rf dist", "test": "NODE_OPTIONS=--experimental-vm-modules jest", "test-coverage": "pnpm run test --coverage", "typecheck": "tsc --noEmit" diff --git a/projects/js-packages/number-formatters/src/index.ts b/projects/js-packages/number-formatters/src/index.ts index 22ce52d0b2894..be5de7ca8fc42 100644 --- a/projects/js-packages/number-formatters/src/index.ts +++ b/projects/js-packages/number-formatters/src/index.ts @@ -13,7 +13,7 @@ export const { export { createNumberFormatters }; -export * from './types.ts'; +export type * from './types.ts'; // We can optionally export the formatters individually if we want to use them in a more granular way. // export { numberFormat, numberFormatCompact, numberFormatCurrency, getCurrencyObject }; diff --git a/projects/js-packages/number-formatters/src/test/create-number-formatters-locale.test.ts b/projects/js-packages/number-formatters/src/test/create-number-formatters-locale.test.ts index 183ee871bdeb4..2bcf46fdcf3b7 100644 --- a/projects/js-packages/number-formatters/src/test/create-number-formatters-locale.test.ts +++ b/projects/js-packages/number-formatters/src/test/create-number-formatters-locale.test.ts @@ -32,7 +32,7 @@ await jest.unstable_mockModule( '@wordpress/date', () => ( { } ) ); // Now dynamically import all dependencies after mocks are set up -const { default: createNumberFormatters } = await import( '../create-number-formatters' ); +const { default: createNumberFormatters } = await import( '../create-number-formatters.ts' ); describe( 'createNumberFormatters() - locale resolution/fallback', () => { const numberFormatters = createNumberFormatters(); diff --git a/projects/js-packages/number-formatters/src/test/create-number-formatters.test.ts b/projects/js-packages/number-formatters/src/test/create-number-formatters.test.ts index 1d2840b4c013a..9adea9410ddd0 100644 --- a/projects/js-packages/number-formatters/src/test/create-number-formatters.test.ts +++ b/projects/js-packages/number-formatters/src/test/create-number-formatters.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, jest } from '@jest/globals'; -import createNumberFormatters from '../create-number-formatters'; +import createNumberFormatters from '../create-number-formatters.ts'; type IntlType = typeof Intl & { NumberFormat: typeof Intl.NumberFormat; diff --git a/projects/js-packages/number-formatters/tsconfig.json b/projects/js-packages/number-formatters/tsconfig.json index 4c8aca233054d..171e28d21cb70 100644 --- a/projects/js-packages/number-formatters/tsconfig.json +++ b/projects/js-packages/number-formatters/tsconfig.json @@ -1,10 +1,11 @@ { "extends": "jetpack-js-tools/tsconfig.tsc.json", - "include": [ "src/index.ts" ], "compilerOptions": { - "typeRoots": [ "./node_modules/@types/" ], - "sourceMap": false, - "outDir": "./dist/", - "target": "es2022" - } + "outDir": "dist", + "declarationDir": "dist/types", + "typeRoots": [ "./node_modules/@types/", "src/*" ], + "target": "ES2024", + "importHelpers": true // Import helpers from `tslib` instead of inlining them + }, + "include": [ "./src/index.ts" ] }