diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 928baecde..00d9834bb 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -289,17 +289,6 @@ jobs: - windows-latest-8-cores shardIndex: [1, 2, 3, 4] shardTotal: [4] - # Disable macos and windows tests on hourly e2e tests since we only care - # about server side changes. - # Technique from https://github.com/joaomcteixeira/python-project-skeleton/pull/31/files - isScheduled: - - ${{ github.event_name == 'schedule' }} - exclude: - - os: namespace-profile-macos-8-cores - isScheduled: true - - os: windows-latest-8-cores - isScheduled: true - # TODO: add ref here for main and latest release tag runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 000000000..4aae0f234 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npm run fmt diff --git a/.husky/pre-push b/.husky/pre-push deleted file mode 100755 index 6ca0c7637..000000000 --- a/.husky/pre-push +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npm run fmt-check diff --git a/docs/kcl/getNextAdjacentEdge.md b/docs/kcl/getNextAdjacentEdge.md index 764de41ed..f09e1bff0 100644 --- a/docs/kcl/getNextAdjacentEdge.md +++ b/docs/kcl/getNextAdjacentEdge.md @@ -9,7 +9,7 @@ Get the next adjacent edge to the edge given. ```js -getNextAdjacentEdge(tag: TagIdentifier): Uuid +getNextAdjacentEdge(edge: TagIdentifier): Uuid ``` @@ -17,7 +17,7 @@ getNextAdjacentEdge(tag: TagIdentifier): Uuid | Name | Type | Description | Required | |----------|------|-------------|----------| -| [`tag`](/docs/kcl/types/tag) | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | | Yes | +| `edge` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The tag of the edge you want to find the next adjacent edge of. | Yes | ### Returns diff --git a/docs/kcl/getOppositeEdge.md b/docs/kcl/getOppositeEdge.md index 8ff4b784a..f879fdf13 100644 --- a/docs/kcl/getOppositeEdge.md +++ b/docs/kcl/getOppositeEdge.md @@ -9,7 +9,7 @@ Get the opposite edge to the edge given. ```js -getOppositeEdge(tag: TagIdentifier): Uuid +getOppositeEdge(edge: TagIdentifier): Uuid ``` @@ -17,7 +17,7 @@ getOppositeEdge(tag: TagIdentifier): Uuid | Name | Type | Description | Required | |----------|------|-------------|----------| -| [`tag`](/docs/kcl/types/tag) | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | | Yes | +| `edge` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The tag of the edge you want to find the opposite edge of. | Yes | ### Returns diff --git a/docs/kcl/getPreviousAdjacentEdge.md b/docs/kcl/getPreviousAdjacentEdge.md index a2ad65740..75d28bcb6 100644 --- a/docs/kcl/getPreviousAdjacentEdge.md +++ b/docs/kcl/getPreviousAdjacentEdge.md @@ -9,7 +9,7 @@ Get the previous adjacent edge to the edge given. ```js -getPreviousAdjacentEdge(tag: TagIdentifier): Uuid +getPreviousAdjacentEdge(edge: TagIdentifier): Uuid ``` @@ -17,7 +17,7 @@ getPreviousAdjacentEdge(tag: TagIdentifier): Uuid | Name | Type | Description | Required | |----------|------|-------------|----------| -| [`tag`](/docs/kcl/types/tag) | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | | Yes | +| `edge` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | The tag of the edge you want to find the previous adjacent edge of. | Yes | ### Returns diff --git a/docs/kcl/hole.md b/docs/kcl/hole.md index 45cd795e2..7dd404d78 100644 --- a/docs/kcl/hole.md +++ b/docs/kcl/hole.md @@ -62,6 +62,6 @@ exampleSketch = startSketchOn(-XZ) example = extrude(exampleSketch, length = 1) ``` -![Rendered example of hole 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAD1a0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddX/atdcc82DAc6cOfNgnumaa655MP8G9913360809mzZ28FuO+++27lqquuuuqqq6666qr/rahcddVVV1111VVXXfU/yjXXXPNggDNnzjz4mmuuefCZM2ceBHDNNdc8+JprrnnwmTNnHnzNNdc8mBfi4sWLPNDu7i7P7fjx4zw/J06c4Pm57777bgU4e/bsrffdd9+tAPfdd9+tZ8+efcZ99913K8A//MM//DZXXXXVVVddddVVV/1Pgh70oAdx1VVXXXXVVVddddV/rWuuuebBZ86cefCLvdiLvRbAi7/4i782wIu92Iu9Ns908eJFAHZ3d7l48SIXL14EYHd3F4CLFy+yu7vLxYsX+c9w4sQJ7nfs2DEATpw4AcBDH/pQAI4fP86JEyc4ceIE97vvvvtuBTh79uyt9913363/8A//8Dv33XffrWfPnr31vvvuu5Wrrrrqqquuuuqqq/4roQc96EFcddVVV1111VVXXfWf45prrnnwmTNnHvxiL/Zir3XNNdc8+Jprrnnwi73Yi702wMWLFwF4+tOfzsWLFwF4+tOfzu7uLhcvXuR/Mts8txMnTgBw/PhxTpw4wYkTJzhx4gTHjx/noQ99KAD33XffrQD/8A//8Nv/8A//8DsA9913363/8A//8NtcddVVV1111VVXXfWfAT3oQQ/iqquuuuqqq6666qp/v2uuuebBL/ZiL/baZ86cedCLv/iLv/aLvdiLvTbAxYsXAfjLv/xLAJ7+9Kfz9Kc/nf9LbPMvOXHiBMePH+fEiRM89KEP5fjx45w4cYITJ05w33333Xr27Nlb77vvvlv/4R/+4Xfuu+++W//hH/7ht7nqqquuuuqqq6666t8LPehBD+Kqq6666qqrrrrqqn+da6655sFnzpx58Iu92Iu91ou/+Iu/9ou92Iu9NsDFixd5+tOfzsWLF3na057G05/+dCTx/4lt/jVOnDjB8ePHOXHiBA95yEN46EMfyokTJ7jvvvtuPXv27K333XffrT/6oz/6Offdd9+tXHXVVVddddVVV131r4Ue9KAHcdVVV1111VVXXXXVC3fNNdc8+MyZMw9+sRd7sdd68Rd/8dd+sRd7sde+ePEiAH/5l3/J0572NJ7+9KdzP0n8V5HEi8o2/5Vs869lmxMnTnDixAlOnDjBQx7yEF7u5V4OgPvuu+/Wf/iHf/jtf/iHf/id3/qt3/purrrqqquuuuqqq676l6AHPehBXHXVVVddddVVV131vF7sxV7sta+55poHv87rvM57vdiLvdhrX7x4kac//elcvHiRpz3taTz96U/nuUniP5Ik/qvZ5j+abf41bPPcTpw4wUMf+lAe8pCH8HIv93IA3Hfffbf+wz/8w2//1m/91vf8wz/8w29z1VVXXXXVVVddddVzQw960IO46qqrrrrqqquuugquueaaB7/2a7/2e734i7/4a7/Yi73YawM87WlP4+lPfzp/+Zd/ycWLF3l+JPEfQRL/U9nmP4ptXlS2eUFOnDjBQx/6UB7ykIfwci/3ctx33323nj179tbf+q3f+p777rvv1n/4h3/4ba666qqrrrrqqquuQg960IO46qqrrrrqqquu+v/qmmuuefBrv/Zrv9frvM7rvPc111zz4IsXL/KXf/mXPO1pT+PpT386L4wk/j0k8b+Zbf49bPOiss2/5Pjx47zcy70cD33oQ3noQx/Kfffdd+s//MM//PZv/dZvfc8//MM//DZXXXXVVVddddVV/z+hBz3oQVx11VVXXXXVVVf9f3LNNdc8+LVf+7Xf653e6Z0+G+BpT3saT3va0/jN3/xNXhSS+LeSxP9Ftvm3ss2LyjYvjG0ATpw4wUMf+lBe7uVejoc+9KHcd999t/7DP/zDb//Wb/3W9/zDP/zDb3PVVVddddVVV131/wd60IMexFVXXXXVVVddddX/dddcc82DX/u1X/u93umd3umzAZ72tKfxtKc9jd/4jd9AEi8KSfxbSOL/E9v8W9jmRWGbf4lt7nfixAke+tCH8tCHPpSXe7mX47777rv1H/7hH377t37rt77nH/7hH36bq6666qqrrrrqqv/b0IMe9CCuuuqqq6666qqr/i+65pprHvzar/3a7/VO7/ROnw3wtKc9jac97Wn8xm/8BgCSeFFI4l9LEv9VJPGiss1/Jdv8a9nmRWGbF8Y2z+3EiRM89KEP5aEPfSgv93Ivx3333Xfrb/3Wb333P/zDP/zOP/zDP/w2V1111VVXXXXVVf/3oAc96EFcddVVV1111VVX/V9xzTXXPPi1X/u13+t1Xud13vuaa6558MWLF/mLv/gLfuM3foMHksS/RBL/GpL4jyaJ/w62+Y9mm38N27wobPOC2OYFOX78OA996EN5+Zd/eR760Idy33333fpbv/Vb3/2jP/qjn8NVV1111VVXXXXV/x3oQQ96EFddddVVV1111VX/211zzTUPfu3Xfu33eqd3eqfPvnjxIn/xF3/Bb/zGb/DcJPEv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zb+Vbf4tbPNfxTb/WrZ5UT3jGc/gqv9fdnd3+c8gif9MknhRSeK/gyT+JZL4l0jigSTxojh16hQAv/Vbv/Xd9913361cddVVV1111VUPROWqq6666qqrrnoeP/qjP/o5r/M6r/Pe1157Lddeey333nsvL4htJPFvZRtJ/FvYRhL/09lGEv/djo6OuN+DHvQgHvSgB3HV/x/Hjx/nfsvlkv8vJPEfSRL/XSTxQJLY2tri5MmTAPzoj/7o53DVVVddddVVVz03KlddddVVV1111fO47777bv2t3/qt736d13md937Ywx7GvffeywtjG0n8W9lGEv+VbCOJfy3bSOK/gm0k8a9hG0m8ILfeeisPfvCDeau3eiuu+v/pzjvv5KoXjST+LSTxL5HEf4Trr78egN/6rd/6nvvuu+9Wrrrqqquuuuqq50blqquuuuqqq656vn70R3/0c17ndV7nvR/2sIfx1Kc+lXvvvZf/iWwjif/pbCOJ/06Hh4c87nGP4z+CJP4zSOK/iyT+q0ji30MS/1ZPfepTWS6X/E8jif8qknhukvjvJIkHksS/ZGtri62tLQB+9Ed/9LO56qqrrrrqqqueHypXXXXVVVddddXzdd999936W7/1W9/9Oq/zOu/9Ui/1Uvzqr/4qL4xtJPFvZRtJ/FeyjST+tWwjif8KtpHEv4ZtJPH8HB4e8md/9mc8N0n8a0jiX0MSLypJvCgk8aKQxItCEi8KSfxLJPHCSOJfIokXRBIvjCReEEn8V5DE8yOJfy9J/E8hiX+JJP69JPFAkrj++usB+K3f+q3vvu+++27lqquuuuqqq656fgiuuuqqq6666qoX6Ed/9Ec/B+Daa6/l2muv5X8q2/xvYJur/uPY5kVhm/9pbPPvYZur/utJ4j+CJP69tra22NraAuBHf/RHP4errrrqqquuuuoFIbjqqquuuuqqq16g++6779av//qvfx+Al3qpl+JfYpt/D9v8W9nm38I2/xa2+a9im38t2/xr2OZfwzb/19jmqv+9JPE/gST+tSTxQJJ4IEk8t+uvvx6AH/mRH/ns++6771auuuqqq6666qoXhOCqq6666qqrrnqh/uEf/uG377vvvluvvfZarr32Wq7697HN/0e2eVHZ5qqr/iNI4t9KEv8RJPEf7dSpU2xtbQHwoz/6o5/DVVddddVVV131whBcddVV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8Nw2NjaQxMbGBgCLxQKAjY0NNjc3sc3GxgYbGxu8KO67775bz549e+t9991363333XfrP/zDP/zO2bNnb73vvvtu5aqrrrrqqquuuuqq/yzoQQ96EFddddVVV1111VVX/de75pprHgxw5syZB11zzTUPebEXe7HXArjmmmsefObMmQdfc801D+a/2dHRERsbG7wo7rvvvlvPnj1763333XfrfffddyvAP/zDP/w2oH/4h3/4ba666qqrrrrqqquu+u+AHvSgB3HVVVddddVVV1111f9M11xzzYMBzpw58+BrrrnmQYAAzpw586BrrrnmwQDXXHPNg3mmM2fOPJhnuuaaax7Mi+i+++67ledy9uzZWwHuu+++WwHuu+++WwHOnj37jPvuu+/pgM6ePXvrfffddytXXXXVVVddddVVV/1PhR70oAdx1VVXXXXVVVddddVVV1111VVXXXXVVVf9n0Tlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+r+Ed3qpDfhDxrJgAAAABJRU5ErkJggg==) +![Rendered example of hole 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAD0gUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddX/atdcc82DAc6cOfNgnumaa655MP8G9913360809mzZ28FuO+++27lqquuuuqqq6666qr/rahcddVVV1111VVXXfU/yjXXXPNggDNnzjz4mmuuefCZM2ceBPDiL/7irw1w5syZB19zzTUP5gW4ePEiL8ju7i7P7fjx49zvxIkT3O++++679Zprrnkwz3TffffdCnD27Nlb77vvvlsB7rvvvlvPnj37jPvuu+9WgH/4h3/4ba666qqrrrrqqquu+p8EPehBD+Kqq6666qqrrrrqqv9a11xzzYPPnDnz4Bd7sRd7LYAXf/EXf22AF3uxF3ttnulJT3rSrWfOnHnw7u4uFy9e5OLFiwDs7u5y8eJF7re7u8vFixf5z3DixAkAjh07xokTJwA4ceIEJ06cAOD48eMAnDhxghMnTgBw33333Qpw9uzZW++7775b/+Ef/uF37rvvvlvPnj1763333XcrV1111VVXXXXVVVf9V0IPetCDuOqqq6666qqrrrrqP8c111zz4DNnzjz4xV7sxV7rmmuuefA111zz4Bd7sRd7bYCLFy8C8PSnP52LFy+yu7vLxYsX2d3d5eLFi/xPZpvnduLECQCOHz/OiRMneOhDHwrA8ePHeehDHwrAfffddyvAb/3Wb303wNmzZ5/xD//wD79933333cpVV1111VVXXXXVVf8Z0IMe9CCuuuqqq6666qqrrvr3u+aaax78Yi/2Yq995syZB734i7/4a7/Yi73YawNcvHiRixcv8vSnPx2Apz/96Tz96U/n/xLb/EtOnDjB8ePHOXHiBA996EM5fvw4D33oQwG47777bj179uyt9913363/8A//8Dv33Xffrf/wD//w21x11VVXXXXVVVdd9e+FHvSgB3HVVVddddVVV1111b/ONddc8+AzZ848+MVe7MVe68Vf/MVf+8Ve7MVeG+DixYtcvHiRpz/96TztaU/j6U9/OpL4/8Q2/xonTpzg+PHjnDhxgoc85CGcOHGChz70odx33323nj179tb77rvv1t/6rd/6nn/4h3/4ba666qqrrrrqqquu+tdCD3rQg7jqqquuuuqqq6666oW75pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhrX7x4kYsXL/L0pz+dpz3taTz96U/nfpL4rySJF4Vt/ivZ5l/LNidOnOChD30ox48f56EPfSgPfehDAbjvvvtu/Yd/+Iff/od/+Iff+a3f+q3v5qqrrrrqqquuuuqqfwl60IMexFVXXXXVVVddddVVz+uaa6558Gu/9mu/14u/+Iu/9ou9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7/Iu7/LaAP/wD//wO1x11VVXXXXVVf+foAc96EFcddVVV1111VX/f3zu537ub11//fWv/UM/9EM89alPRRIAkrifJO4nifudPHmSl3u5l+MN3uANAFitVjzjGc/gnnvu4blJ4gWRxL9EEi+MJP4lkviXSOJFJYl/DUn8e0jiv4Ik/iexzX812/xHss2/l20Azpw5w80338xsNuPixYv82Z/9Gb/6q78KgG3uZxsA29zPNgC2OXnyJB/xER/B3/zN33z313/9178PV1111VVXXXXV/xfoQQ96EFddddVVV1111f9911xzzYM//MM//Luuv/761/78z/98ACQBIIn7SeJ+krjfwx72MD7ogz6I+916663ceuutSOKFkcQLIol/iSReGEn8SyTxopDEi0oS/1qS+PeSxFX/Prb5j2abfy/bvCCz2YwzZ85w8803A3DhwgX+/M//nF/91V/FNvezDYBtAGwDYBuAEydO8CZv8iY85CEPufVDPuRDHsJVV1111VVXXfX/AeX48eNcddVVV1111VX/t11zzTUP/vAP//Dvms1mr/0VX/EVAEjifpIAkMT9JAFw4sQJ3vu935s3eIM3AGB3d5e//uu/5ty5czyQJF4QSbwwkviXSOJfIol/iSReFJL415DEv4Uk/qNI4qorbPOfyTb/EWzzomitsbe3x9mzZ9nc3OT48eM87GEP42EPexhPfepTWS6XPJAkACQBIAmA1WrFHXfcQUQc/4AP+ID3/rM/+7OfOTw83OWqq6666qqrrvq/jHL8+HGuuuqqq6666qr/u6655poHf9M3fdPTb7311gd/53d+J5IAkASAJO4nCQBJALzBG7wB7/Ve78WJEydYrVbcfvvtPPGJT2SaJl4QSbwgknhhJPEvkcS/RBIvCkm8KCTxryWJfytJ/GeRxP8FtvmvYpv/SLb5t2qtcfbsWQCOHTvGyZMnefEXf3EWiwVPfepTkcRzkwSAJABWqxXnz59H0vF3e7d3e+s/+7M/+5nDw8Ndrrrqqquuuuqq/6sox48f56qrrrrqqquu+r/pmmuuefA3fdM3Pf2Xf/mX+emf/mkkASAJAEncTxL3O3nyJO/1Xu/Fy7/8ywOwu7vLn/3Zn7G7u8v9JPHCSOIFkcQLI4kXhST+JZJ4UUjiRSWJfw1J/HtJ4r+TJP4z2OZ/Etv8R7PNfxTbAOzt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s2c5PDzk7NmzvDCSeFFI4l8iiX+JJP4lknhhJPHCSOIFkcQLI4kXRBKLxYJTp06xWCw4deoUp06d4rndd999t549e/bWv//7v//t3/7t3/6e++6771auuuqqq6666qqrrnog9KAHPYirrrrqqquuuuqqq164a6655sEv9mIv9tov9mIv9lrXXHPNg1/sxV7stXkuh4eHHB0dcXh4yNmzZzk8POTs2bPcTxIvCkn8SyTxL5HEv0QSL4wkXhhJvCCSeGEkAbBYLAC4+eabATh16hSnTp3i+fmHf/iH3/77v//73wb47d/+7e+57777buWqq6666qqrrrrqqhcGPehBD+Kqq6666qqrrrrqqn+da6655sFnzpx58DXXXPPgF3uxF3utF3uxF3vta6655sE8H4eHhxwdHXF4eMjZs2c5Ojri8PCQo6Mjnh9JvCgk8cJI4l8iiRdGEi+MJF4QSTzQxsYGi8WCU6dOAXD69GlOnTrFC3Lffffdevbs2Vv//u///rf/4R/+4Xf+4R/+4be56qqrrrrqqquuuupfCz3oQQ/iqquuuuqqq6666qp/v2uuuebBZ86cefA111zz4Bd7sRd7rWuuuebBL/ZiL/bavACHh4cAHB0dcXh4yNHREYeHhyyXSw4PDzk6OuKFkcS/RBIvjCReGEm8MJK438bGBovFgo2NDTY2NgA4ffo0i8WCjY0NXpj77rvv1n/4h3/47fvuu+/Wf/iHf/idf/iHf/htrrrqqquuuuqqq676j4Ae9KAHcdVVV1111VVXXXXVf55rrrnmwWfOnHnwNddc8+AXe7EXe61rrrnmwWfOnHnwNddc82D+BUdHRwAcHh5ydHTE/Q4PD1kulwAcHh5yv6OjI+53dHSEJF4YSQBsbGzw3DY2NpDExsYGAIvFAoCNjQ02NzexzcbGBhsbG7wo7rvvvlvPnj1769///d//NsA//MM//M7Zs2dvve+++27lqquuuuqqq6666qr/LOhBD3oQV1111VVXXXXVVVf917vmmmseDHDmzJkHXXPNNQ95sRd7sdcCuOaaax585syZB19zzTUP5n+R++6779azZ8/eet99991633333QrwD//wD78N6B/+4R9+m6uuuuqqq6666qqr/jugBz3oQVx11VVXXXXVVVdd9T/TNddc82CAM2fOPPiaa655EKAzZ848COCaa655MMA111zzYJ7pzJkzD+aZrrnmmgfzIvqHf/iH3z5z5syDeYCzZ8/eCnDffffdCnDffffdCnD27NlnAL7vvvuecfbs2Vvvu+++W7nqqquuuuqqq6666n8q9KAHPYirrrrqqquuuuqqq6666qqrrrrqqquuuur/JCpXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwIVTzJ69BM+9gAAAABJRU5ErkJggg==) diff --git a/docs/kcl/hollow.md b/docs/kcl/hollow.md index 11dcff38d..e39a6f118 100644 --- a/docs/kcl/hollow.md +++ b/docs/kcl/hollow.md @@ -56,7 +56,7 @@ firstSketch = startSketchOn(-XZ) |> hollow(thickness = 0.5) ``` -![Rendered example of hollow 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAGOVElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXfVvcM011zyYq6666qqrrrrqv9R99913K1ddddVVV131r0Plqquuuuqqq/4VXuzFXuy13+md3umzXuzFXuy1ueqqq6666qqr/kv9wz/8w2///d///W//6I/+6Odw1VVXXXXVVS8aKlddddVVV131Irjmmmse/OEf/uHf9WIv9mKvffHiRX7913+d3d1drrrqqquu+o9hm6uusM1Vz98bvMEbvPaLvdiLvfY111zz4B/90R/9nPvuu+9WrrrqqquuuuqFQw960IO46qqrrrrqqhfmxV7sxV77cz/3c38L4Nd//df5jd/4Df6/kcRVV131n882V/3nsc3/R7b5v+L48eO8/Mu/PG/wBm/Afffdd+tv/dZvffeP/uiPfg5XXXXVVVdd9YKhBz3oQVx11VVXXXXV83PNNdc8+MM//MO/68Ve7MVe++LFi/z4j/84T3va0/jPJomrrrrqqv8JbHPVi8Y2/9fZ5n+KEydO8EEf9EGcOHGC3/qt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u+++W7nqqquuuuqq/xmoXHXVVVddddX/ID/yIz/y2e/0Tu/02TfddBM33XQTV1111VVX/feyzf1sc9W/7Ed/9Ec/h6uuuuqqq676nwM96EEP4qqrrrrqqqv+J3md13md9z5z5syDuOqqq6666qr/Zc6ePfuM3/qt3/purrrqqquuuup/DvSgBz2Iq6666qqrrrrqqquuuuqqq6666qqrrrrq/yQqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q/hH5zO+trUAnR4AAAAASUVORK5CYII=) +![Rendered example of hollow 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAGOV0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXfVvcM011zyYq6666qqrrrrqv9R99913K1ddddVVV131r0Plqquuuuqqq/4VXuzFXuy13+md3umzXuzFXuy1ueqqq6666qqr/kv9wz/8w2///d///W//6I/+6Odw1VVXXXXVVS8aKlddddVVV131Irjmmmse/OEf/uHf9WIv9mKvffHiRX7913+d3d1drrrqqquu+o9hm6uusM1Vz98bvMEbvPaLvdiLvfY111zz4B/90R/9nPvuu+9WrrrqqquuuuqFQw960IO46qqrrrrqqhfmxV7sxV77cz/3c38L4Nd//df5jd/4Df6/kcRVV131n882V/3nsc3/R7b5v+L48eO8/Mu/PG/wBm/Afffdd+tv/dZvffeP/uiPfg5XXXXVVVdd9YKhBz3oQVx11VVXXXXV83PNNdc8+MM//MO/68Ve7MVe++LFi/z4j/84T3va0/jPJomrrrrqqv8JbHPVi8Y2/9fZ5n+KEydO8EEf9EGcOHGC3/qt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AnDffffdylVXXXXVVVf9z0Dlqquuuuqqq/4H+ZEf+ZHPfqd3eqfPvummm7jpppu46qqrrrrqv5dt7mebq/5lP/qjP/o5XHXVVVddddX/HOhBD3oQV1111VVXXfU/yeu8zuu895kzZx7EVVddddVVV/0vc/bs2Wf81m/91ndz1VVXXXXVVf9zoAc96EFcddVVV1111VVXXXXVVVddddVVV1111VX/J1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fxT8CjYfBs9KWKasAAAAASUVORK5CYII=) ```js // Hollow a sketch on face object. @@ -80,6 +80,6 @@ thing2 = startSketchOn(case, face = END) hollow(case, thickness = 0.5) ``` -![Rendered example of hollow 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEgKElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuup/lWuuuebBAGfOnHnwNddc8+AzZ848iGe65pprHgxwzTXXPJgHOHPmzIN5gLNnz9565syZBwOcPXv2Vp7pvvvuu5Vnuu+++249e/bsMwDuu+++WwHOnj1763333XcrV1111VVXXXXVVVf9b4Ee9KAHcdVVV1111VVXXXXV/xzXXHPNg8+cOfPgF3uxF3stgGuuuebB11xzzYNf7MVe7LV5IXZ3d7nfxYsXAdjd3eVFcfz4ce534sQJbHPixAlekPvuu+/Ws2fP3nrffffdCvAP//APv3Pffffdevbs2Vvvu+++W7nqqquuuuqqq6666n8K9KAHPYirrrrqqquuuuqqq/7rXXPNNQ8+c+bMg1/sxV7sta655poHX3PNNQ9+sRd7sdfmAXZ3dwF4+tOfzsWLFwHY3d1ld3cXgIsXL7K7u8t/puPHj3PixAlsc/z4cU6cOMHx48cBOHHiBA95yEN4oPvuu+9WgH/4h3/47X/4h3/4nfvuu+/Ws2fP3nrffffdylVXXXXVVVddddVV/9XQgx70IK666qqrrrrqqquu+s91zTXXPPjMmTMPfrEXe7HXevEXf/HXfrEXe7HX5gF2d3d5+tOfzsWLFwG49dZbefrTn879JPFfwTYvKtvc7/jx45w4cYLjx4/zkIc8BIATJ07wkIc8hPvdd999t549e/bW++6779bf+q3f+p5/+Id/+G2uuuqqq6666qqrrvrPhh70oAdx1VVXXXXVVVddddV/rGuuuebBr/3ar/1eAO/0Tu/02TzT7u4uAH/5l38JwK233srTn/50HkgS/9PY5l9im+d2/PhxAB7ykIfwkIc8hBMnTvCQhzyE+9133323/sM//MNv/8M//MPv3Hfffbf+wz/8w29z1VVXXXXVVVddddV/JPSgBz2Iq6666qqrrrrqqqv+fa655poHv/Zrv/Z7AbzTO73TZ/NMFy9e5K/+6q8AuPXWW3n605/OA0niX0MS/xls869hmxfGNs+PbQBO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2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbZ8+efQZXXXXVVVddddX/NuhBD3oQV1111VVXXXXVVVddddVVV1111VVXXXXV/0lUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8q/hHs2pKjpj9lxAAAAABJRU5ErkJggg==) +![Rendered example of hollow 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEgJElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuup/lWuuuebBAGfOnHnwNddc8+AzZ848iGe65pprHgxwzTXXPJgHOHPmzIN5gLNnz9565syZBwOcPXv2Vp7pvvvuu5Vnuu+++249e/bsMwDuu+++WwHOnj1763333XcrV1111VVXXXXVVVf9b4Ee9KAHcdVVV1111VVXXXXV/xzXXHPNg8+cOfPgF3uxF3stgGuuuebB11xzzYNf7MVe7LV5IXZ3d7nfxYsXAdjd3eVFcfz4ce534sQJbHPixAlekPvuu+/Ws2fP3nrffffdCvAP//APv3Pffffdevbs2Vvvu+++W7nqqquuuuqqq6666n8K9KAHPYirrrrqqquuuuqqq/7rXXPNNQ8+c+bMg1/sxV7sta655poHX3PNNQ9+sRd7sdfmAXZ3dwF4+tOfzsWLFwHY3d1ld3cXgIsXL7K7u8t/puPHj3PixAlsc/z4cU6cOMHx48cBOHHiBA95yEN4oPvuu+9WgH/4h3/47X/4h3/4nfvuu+/Ws2fP3nrffffdylVXXXXVVVddddVV/9XQgx70IK666qqrrrrqqquu+s91zTXXPPjMmTMPfrEXe7HXevEXf/HXfrEXe7HX5gF2d3d5+tOfzsWLFwG49dZbefrTn879JPFfwTYvKtvc7/jx45w4cYLjx4/zkIc8BIATJ07wkIc8hPvdd999t549e/bW++6779bf+q3f+p5/+Id/+G2uuuqqq6666qqrrvrPhh70oAdx1VVXXXXVVVddddV/rGuuuebBr/3ar/1eAO/0Tu/02TzT7u4uAH/5l38JwK233srTn/50HkgS/9PY5l9im+d2/PhxAB7ykIfwkIc8hBMnTvCQhzyE+9133323/sM//MNv/8M//MPv3Hfffbf+wz/8w29z1VVXXXXVVVddddV/JPSgBz2Iq6666qqrrrrqqqv+fa655poHv/Zrv/Z7AbzTO73TZ/NMFy9e5K/+6q8AuPXWW3n605/OA0niX0MS/xls869hmxfGNs+PbQBO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6n8Dgquuuuqqq6666n+Fs2fPPoP/Irb517DNVf8zSOKFkcRzk8S/hyT+PSTxH0kS95PECyKJB5LEc5PEv5ck/rezDcA4jlx11VVXXXXVVf/rEFx11VVXXXXVVf8r3HfffbfyTDs7O/xHsM1V/zNI4t9KEv9ZJPGikgSAJF4UkviXSOK5SeK/myT+NSTxX8E2/5mmaeJ+9913361cddVVV1111VX/GxBcddVVV1111VX/K5w9e/ZWnml7e5vnZpv/aWzz/4EkXhBJ/GtJ4vmRxP0k8T+dJAAkASAJAEn8SyTxopDEv4Yk/q+zzb+Fbf41zp49eytXXXXVVVddddX/BgRXXXXVVVddddX/eba56n8nSfx7SeK5SeK5SeIFkcR/N0m8MJL415LEA0niuUniP4IkXhS2+feyzb+GbV4Uy+WSq6666qqrrrrqfx2Cq6666qqrrrrqf4X77rvvVp5pZ2eH/2y2eX5sc9X/X5L4zySJ/wiSuJ8k/jNI4n8y27wobPNvcd99993KVVddddVVV131vwHBVVddddVVV131v8Z99913K//BbHPV/z2S+LeSxH81Sbwgknhukvi/zDb/EWxjGwDbPJBtbPMvsc39pmniqquuuuqqq676X4fgqquuuuqqq676X+Ps2bO3Amxvb/P82Oa/i23+PWxz1f8ekviPIIn/apJ4YSTxP4Ft/qPYBsA2trHNv8d99913K1ddddVVV1111f8WBFddddVVV1111f9KOzs7/GvY5n8K27wobPN/iST+O0niuUni30MSAJL415DEv0QSLwpJ/HtI4t9KEv+ZbPPfyTb3m6aJ+509e/ZWrrrqqquuuuqq/y0Irrrqqquuuuqq/zXuu+++W3mm7e1trrpKEveTxH8kSfxrSQJAEs+PJP49JPHCSOJ+krifJP49JPHfxTb/E0zTxP3uu+++W7nqqquuuuqqq/63ILjqqquuuuqqq/7XuO+++27lX2Cbfy3bPD+2eX5s86KyzVX/u0ni30oSAJJ4UUniqudkG9vY5r+KbR5oHEeuuuqqq6666qr/lQiuuuqqq6666qr/lba3t/nXss3/drb5l9jmfzpJ/FtJ4kUliReFJP4nk8Rzk8S/lSReGEn8T2Ub2/xnss0Lc999993KVVddddVVV131vwXBVVddddVVV131v8bZs2efwTNtb2/zP41t/j+QxP9mkvi3kMR/Jkn8W0ni30MS/9ls8x/JNrb5j2ab52ccR+539uzZZ3DVVVddddVVV/1vQXDVVVddddVVV/2vcd99993Ki8A2V/33kMS/liT+JZL4ryCJf4kk/iNJ4r+CJP4zSOK/k21s8+9lG9u8INM0cdVVV1111VVX/a9EcNVVV1111VVX/a9044038h/JNs+Pba76ryOJ+0nifzJJ/GeTxHOTxAsjiftJ4j+KJP4ns41tbPOvYRvbvDC2eaD77rvvVq666qqrrrrqqv8tqFx11VVXXXXVVf9rnD179lYewDaS+NewjST+vWwjiX8r20jiqv94knhRSOI/giT+LSRx1X8O27yoJPHC2EYS0zRxv7Nnz97KVVddddVVV131vwXBVVddddVVV131v9LOzg4vjG3+p7DNi8I2V/3nkMS/hiT+tSQBIInnRxIAkviXSOJFIYl/K0n8V7HN/0a2ud80Tdzvvvvuu5Wrrrrqqquuuup/C4Krrrrqqquuuup/jfvuu+9Wrnoetrnqfx5JAEjiP4Ik/jNJ4oEk8f+Zba666qqrrrrqqv8TCK666qqrrrrqqv9V7rvvvlsBtre3AbDNv5Ztnh/bPD+2eVHZ5j+Sba76l0niP4Mk/itJ4j+TJK564Wxjm+c2TRMA9913361cddVVV1111VX/mxBcddVVV1111VX/q5w9e/ZWnml7e5sXxjZXXfUvkcT/BZK4nyTuJ4n/Trb538A2tvmXnD179lauuuqqq6666qr/TahcddVVV1111VX/a73Xe70XV1111f99trHN/wT33XffrVx11VVXXXXVVf+bEFx11VVXXXXVVf+r3Hfffbdy1VVXXXXVVVddddVVV131oqEcP36cq6666qqrrrrqf49bb731bw4PD3df/MVf/LW56qqrrvov9Fu/9Vvf/fVf//Xvw1VXXXXVVVdd9b8JetCDHsRVV1111VVXXfW/yzXXXPNg25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLbPnj37DK666qqrrrrqqv9t0IMe9CCuuuqqq6666qqrrrrqqquuuuqqq6666qr/k6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1X8I5uPj6O5UA4YAAAAAElFTkSuQmCC) diff --git a/docs/kcl/modules.md b/docs/kcl/modules.md index 39d2844be..313996aec 100644 --- a/docs/kcl/modules.md +++ b/docs/kcl/modules.md @@ -10,7 +10,7 @@ isolated from other files as a separate module. When you define a function, you can use `export` before it to make it available to other modules. -``` +```kcl // util.kcl export fn increment(x) { return x + 1 @@ -31,11 +31,11 @@ Imported files _must_ be in the same project so that units are uniform across modules. This means that it must be in the same directory. Import statements must be at the top-level of a file. It is not allowed to have -an `import` statement inside a function or in the body of an if-else. +an `import` statement inside a function or in the body of an if‑else. Multiple functions can be exported in a file. -``` +```kcl // util.kcl export fn increment(x) { return x + 1 @@ -58,6 +58,211 @@ Imported symbols can be renamed for convenience or to avoid name collisions. import increment as inc, decrement as dec from "util.kcl" ``` +--- + +## Functions vs `clone` + +There are two common patterns for re‑using geometry: + +1. **Wrap the construction in a function** – flexible and fully parametric. +2. **Duplicate an existing object with `clone`** – lightning‑fast, but an exact + duplicate. + +### Parametric function example + +```kcl +fn cube(center) { + return startSketchOn(XY) + |> startProfileAt([center[0] - 10, center[1] - 10], %) + |> line(endAbsolute = [center[0] + 10, center[1] - 10]) + |> line(endAbsolute = [center[0] + 10, center[1] + 10]) + |> line(endAbsolute = [center[0] - 10, center[1] + 10]) + |> close() + |> extrude(length = 10) +} + +myCube = cube([0, 0]) +``` + +*Pros* +- Any argument can be a parameter – size, position, appearance, etc. +- Works great inside loops, arrays, or optimisation sweeps. + +*Cons* +- Every invocation rebuilds the entire feature tree. +- **Slower** than a straight duplicate – each call is its own render job. + +### `clone` example + +```kcl +sketch001 = startSketchOn(-XZ) + |> circle(center = [0, 0], radius = 10) + |> extrude(length = 5) + |> appearance(color = "#ff0000", metalness = 90, roughness = 90) + +sketch002 = clone(sketch001) // ✓ instant copy +``` + +*Pros* +- Roughly an O(1) operation – we just duplicate the underlying engine handle. +- Perfect when you need ten identical bolts or two copies of the same imported STEP file. + +*Cons* +- **Not parametric** – the clone is exactly the same shape as the source. +- If you need to tweak dimensions per‑instance, you’re back to a function. + +> **Rule of thumb** – Reach for `clone` when the geometry is already what you want. Reach for a function when you need customisation. + +--- + +## Module‑level parallelism + +Under the hood, the Design Studio runs **every module in parallel** where it can. This means: + +- The top‑level code of `foo.kcl`, `bar.kcl`, and `baz.kcl` all start executing immediately and concurrently. +- Imports that read foreign files (STEP/OBJ/…) overlap their I/O and background render. +- CPU‑bound calculations in separate modules get their own worker threads. + +### Why modules beat one‑big‑file + +If you shoe‑horn everything into `main.kcl`, each statement runs sequentially: + +```norun +import "big.step" as gizmo // blocks main while reading + +gizmo |> translate(x=50) // blocks again while waiting for render +``` + +Split `gizmo` into its own file and the read/render can overlap whatever else `main.kcl` is doing. + +```norun +// gizmo.kcl (worker A) +import "big.step" + +// main.kcl (worker B) +import "gizmo.kcl" as gizmo // non‑blocking + +// ... other setup ... + +gizmo |> translate(x=50) // only blocks here +``` + +### Gotcha: defining but **not** calling functions + +Defining a function inside a module is instantaneous – we just record the byte‑code. The heavy lifting happens when the function is **called**. So: + +```norun +// util.kcl +export fn makeBolt(size) { /* … expensive CAD … */ } +``` + +If `main.kcl` waits until the very end to call `makeBolt`, *none* of that work was parallelised – you’ve pushed the cost back onto the serial tail of your script. + +**Better:** call it early or move the invocation into another module. + +```norun +// bolt_instance.kcl +import makeBolt from "util.kcl" +bolt = makeBolt(5) // executed in parallel +bolt +``` + +Now `main.kcl` can `import "bolt_instance.kcl" as bolt` and get the result that was rendered while it was busy doing other things. + +--- + +## Whole module import + +You can also import the whole module. This is useful if you want to use the +result of a module as a variable, like a part. + +```norun +import "tests/inputs/cube.kcl" as cube +cube + |> translate(x=10) +``` + +This imports the whole module and makes it available as `cube`. You can then +use it like any other object. The `cube` variable is now a reference to the +result of the module. This means that if you change the module, the `cube` +variable will change as well. + +In `cube.kcl`, you cannot have multiple objects. It has to be a single part. If +you have multiple objects, you will get an error. This is because the module is +expected to return a single object that can be used as a variable. + +You also cannot assign that object to a variable. This is because the module is +expected to return a single object that can be used as a variable. + +So for example, this is not allowed: + +```norun +... a bunch of code to create cube and cube2 ... + +myUnion = union([cube, cube2]) +``` + +What you need to do instead is: + +```norun +... a bunch of code to create cube and cube2 ... + +union([cube, cube2]) +``` + +That way the last line will return the union of the two objects. + +Or what you could do instead is: + +```norun +... a bunch of code to create cube and cube2 ... + +myUnion = union([cube, cube2]) +myUnion +``` + +This will return the union of the two objects, but it will not be assigned to a +variable. This is because the module is expected to return a single object that +can be used as a variable. + +--- + +## Multiple instances of the same import + +Whether you are importing a file from another CAD system or a KCL file, that +file represents object(s) in memory. If you import the same file multiple times, +it will only be rendered once. + +If you want to have multiple instances of the same object, you can use the +[`clone`](/docs/kcl/clone) function. This will render a new instance of the object in memory. + +```norun +import cube from "tests/inputs/cube.kcl" + +cube + |> translate(x=10) +clone(cube) + |> translate(x=20) +``` + +In the sample above, the `cube` object is imported from a KCL file. The first +instance is translated 10 units in the x direction. The second instance is +cloned and translated 20 units in the x direction. The two instances are now +separate objects in memory, and can be manipulated independently. + +Here is an example with a file from another CAD system: + +```kcl +import "tests/inputs/cube.step" as cube + +cube + |> translate(x=10) +clone(cube) + |> translate(x=20) +``` + +--- + ## Importing files from other CAD systems `import` can also be used to import files from other CAD systems. The format of the statement is the @@ -69,25 +274,17 @@ import "tests/inputs/cube.obj" // Use `cube` just like a KCL object. ``` -```norun -import "tests/inputs/cube-2.sldprt" as cube +```kcl +import "tests/inputs/cube.sldprt" as cube // Use `cube` just like a KCL object. ``` -You can make the file format explicit using a format attribute (useful if using a different -extension), e.g., - -```norun -@(format = obj) -import "tests/inputs/cube" -``` - For formats lacking unit data (such as STL, OBJ, or PLY files), the default unit of measurement is millimeters. Alternatively you may specify the unit -by using an attirbute. Likewise, you can also specify a coordinate system. E.g., +by using an attribute. Likewise, you can also specify a coordinate system. E.g., -```norun +```kcl @(unitLength = ft, coords = opengl) import "tests/inputs/cube.obj" ``` @@ -110,97 +307,55 @@ Coordinate systems: - `opengl`, forward: +Z, up: +Y, handedness: right - `vulkan`, forward: +Z, up: -Y, handedness: left -### Performance +--- -Parallelized foreign-file imports now let you overlap file reads, initialization, +## Performance deep‑dive for foreign‑file imports + +Parallelized foreign‑file imports now let you overlap file reads, initialization, and rendering. To maximize throughput, you need to understand the three distinct stages—reading, initializing (background render start), and invocation (blocking) —and structure your code to defer blocking operations until the end. -#### Foreign Import Execution Stages +### Foreign import execution stages -1. **Import (Read) Stage** - ```norun +1. **Import (Read / Initialization) Stage** + ```kcl import "tests/inputs/cube.step" as cube - ``` - - Reads the file from disk and makes its API available. - - **Does _not_** start Engine rendering or block your script. + ``` + - Reads the file from disk and makes its API available. + - Starts engine rendering but **does not block** your script. + - This kick‑starts the render pipeline while you keep executing other code. -2. **Initialization (Background Render) Stage** - ```norun +2. **Invocation (Blocking) Stage** + ```kcl import "tests/inputs/cube.step" as cube - myCube = cube // <- This line starts background rendering - ``` - - Invoking the imported symbol (assignment or plain call) triggers Engine rendering _in the background_. - - This kick‑starts the render pipeline but doesn’t block—you can continue other work while the Engine processes the model. + cube + |> translate(z=10) // ← blocks here only + ``` + - Any method call (e.g., `translate`, `scale`, `rotate`) waits for the background render to finish before applying transformations. -3. **Invocation (Blocking) Stage** - ```norun - import "tests/inputs/cube.step" as cube +### Best practices - myCube = cube +#### 1. Defer blocking calls - myCube - |> translate(z=10) // <- This line blocks - ``` - - Any method call (e.g., `translate`, `scale`, `rotate`) waits for the background render to finish before applying transformations. - - This is the only point where your script will block. - -> **Nuance:** Foreign imports differ from pure KCL modules—calling the same import symbol multiple times (e.g., `screw` twice) starts background rendering twice. - -#### Best Practices - -##### 1. Defer Blocking Calls -Initialize early but delay all transformations until after your heavy computation: -```norun -import "tests/inputs/cube.step" as cube // 1) Read - -myCube = cube // 2) Background render starts +```kcl +import "tests/inputs/cube.step" as cube // 1) Read / Background render starts -// --- perform other operations and calculations or setup here --- +// --- perform other operations and calculations here --- -myCube - |> translate(z=10) // 3) Blocks only here -``` - -##### 2. Encapsulate Imports in Modules -Keep `main.kcl` free of reads and initialization; wrap them: - -```norun -// imports.kcl -import "tests/inputs/cube.step" as cube // Read only - - -export myCube = cube // Kick off rendering -``` - -```norun -// main.kcl -import myCube from "imports.kcl" // Import the initialized object - - -// ... computations ... - - -myCube - |> translate(z=10) // Blocking call at the end -``` - -##### 3. Avoid Immediate Method Calls - -```norun -import "tests/inputs/cube.step" as cube - cube - |> translate(z=10) // Blocks immediately, negating parallelism + |> translate(z=10) // 2) Blocks only here ``` -Both calling methods right on `cube` immediately or leaving an implicit import without assignment introduce blocking. +#### 2. Split heavy work into separate modules -#### Future Improvements +Place computationally expensive or IO‑heavy work into its own module so it can render in parallel while `main.kcl` continues. + +#### Future improvements + +Upcoming releases will auto‑analyse dependencies and only block when truly necessary. Until then, explicit deferral will give you the best performance. -Upcoming releases will auto‑analyze dependencies and only block when truly necessary. Until then, explicit deferral and modular wrapping give you the best performance. diff --git a/docs/kcl/shell.md b/docs/kcl/shell.md index 4ba3eeadc..f0e999664 100644 --- a/docs/kcl/shell.md +++ b/docs/kcl/shell.md @@ -62,7 +62,7 @@ firstSketch = startSketchOn(-XZ) shell(firstSketch, faces = [START], thickness = 0.25) ``` -![Rendered example of shell 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAGhfklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXfVvcM011zyYq6666qqrrrrqv9R99913K1ddddVVV131r0Plqquuuuqqq/4VXuzFXuy13+md3umzXuzFXuy1ueqqq6666qqr/kv9wz/8w2///d///W//6I/+6Odw1VVXXXXVVS8aKlddddVVV131Irjmmmse/OEf/uHf9WIv9mKvffHiRX7913+d3d1drrrqqquu+o9hm6uusM1Vz98bvMEbvPaLvdiLvfY111zz4B/90R/9nPvuu+9WrrrqqquuuuqFQw960IO46qqrrrrqqhfmxV7sxV77cz/3c38L4Nd//df5jd/4Df6/kcRVV131n882V/3nsc3/R7b5v+L48eO8/Mu/PG/wBm/Afffdd+tv/dZvffeP/uiPfg5XXXXVVVdd9YKhBz3oQVx11VVXXXXV83PNNdc8+MM//MO/68Ve7MVe++LFi/z4j/84T3va0/jPJomrrrrqqv8JbHPVi8Y2/9fZ5n+KEydO8EEf9EGcOHGC3/qt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EgCSkASAJCQBIAlJAEhCEgCSkASAJCQhCQBJSAJAEpIAkIQkJAEgCUkASEISkgCQhCQkASAJSQBIQhKSAJCEJAAkIQkASUgCQBKSAJCEJAAkIQkASQBIAkASkgCQBIAkACQBIIn7SQJAEgCSuJ8k7ieJ+0nigSTxQMMwAHD27Nlbueqqq6666qr/GahcddVVV1111f8Q9913360AOzs7vMM7vAO33347z00S/16S+PeQxL+HJP4tJPGvJYl/DUn8a0jiRSWJF4Uk/iWSeFFI4l8iiRdGEi+MJF4QSbwgknhBJPGCSOIFkcTzI4nnRxLPTRLPjySemySeH0k8N0k8N0k8kCSemySemyQeSBIPJIkHksRzk8QDSeJ+knggSTyQJB5IEveTxANJ4n6SeCBJ3E8S95PE/STxQJK4nyTuJ4n7SeJ+krifJO4niftJ4n6SeCDbANgGQBL3k8T9JAEgiftJ4n6SuJ8k7ieJ+0nifpK4nyTuJ4n7SeJ+knggSTyQJB5IEs9NEs9NEs+PJJ6fcRwZxxGA++6771auuuqqq6666n8GKlddddVVV131P8iP/MiPfPY7vdM7ffZNN93ETTfdxFVXXXXVVf+9bHM/21z1L/vRH/3Rz+Gqq6666qqr/udAD3rQg7jqqquuuuqq/0le53Ve573PnDnzIK666qqrrrrqf5mzZ88+47d+67e+m6uuuuqqq676nwM96EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yr+ETght17X+maWAAAAAElFTkSuQmCC) +![Rendered example of shell 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAGhfklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXfVvcM011zyYq6666qqrrrrqv9R99913K1ddddVVV131r0Plqquuuuqqq/4VXuzFXuy13+md3umzXuzFXuy1ueqqq6666qqr/kv9wz/8w2///d///W//6I/+6Odw1VVXXXXVVS8aKlddddVVV131Irjmmmse/OEf/uHf9WIv9mKvffHiRX7913+d3d1drrrqqquu+o9hm6uusM1Vz98bvMEbvPaLvdiLvfY111zz4B/90R/9nPvuu+9WrrrqqquuuuqFQw960IO46qqrrrrqqhfmxV7sxV77cz/3c38L4Nd//df5jd/4Df6/kcRVV131n882V/3nsc3/R7b5v+L48eO8/Mu/PG/wBm/Afffdd+tv/dZvffeP/uiPfg5XXXXVVVdd9YKhBz3oQVx11VVXXXXV83PNNdc8+MM//MO/68Ve7MVe++LFi/z4j/84T3va0/jPJomrrrrqqv8JbHPVi8Y2/9fZ5n+KEydO8EEf9EGcOHGC3/qt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EgCSkASAJCQBIAlJAEhCEgCSkASAJCQhCQBJSAJAEpIAkIQkJAEgCUkASEISkgCQhCQkASAJSQBIQhKSAJCEJAAkIQkASUgCQBKSAJCEJAAkIQkASQBIAkASkgCQBIAkACQBIIn7SQJAEgCSuJ8k7ieJ+0nigSTxQMMwAHD27Nlbueqqq6666qr/GahcddVVV1111f8Q9913360AOzs7vMM7vAO33347z00S/16S+PeQxL+HJP4tJPGvJYl/DUn8a0jiRSWJF4Uk/iWSeFFI4l8iiRdGEi+MJF4QSbwgknhBJPGCSOIFkcTzI4nnRxLPTRLPjySemySeH0k8N0k8N0k8kCSemySemyQeSBIPJIkHksRzk8QDSeJ+knggSTyQJB5IEveTxANJ4n6SeCBJ3E8S95PE/STxQJK4nyTuJ4n7SeJ+krifJO4niftJ4n6SeCDbANgGQBL3k8T9JAEgiftJ4n6SuJ8k7ieJ+0nifpK4nyTuJ4n7SeJ+knggSTyQJB5IEs9NEs9NEs+PJJ6fcRwZxxGA++6771auuuqqq6666n8GKlddddVVV131P8iP/MiPfPY7vdM7ffZNN93ETTfdxFVXXXXVVf+9bHM/21z1L/vRH/3Rz+Gqq6666qqr/udAD3rQg7jqqquuuuqq/0le53Ve573PnDnzIK666qqrrrrqf5mzZ88+47d+67e+m6uuuuqqq676nwM96EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yr+EXQkt155+eTJAAAAAElFTkSuQmCC) ```js // Remove a tagged face and the end face for the extrusion. @@ -119,7 +119,7 @@ thing2 = startSketchOn(case, face = END) shell(case, faces = [START], thickness = 5) ``` -![Rendered example of shell 4](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFcIElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuup/lWuuuebBAGfOnHnwNddc8+AzZ848iGe65pprHgxwzTXXPJgHOHPmzIN5gLNnz9565syZBwOcPXv2Vp7pvvvuu5Vnuu+++249e/bsMwDuu+++WwHOnj1763333XcrV1111VVXXXXVVVf9b4Ee9KAHcdVVV1111VVXXXXV/xzXXHPNg8+cOfPgF3uxF3stgGuuuebB11xzzYNf7MVe7LV5PnZ3d7nfxYsXud/u7i4AFy9e5IU5ceIE9zt+/Dj3O378OCdOnOD5ue+++249e/bsrffdd9+tAP/wD//wO/fdd9+tZ8+evfW+++67lauuuuqqq6666qqr/qdAD3rQg7jqqquuuuqqq6666r/eNddc8+AzZ848+MVe7MVe65prrnnwNddc8+AXe7EXe20eYHd3l4sXL/L0pz+d+916660AXLx4kd3dXf6zHT9+HIDjx49z/PhxAE6cOMHx48c5ceIEx48f58SJE9zvvvvuuxXgH/7hH377H/7hH37nvvvuu/Xs2bO33nfffbdy1VVXXXXVVVddddV/NfSgBz2Iq6666qqrrrrqqqv+c11zzTUPPnPmzINf7MVe7LVe/MVf/LVf7MVe7LV5pt3dXS5evMjTn/50AG699VYuXrzI7u4u95PEfwXbvKhsc7/jx48DcOLECY4fP85DHvIQTpw4wUMe8hDud99999169uzZW++7775bf+u3fut7/uEf/uG3ueqqq6666qqrrrrqPxt60IMexFVXXXXVVVddddVV/7GuueaaB7/2a7/2ewG80zu902fzTLu7u1y8eJGnP/3p3HrrrTz96U/nuUnifxrb/Ets8/wcP36chzzkIRw/fpyHPvShHD9+nBMnTgBw33333foP//APv/0P//APv3Pffffd+g//8A+/zVVXXXXVVVddddVV/5HQgx70IK666qqrrrrqqquu+ve55pprHvzar/3a7wXwTu/0Tp/NM128eJG/+qu/4tZbb+XpT386z00S/xqS+M9g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jW1ekM3NTf4l1113HZKQhCSuuuqqZ5OEJCQhCUlIQhKSkMT/Bbfeeiuv8Rqvwb/k9OnTANRaAZDEA03TBMB99913K1ddddVVV1111f9kBFddddVVV1111f949913360A29vbPLf9/X0ANjc3kcQLs7W1xdOf/nSuuuqqfxtJSEISkpCEJCQhCUn8T/f0pz+dfytJXHXVVVddddVV/+sQXHXVVVddddVV/2vs7Ozw3Pb393lRPPzhDwfg1ltv5aqrrvrPIwlJSEISkpCEJCQhif9Ou7u7nD59mkc/+tG8MKdOnQKg1spzm6YJgLNnzz6Dq6666qqrrrrqfzqCq6666qqrrrrqf7z77rvvVp7JNg+0v78PwNbWFg8kCQBJPNDu7i5X/ceShCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkrjqfx9JSEISkpCEJCTxn213d5fd3V0e85jH8MKcPn0agForDySJcRwBuO+++27lqquuuuqqq676n47KVVddddVVV131v8b29jbPbW9vD4DNzU0AJGGb53bdddfx13/91/xfJYn/ryTx38U2V/3HksQLY5t/r4sXL/LoRz+aF5UkHmiaJgDuu+++W7nqqquuuuqqq/6no3LVVVddddVVV/2Pd/bs2VsBtre3+be69tpr+du//Vv+p5HEVf97SeLfyzZXvegk8YLY5kVx66238hIv8RK8MKdPnwag1spVV1111VVXXfW/GsFVV1111VVXXfU/3n333XcrD2Cb++3v7wOwtbXFC7O1tcWtt97KfxZJSEISkpCEJCQhCUlIQhKSkIQkrrpKEpKQhCQkIQlJSEISkpCEJCQhiauelyQkIQlJSEISz+3pT386p0+f5vTp0zyQbe53+vRpAGqtAEjiftM0AXDfffc9nauuuuqqq6666n86KlddddVVV1111f94Z8+evRVgZ2eHfw1J2OZhD3sYALu7u/xrSOKqq/6nksS/hm3+v5LEA126dAmA06dPc/78ef61xnEE4OzZs8/gqquuuuqqq676n47gqquuuuqqq676H+++++67FWB7e5vntr+/D8Dm5ib3k8QDXXfdddx6663cTxKSkIQkJCEJSUhCEpK46qr/SyQhCUlIQhKSkIQkJCGJ/w92d3e59dZbecxjHoNtnp/Tp08DUGvlfpK46qqr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ti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g22fPnn0GV1111VVXXXXV/zboQQ96EFddddVVV1111VVXXXXVVVddddVVV1111f9JVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/Kv4REiDLpI+bHN0AAAAASUVORK5CYII=) +![Rendered example of shell 4](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFcIUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuup/lWuuuebBAGfOnHnwNddc8+AzZ848iGe65pprHgxwzTXXPJgHOHPmzIN5gLNnz9565syZBwOcPXv2Vp7pvvvuu5Vnuu+++249e/bsMwDuu+++WwHOnj1763333XcrV1111VVXXXXVVVf9b4Ee9KAHcdVVV1111VVXXXXV/xzXXHPNg8+cOfPgF3uxF3stgGuuuebB11xzzYNf7MVe7LV5PnZ3d7nfxYsXud/u7i4AFy9e5IU5ceIE9zt+/Dj3O378OCdOnOD5ue+++249e/bsrffdd9+tAP/wD//wO/fdd9+tZ8+evfW+++67lauuuuqqq6666qqr/qdAD3rQg7jqqquuuuqqq6666r/eNddc8+AzZ848+MVe7MVe65prrnnwNddc8+AXe7EXe20eYHd3l4sXL/L0pz+d+916660AXLx4kd3dXf6zHT9+HIDjx49z/PhxAE6cOMHx48c5ceIEx48f58SJE9zvvvvuuxXgH/7hH377H/7hH37nvvvuu/Xs2bO33nfffbdy1VVXXXXVVVddddV/NfSgBz2Iq6666qqrrrrqqqv+c11zzTUPPnPmzINf7MVe7LVe/MVf/LVf7MVe7LV5pt3dXS5evMjTn/50AG699VYuXrzI7u4u95PEfwXbvKhsc7/jx48DcOLECY4fP85DHvIQTpw4wUMe8hDud99999169uzZW++7775bf+u3fut7/uEf/uG3ueqqq6666qqrrrrqPxt60IMexFVXXXXVVVddddVV/7GuueaaB7/2a7/2ewG80zu902fzTLu7u1y8eJGnP/3p3HrrrTz96U/nuUnifxrb/Ets8/wcP36chzzkIRw/fpyHPvShHD9+nBMnTgBw33333foP//APv/0P//APv3Pffffd+g//8A+/zVVXXXXVVVddddVV/5HQgx70IK666qqrrrrqqquu+ve55pprHvzar/3a7wXwTu/0Tp/NM128eJG/+qu/4tZbb+XpT386z00S/xqS+M9g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wLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbPvs2bPP4Kqrrrrqqquu+t8GPehBD+Kqq6666qqrrrrqqquuuuqqq6666qqrrvo/icpVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X8U/Aik9y6SYyZy+AAAAAElFTkSuQmCC) ```js // Shell a sketch on face object on the end face. diff --git a/docs/kcl/std.json b/docs/kcl/std.json index 9d39e9361..91986165e 100644 --- a/docs/kcl/std.json +++ b/docs/kcl/std.json @@ -111819,10 +111819,10 @@ "summary": "Get the next adjacent edge to the edge given.", "description": "", "tags": [], - "keywordArguments": false, + "keywordArguments": true, "args": [ { - "name": "tag", + "name": "edge", "type": "TagIdentifier", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", @@ -111839,7 +111839,8 @@ }, "required": true, "includeInSnippet": true, - "labelRequired": true + "description": "The tag of the edge you want to find the next adjacent edge of.", + "labelRequired": false } ], "returnValue": { @@ -111866,10 +111867,10 @@ "summary": "Get the opposite edge to the edge given.", "description": "", "tags": [], - "keywordArguments": false, + "keywordArguments": true, "args": [ { - "name": "tag", + "name": "edge", "type": "TagIdentifier", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", @@ -111886,7 +111887,8 @@ }, "required": true, "includeInSnippet": true, - "labelRequired": true + "description": "The tag of the edge you want to find the opposite edge of.", + "labelRequired": false } ], "returnValue": { @@ -111913,10 +111915,10 @@ "summary": "Get the previous adjacent edge to the edge given.", "description": "", "tags": [], - "keywordArguments": false, + "keywordArguments": true, "args": [ { - "name": "tag", + "name": "edge", "type": "TagIdentifier", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", @@ -111933,7 +111935,8 @@ }, "required": true, "includeInSnippet": true, - "labelRequired": true + "description": "The tag of the edge you want to find the previous adjacent edge of.", + "labelRequired": false } ], "returnValue": { diff --git a/e2e/playwright/auth.spec.ts b/e2e/playwright/auth.spec.ts index eae4051dd..f9c290964 100644 --- a/e2e/playwright/auth.spec.ts +++ b/e2e/playwright/auth.spec.ts @@ -13,12 +13,22 @@ test.describe('Authentication tests', () => { await page.setBodyDimensions({ width: 1000, height: 500 }) await homePage.projectSection.waitFor() + // This is only needed as an override to test-utils' setup() for this test + await page.addInitScript(() => { + localStorage.setItem('TOKEN_PERSIST_KEY', '') + }) + await test.step('Click on sign out and expect sign in page', async () => { await toolbar.userSidebarButton.click() await toolbar.signOutButton.click() await expect(signInPage.signInButton).toBeVisible() }) + await test.step("Refresh doesn't log the user back in", async () => { + await page.reload() + await expect(signInPage.signInButton).toBeVisible() + }) + await test.step('Click on sign in and cancel, click again and expect different code', async () => { await signInPage.signInButton.click() await expect(signInPage.userCode).toBeVisible() @@ -30,6 +40,7 @@ test.describe('Authentication tests', () => { await expect(signInPage.userCode).toBeVisible() const secondUserCode = await signInPage.userCode.textContent() expect(secondUserCode).not.toEqual(firstUserCode) + await signInPage.cancelSignInButton.click() }) await test.step('Press back button and remain on home page', async () => { @@ -48,6 +59,12 @@ test.describe('Authentication tests', () => { // Longer timeout than usual here for the wait on home page await expect(homePage.projectSection).toBeVisible({ timeout: 10000 }) }) + + await test.step('Click on sign out and expect sign in page', async () => { + await toolbar.userSidebarButton.click() + await toolbar.signOutButton.click() + await expect(signInPage.signInButton).toBeVisible() + }) } ) }) diff --git a/e2e/playwright/basic-sketch.spec.ts b/e2e/playwright/basic-sketch.spec.ts index d3a0da867..22f638bcb 100644 --- a/e2e/playwright/basic-sketch.spec.ts +++ b/e2e/playwright/basic-sketch.spec.ts @@ -155,7 +155,7 @@ async function doBasicSketch( |> xLine(length = -segLen(seg01))`) } -test.describe('Basic sketch', { tag: ['@skipWin'] }, () => { +test.describe('Basic sketch', () => { test('code pane open at start', async ({ page, homePage }) => { test.fixme(orRunWhenFullSuiteEnabled()) await doBasicSketch(page, homePage, ['code']) diff --git a/e2e/playwright/can-create-sketches-on-all-planes-and-their-back-sides.spec.ts b/e2e/playwright/can-create-sketches-on-all-planes-and-their-back-sides.spec.ts index 9e2fee320..bda3c3b71 100644 --- a/e2e/playwright/can-create-sketches-on-all-planes-and-their-back-sides.spec.ts +++ b/e2e/playwright/can-create-sketches-on-all-planes-and-their-back-sides.spec.ts @@ -8,130 +8,126 @@ import type { ToolbarFixture } from '@e2e/playwright/fixtures/toolbarFixture' import { getUtils } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe( - 'Can create sketches on all planes and their back sides', - { tag: ['@skipWin'] }, - () => { - const sketchOnPlaneAndBackSideTest = async ( - page: Page, - homePage: HomePageFixture, - scene: SceneFixture, - toolbar: ToolbarFixture, - plane: string, - clickCoords: { x: number; y: number } - ) => { - const u = await getUtils(page) - await page.setBodyDimensions({ width: 1200, height: 500 }) +test.describe('Can create sketches on all planes and their back sides', () => { + const sketchOnPlaneAndBackSideTest = async ( + page: Page, + homePage: HomePageFixture, + scene: SceneFixture, + toolbar: ToolbarFixture, + plane: string, + clickCoords: { x: number; y: number } + ) => { + const u = await getUtils(page) + await page.setBodyDimensions({ width: 1200, height: 500 }) - await homePage.goToModelingScene() - const XYPlanRed: [number, number, number] = [98, 50, 51] - await scene.expectPixelColor(XYPlanRed, { x: 700, y: 300 }, 15) + await homePage.goToModelingScene() + const XYPlanRed: [number, number, number] = [98, 50, 51] + await scene.expectPixelColor(XYPlanRed, { x: 700, y: 300 }, 15) - await u.openDebugPanel() + await u.openDebugPanel() - const coord = - plane === '-XY' || plane === '-YZ' || plane === 'XZ' ? -100 : 100 - const camCommand: EngineCommand = { - type: 'modeling_cmd_req', - cmd_id: uuidv4(), - cmd: { - type: 'default_camera_look_at', - center: { x: 0, y: 0, z: 0 }, - vantage: { x: coord, y: coord, z: coord }, - up: { x: 0, y: 0, z: 1 }, - }, - } - const updateCamCommand: EngineCommand = { - type: 'modeling_cmd_req', - cmd_id: uuidv4(), - cmd: { - type: 'default_camera_get_settings', - }, - } - - const code = `@settings(defaultLengthUnit = in)sketch001 = startSketchOn(${plane})profile001 = startProfileAt([0.91, -1.22], sketch001)` - - await u.openDebugPanel() - - await u.clearCommandLogs() - await page.getByRole('button', { name: 'Start Sketch' }).click() - - await u.sendCustomCmd(camCommand) - await page.waitForTimeout(100) - await u.sendCustomCmd(updateCamCommand) - - await u.closeDebugPanel() - - await page.mouse.click(clickCoords.x, clickCoords.y) - await page.waitForTimeout(600) // wait for animation - - await toolbar.waitUntilSketchingReady() - - await expect( - page.getByRole('button', { name: 'line Line', exact: true }) - ).toBeVisible() - - await u.closeDebugPanel() - await page.mouse.click(707, 393) - - await expect(page.locator('.cm-content')).toHaveText(code) - - await page - .getByRole('button', { name: 'line Line', exact: true }) - .first() - .click() - await u.openAndClearDebugPanel() - await page.getByRole('button', { name: 'Exit Sketch' }).click() - await u.expectCmdLog('[data-message-type="execution-done"]') - - await u.clearCommandLogs() - await u.removeCurrentCode() + const coord = + plane === '-XY' || plane === '-YZ' || plane === 'XZ' ? -100 : 100 + const camCommand: EngineCommand = { + type: 'modeling_cmd_req', + cmd_id: uuidv4(), + cmd: { + type: 'default_camera_look_at', + center: { x: 0, y: 0, z: 0 }, + vantage: { x: coord, y: coord, z: coord }, + up: { x: 0, y: 0, z: 1 }, + }, + } + const updateCamCommand: EngineCommand = { + type: 'modeling_cmd_req', + cmd_id: uuidv4(), + cmd: { + type: 'default_camera_get_settings', + }, } - const planeConfigs = [ - { - plane: 'XY', - coords: { x: 600, y: 388 }, - description: 'red plane', - }, - { - plane: 'YZ', - coords: { x: 700, y: 250 }, - description: 'green plane', - }, - { - plane: 'XZ', - coords: { x: 684, y: 427 }, - description: 'blue plane', - }, - { - plane: '-XY', - coords: { x: 600, y: 118 }, - description: 'back of red plane', - }, - { - plane: '-YZ', - coords: { x: 700, y: 219 }, - description: 'back of green plane', - }, - { - plane: '-XZ', - coords: { x: 700, y: 80 }, - description: 'back of blue plane', - }, - ] + const code = `@settings(defaultLengthUnit = in)sketch001 = startSketchOn(${plane})profile001 = startProfileAt([0.91, -1.22], sketch001)` - for (const config of planeConfigs) { - test(config.plane, async ({ page, homePage, scene, toolbar }) => { - await sketchOnPlaneAndBackSideTest( - page, - homePage, - scene, - toolbar, - config.plane, - config.coords - ) - }) - } + await u.openDebugPanel() + + await u.clearCommandLogs() + await page.getByRole('button', { name: 'Start Sketch' }).click() + + await u.sendCustomCmd(camCommand) + await page.waitForTimeout(100) + await u.sendCustomCmd(updateCamCommand) + + await u.closeDebugPanel() + + await page.mouse.click(clickCoords.x, clickCoords.y) + await page.waitForTimeout(600) // wait for animation + + await toolbar.waitUntilSketchingReady() + + await expect( + page.getByRole('button', { name: 'line Line', exact: true }) + ).toBeVisible() + + await u.closeDebugPanel() + await page.mouse.click(707, 393) + + await expect(page.locator('.cm-content')).toHaveText(code) + + await page + .getByRole('button', { name: 'line Line', exact: true }) + .first() + .click() + await u.openAndClearDebugPanel() + await page.getByRole('button', { name: 'Exit Sketch' }).click() + await u.expectCmdLog('[data-message-type="execution-done"]') + + await u.clearCommandLogs() + await u.removeCurrentCode() } -) + + const planeConfigs = [ + { + plane: 'XY', + coords: { x: 600, y: 388 }, + description: 'red plane', + }, + { + plane: 'YZ', + coords: { x: 700, y: 250 }, + description: 'green plane', + }, + { + plane: 'XZ', + coords: { x: 684, y: 427 }, + description: 'blue plane', + }, + { + plane: '-XY', + coords: { x: 600, y: 118 }, + description: 'back of red plane', + }, + { + plane: '-YZ', + coords: { x: 700, y: 219 }, + description: 'back of green plane', + }, + { + plane: '-XZ', + coords: { x: 700, y: 80 }, + description: 'back of blue plane', + }, + ] + + for (const config of planeConfigs) { + test(config.plane, async ({ page, homePage, scene, toolbar }) => { + await sketchOnPlaneAndBackSideTest( + page, + homePage, + scene, + toolbar, + config.plane, + config.coords + ) + }) + } +}) diff --git a/e2e/playwright/code-pane-and-errors.spec.ts b/e2e/playwright/code-pane-and-errors.spec.ts index 2ef0ff990..fc8115705 100644 --- a/e2e/playwright/code-pane-and-errors.spec.ts +++ b/e2e/playwright/code-pane-and-errors.spec.ts @@ -10,7 +10,7 @@ import { } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Code pane and errors', { tag: ['@skipWin'] }, () => { +test.describe('Code pane and errors', () => { test('Typing KCL errors induces a badge on the code pane button', async ({ page, homePage, diff --git a/e2e/playwright/command-bar-tests.spec.ts b/e2e/playwright/command-bar-tests.spec.ts index ecb1043d4..2b660467a 100644 --- a/e2e/playwright/command-bar-tests.spec.ts +++ b/e2e/playwright/command-bar-tests.spec.ts @@ -9,7 +9,7 @@ import { } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Command bar tests', { tag: ['@skipWin'] }, () => { +test.describe('Command bar tests', () => { test('Extrude from command bar selects extrude line after', async ({ page, homePage, @@ -179,57 +179,57 @@ test.describe('Command bar tests', { tag: ['@skipWin'] }, () => { await expect(commandLevelArgButton).toHaveText('level: project') }) - test( - 'Command bar keybinding works from code editor and can change a setting', - { tag: ['@skipWin'] }, - async ({ page, homePage }) => { - await page.setBodyDimensions({ width: 1200, height: 500 }) - await homePage.goToModelingScene() + test('Command bar keybinding works from code editor and can change a setting', async ({ + page, + homePage, + }) => { + await page.setBodyDimensions({ width: 1200, height: 500 }) + await homePage.goToModelingScene() - // FIXME: No KCL code, unable to wait for engine execution - await page.waitForTimeout(10000) + // FIXME: No KCL code, unable to wait for engine execution + await page.waitForTimeout(10000) - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled() + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled() - // Put the cursor in the code editor - await page.locator('.cm-content').click() + // Put the cursor in the code editor + await page.locator('.cm-content').click() - // Now try the same, but with the keyboard shortcut, check focus - await page.keyboard.press('ControlOrMeta+K') + // Now try the same, but with the keyboard shortcut, check focus + await page.keyboard.press('ControlOrMeta+K') - let cmdSearchBar = page.getByPlaceholder('Search commands') - await expect(cmdSearchBar).toBeVisible() - await expect(cmdSearchBar).toBeFocused() + let cmdSearchBar = page.getByPlaceholder('Search commands') + await expect(cmdSearchBar).toBeVisible() + await expect(cmdSearchBar).toBeFocused() - // Try typing in the command bar - await cmdSearchBar.fill('theme') - const themeOption = page.getByRole('option', { - name: 'Settings · app · theme', - }) - await expect(themeOption).toBeVisible() - await themeOption.click() - const themeInput = page.getByPlaceholder('dark') - await expect(themeInput).toBeVisible() - await expect(themeInput).toBeFocused() - // Select dark theme - await page.keyboard.press('ArrowDown') - await page.keyboard.press('ArrowDown') - await page.keyboard.press('ArrowDown') - await expect( - page.getByRole('option', { name: 'system' }) - ).toHaveAttribute('data-headlessui-state', 'active') - await page.keyboard.press('Enter') + // Try typing in the command bar + await cmdSearchBar.fill('theme') + const themeOption = page.getByRole('option', { + name: 'Settings · app · theme', + }) + await expect(themeOption).toBeVisible() + await themeOption.click() + const themeInput = page.getByPlaceholder('dark') + await expect(themeInput).toBeVisible() + await expect(themeInput).toBeFocused() + // Select dark theme + await page.keyboard.press('ArrowDown') + await page.keyboard.press('ArrowDown') + await page.keyboard.press('ArrowDown') + await expect(page.getByRole('option', { name: 'system' })).toHaveAttribute( + 'data-headlessui-state', + 'active' + ) + await page.keyboard.press('Enter') - // Check the toast appeared - await expect( - page.getByText(`Set theme to "system" as a user default`) - ).toBeVisible() - // Check that the theme changed - await expect(page.locator('body')).not.toHaveClass(`body-bg dark`) - } - ) + // Check the toast appeared + await expect( + page.getByText(`Set theme to "system" as a user default`) + ).toBeVisible() + // Check that the theme changed + await expect(page.locator('body')).not.toHaveClass(`body-bg dark`) + }) test('Can extrude from the command bar', async ({ page, diff --git a/e2e/playwright/desktop-export.spec.ts b/e2e/playwright/desktop-export.spec.ts index 36a7c2194..aa5e27ec7 100644 --- a/e2e/playwright/desktop-export.spec.ts +++ b/e2e/playwright/desktop-export.spec.ts @@ -10,7 +10,7 @@ import { expect, test } from '@e2e/playwright/zoo-test' test( 'export works on the first try', - { tag: ['@electron', '@skipLocalEngine'] }, + { tag: ['@electron', '@macos', '@windows', '@skipLocalEngine'] }, async ({ page, context, scene, tronApp, cmdBar }, testInfo) => { if (!tronApp) { fail() diff --git a/e2e/playwright/editor-tests.spec.ts b/e2e/playwright/editor-tests.spec.ts index 5ba90f185..653e18b99 100644 --- a/e2e/playwright/editor-tests.spec.ts +++ b/e2e/playwright/editor-tests.spec.ts @@ -10,7 +10,7 @@ import { } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Editor tests', { tag: ['@skipWin'] }, () => { +test.describe('Editor tests', () => { test('can comment out code with ctrl+/', async ({ page, homePage }) => { const u = await getUtils(page) await page.setBodyDimensions({ width: 1000, height: 500 }) @@ -989,162 +989,162 @@ sketch001 = startSketchOn(XZ) |> close()`) }) - test( - 'Can undo a sketch modification with ctrl+z', - { tag: ['@skipWin'] }, - async ({ page, homePage, editor }) => { - const u = await getUtils(page) - await page.addInitScript(async () => { - localStorage.setItem( - 'persistCode', - `@settings(defaultLengthUnit=in) + test('Can undo a sketch modification with ctrl+z', async ({ + page, + homePage, + editor, + }) => { + const u = await getUtils(page) + await page.addInitScript(async () => { + localStorage.setItem( + 'persistCode', + `@settings(defaultLengthUnit=in) sketch001 = startSketchOn(XZ) |> startProfileAt([4.61, -10.01], %) |> line(end = [12.73, -0.09]) |> tangentialArc(endAbsolute = [24.95, -0.38]) |> close() |> extrude(length = 5)` - ) - }) + ) + }) - await page.setBodyDimensions({ width: 1200, height: 500 }) + await page.setBodyDimensions({ width: 1200, height: 500 }) - await homePage.goToModelingScene() - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled() + await homePage.goToModelingScene() + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled() - await page.waitForTimeout(100) - await u.openAndClearDebugPanel() - await u.sendCustomCmd({ - type: 'modeling_cmd_req', - cmd_id: uuidv4(), - cmd: { - type: 'default_camera_look_at', - vantage: { x: 0, y: -1250, z: 580 }, - center: { x: 0, y: 0, z: 0 }, - up: { x: 0, y: 0, z: 1 }, - }, - }) - await page.waitForTimeout(100) - await u.sendCustomCmd({ - type: 'modeling_cmd_req', - cmd_id: uuidv4(), - cmd: { - type: 'default_camera_get_settings', - }, - }) - await page.waitForTimeout(100) + await page.waitForTimeout(100) + await u.openAndClearDebugPanel() + await u.sendCustomCmd({ + type: 'modeling_cmd_req', + cmd_id: uuidv4(), + cmd: { + type: 'default_camera_look_at', + vantage: { x: 0, y: -1250, z: 580 }, + center: { x: 0, y: 0, z: 0 }, + up: { x: 0, y: 0, z: 1 }, + }, + }) + await page.waitForTimeout(100) + await u.sendCustomCmd({ + type: 'modeling_cmd_req', + cmd_id: uuidv4(), + cmd: { + type: 'default_camera_get_settings', + }, + }) + await page.waitForTimeout(100) - const startPX = [1200 / 2, 500 / 2] + const startPX = [1200 / 2, 500 / 2] - const dragPX = 40 + const dragPX = 40 - await page.getByText('startProfileAt([4.61, -10.01], %)').click() - await expect( - page.getByRole('button', { name: 'Edit Sketch' }) - ).toBeVisible() - await page.getByRole('button', { name: 'Edit Sketch' }).click() - await page.waitForTimeout(400) - let prevContent = await page.locator('.cm-content').innerText() + await page.getByText('startProfileAt([4.61, -10.01], %)').click() + await expect( + page.getByRole('button', { name: 'Edit Sketch' }) + ).toBeVisible() + await page.getByRole('button', { name: 'Edit Sketch' }).click() + await page.waitForTimeout(400) + let prevContent = await page.locator('.cm-content').innerText() - await expect(page.getByTestId('segment-overlay')).toHaveCount(2) + await expect(page.getByTestId('segment-overlay')).toHaveCount(2) - // drag startProfileAt handle - await page.dragAndDrop('#stream', '#stream', { - sourcePosition: { x: startPX[0] + 68, y: startPX[1] + 147 }, - targetPosition: { x: startPX[0] + dragPX, y: startPX[1] + dragPX }, - }) - await page.waitForTimeout(100) - await expect(page.locator('.cm-content')).not.toHaveText(prevContent) - prevContent = await page.locator('.cm-content').innerText() + // drag startProfileAt handle + await page.dragAndDrop('#stream', '#stream', { + sourcePosition: { x: startPX[0] + 68, y: startPX[1] + 147 }, + targetPosition: { x: startPX[0] + dragPX, y: startPX[1] + dragPX }, + }) + await page.waitForTimeout(100) + await expect(page.locator('.cm-content')).not.toHaveText(prevContent) + prevContent = await page.locator('.cm-content').innerText() - // drag line handle - // we wait so it saves the code - await page.waitForTimeout(800) + // drag line handle + // we wait so it saves the code + await page.waitForTimeout(800) - const lineEnd = await u.getBoundingBox('[data-overlay-index="0"]') - await page.waitForTimeout(100) - await page.dragAndDrop('#stream', '#stream', { - sourcePosition: { x: lineEnd.x - 5, y: lineEnd.y }, - targetPosition: { x: lineEnd.x + dragPX, y: lineEnd.y + dragPX }, - }) - await expect(page.locator('.cm-content')).not.toHaveText(prevContent) - prevContent = await page.locator('.cm-content').innerText() + const lineEnd = await u.getBoundingBox('[data-overlay-index="0"]') + await page.waitForTimeout(100) + await page.dragAndDrop('#stream', '#stream', { + sourcePosition: { x: lineEnd.x - 5, y: lineEnd.y }, + targetPosition: { x: lineEnd.x + dragPX, y: lineEnd.y + dragPX }, + }) + await expect(page.locator('.cm-content')).not.toHaveText(prevContent) + prevContent = await page.locator('.cm-content').innerText() - // we wait so it saves the code - await page.waitForTimeout(800) + // we wait so it saves the code + await page.waitForTimeout(800) - // drag tangentialArc handle - const tangentEnd = await u.getBoundingBox('[data-overlay-index="1"]') - await page.dragAndDrop('#stream', '#stream', { - sourcePosition: { x: tangentEnd.x + 10, y: tangentEnd.y - 5 }, - targetPosition: { - x: tangentEnd.x + dragPX, - y: tangentEnd.y + dragPX, - }, - }) - await page.waitForTimeout(100) - await expect(page.locator('.cm-content')).not.toHaveText(prevContent) + // drag tangentialArc handle + const tangentEnd = await u.getBoundingBox('[data-overlay-index="1"]') + await page.dragAndDrop('#stream', '#stream', { + sourcePosition: { x: tangentEnd.x + 10, y: tangentEnd.y - 5 }, + targetPosition: { + x: tangentEnd.x + dragPX, + y: tangentEnd.y + dragPX, + }, + }) + await page.waitForTimeout(100) + await expect(page.locator('.cm-content')).not.toHaveText(prevContent) - // expect the code to have changed - await editor.expectEditor.toContain( - `sketch001 = startSketchOn(XZ) + // expect the code to have changed + await editor.expectEditor.toContain( + `sketch001 = startSketchOn(XZ) |> startProfileAt([2.71, -2.71], %) |> line(end = [15.4, -2.78]) |> tangentialArc(endAbsolute = [27.6, -3.05]) |> close() |> extrude(length = 5)`, - { shouldNormalise: true } - ) + { shouldNormalise: true } + ) - // Hit undo - await page.keyboard.down('Control') - await page.keyboard.press('KeyZ') - await page.keyboard.up('Control') + // Hit undo + await page.keyboard.down('Control') + await page.keyboard.press('KeyZ') + await page.keyboard.up('Control') - await editor.expectEditor.toContain( - `sketch001 = startSketchOn(XZ) + await editor.expectEditor.toContain( + `sketch001 = startSketchOn(XZ) |> startProfileAt([2.71, -2.71], %) |> line(end = [15.4, -2.78]) |> tangentialArc(endAbsolute = [24.95, -0.38]) |> close() |> extrude(length = 5)`, - { shouldNormalise: true } - ) + { shouldNormalise: true } + ) - // Hit undo again. - await page.keyboard.down('Control') - await page.keyboard.press('KeyZ') - await page.keyboard.up('Control') + // Hit undo again. + await page.keyboard.down('Control') + await page.keyboard.press('KeyZ') + await page.keyboard.up('Control') - await editor.expectEditor.toContain( - `sketch001 = startSketchOn(XZ) + await editor.expectEditor.toContain( + `sketch001 = startSketchOn(XZ) |> startProfileAt([2.71, -2.71], %) |> line(end = [12.73, -0.09]) |> tangentialArc(endAbsolute = [24.95, -0.38]) |> close() |> extrude(length = 5)`, - { shouldNormalise: true } - ) + { shouldNormalise: true } + ) - // Hit undo again. - await page.keyboard.down('Control') - await page.keyboard.press('KeyZ') - await page.keyboard.up('Control') + // Hit undo again. + await page.keyboard.down('Control') + await page.keyboard.press('KeyZ') + await page.keyboard.up('Control') - await page.waitForTimeout(100) - await editor.expectEditor.toContain( - `sketch001 = startSketchOn(XZ) + await page.waitForTimeout(100) + await editor.expectEditor.toContain( + `sketch001 = startSketchOn(XZ) |> startProfileAt([4.61, -10.01], %) |> line(end = [12.73, -0.09]) |> tangentialArc(endAbsolute = [24.95, -0.38]) |> close() |> extrude(length = 5)`, - { shouldNormalise: true } - ) - } - ) + { shouldNormalise: true } + ) + }) test( `Can import a local OBJ file`, diff --git a/e2e/playwright/file-tree.spec.ts b/e2e/playwright/file-tree.spec.ts index 75a8e284f..f9c7a75e1 100644 --- a/e2e/playwright/file-tree.spec.ts +++ b/e2e/playwright/file-tree.spec.ts @@ -29,7 +29,7 @@ test.describe('integrations tests', () => { ) }) - const [clickObj] = await scene.makeMouseHelpers(726, 272) + const [clickObj] = scene.makeMouseHelpers(726, 272) await test.step('setup test', async () => { await homePage.expectState({ @@ -73,7 +73,7 @@ test.describe('integrations tests', () => { }) await test.step('setup for next assertion', async () => { await toolbar.openFile('main.kcl') - await page.waitForTimeout(1000) + await page.waitForTimeout(2000) await clickObj() await page.waitForTimeout(1000) await scene.moveNoWhere() diff --git a/e2e/playwright/fixtures/toolbarFixture.ts b/e2e/playwright/fixtures/toolbarFixture.ts index 2542bade9..37bee58c7 100644 --- a/e2e/playwright/fixtures/toolbarFixture.ts +++ b/e2e/playwright/fixtures/toolbarFixture.ts @@ -174,6 +174,13 @@ export class ToolbarFixture { openFile = async (fileName: string) => { await this.filePane.getByText(fileName).click() } + selectTangentialArc = async () => { + await this.page.getByRole('button', { name: 'caret down arcs:' }).click() + await expect( + this.page.getByTestId('dropdown-three-point-arc') + ).toBeVisible() + await this.page.getByTestId('dropdown-tangential-arc').click() + } selectCenterRectangle = async () => { await this.page .getByRole('button', { name: 'caret down rectangles:' }) diff --git a/e2e/playwright/lib/api-reporter.ts b/e2e/playwright/lib/api-reporter.ts index 395761930..f43738e69 100644 --- a/e2e/playwright/lib/api-reporter.ts +++ b/e2e/playwright/lib/api-reporter.ts @@ -41,7 +41,7 @@ class MyAPIReporter implements Reporter { annotations: test.annotations.map((a) => a.type), // e.g. 'fail' or 'fixme' id: test.id, // computed file/test/project ID used for reruns retry: result.retry, - tags: test.tags, // e.g. '@snapshot' or '@skipWin' + tags: test.tags, // e.g. '@snapshot' or '@skipLocalEngine' // Extra environment variables CI_COMMIT_SHA: process.env.CI_COMMIT_SHA || null, CI_PR_NUMBER: process.env.CI_PR_NUMBER || null, diff --git a/e2e/playwright/native-file-menu.spec.ts b/e2e/playwright/native-file-menu.spec.ts index 72f5606cf..c1794e67a 100644 --- a/e2e/playwright/native-file-menu.spec.ts +++ b/e2e/playwright/native-file-menu.spec.ts @@ -6,2352 +6,2372 @@ import { expect, test } from '@e2e/playwright/zoo-test' * Not all menu actions are tested. Some are default electron menu actions. * Test file menu actions that trigger something in the frontend */ -test.describe('Native file menu', { tag: ['@electron'] }, () => { - test.skip() // TODO: Reimplement native file menu tests - test.describe('Home page', () => { - test.describe('File role', () => { - test('Home.File.Create project', async ({ tronApp, cmdBar, page }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - return false - } - const newProject = app.applicationMenu.getMenuItemById( - 'File.Create project' - ) - if (!newProject) return false - newProject.click() - return true - }) +test.describe( + 'Native file menu', + { tag: ['@electron', '@macos', '@windows'] }, + () => { + test.skip() // TODO: Reimplement native file menu tests + test.describe('Home page', () => { + test.describe('File role', () => { + test('Home.File.Create project', async ({ tronApp, cmdBar, page }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + return false + } + const newProject = app.applicationMenu.getMenuItemById( + 'File.Create project' + ) + if (!newProject) return false + newProject.click() + return true + }) + ) + .toBe(true) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actualArgument = await cmdBar.cmdBarElement + .getByTestId('cmd-bar-arg-value') + .inputValue() + const expectedArgument = 'untitled' + expect(actualArgument).toBe(expectedArgument) + }) + test('Home.File.Open project', async ({ tronApp, cmdBar, page }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) return false + const openProject = + app.applicationMenu.getMenuItemById('File.Open project') + if (!openProject) { + return false + } + openProject.click() + return true + }) + ) + .toBe(true) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Open project' + expect(actual).toBe(expected) + }) + test('Home.File.Preferences.User settings', async ({ + tronApp, + cmdBar, + page, + }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + console.log(app) + if (!app || !app.applicationMenu) { + return false + } + const userSettings = app.applicationMenu.getMenuItemById( + 'File.Preferences.User settings' + ) + if (!userSettings) return false + userSettings.click() + return true + }) + ) + .toBe(true) + const settings = page.getByTestId('settings-dialog-panel') + await expect(settings).toBeVisible() + // You are viewing the user tab + const actualText = settings.getByText( + 'The overall appearance of the app' ) - .toBe(true) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actualArgument = await cmdBar.cmdBarElement - .getByTestId('cmd-bar-arg-value') - .inputValue() - const expectedArgument = 'untitled' - expect(actualArgument).toBe(expectedArgument) + await expect(actualText).toBeVisible() + }) + test('Home.File.Preferences.Keybindings', async ({ + tronApp, + cmdBar, + page, + }) => { + if (!tronApp) { + fail() + } + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) return false + const keybindings = app.applicationMenu.getMenuItemById( + 'File.Preferences.Keybindings' + ) + if (!keybindings) { + return false + } + keybindings.click() + return true + }) + ) + .toBe(true) + const settings = page.getByTestId('settings-dialog-panel') + await expect(settings).toBeVisible() + // You are viewing the keybindings tab + const enterSketchMode = settings.locator('#enter-sketch-mode') + await expect(enterSketchMode).toBeVisible() + }) + test('Home.File.Preferences.User default units', async ({ + tronApp, + cmdBar, + page, + }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + return false + } + const menu = app.applicationMenu.getMenuItemById( + 'File.Preferences.User default units' + ) + if (!menu) return false + menu.click() + return true + }) + ) + .toBe(true) + const settings = page.getByTestId('settings-dialog-panel') + await expect(settings).toBeVisible() + const defaultUnit = settings.locator('#defaultUnit') + await expect(defaultUnit).toBeVisible() + }) + test('Home.File.Preferences.Theme', async ({ + tronApp, + cmdBar, + page, + }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) return false + const menu = app.applicationMenu.getMenuItemById( + 'File.Preferences.Theme' + ) + if (!menu) { + return false + } + menu.click() + return true + }) + ) + .toBe(true) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Settings · app · theme' + expect(actual).toBe(expected) + }) + test('Home.File.Preferences.Theme color', async ({ + tronApp, + cmdBar, + page, + }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + return false + } + const menu = app.applicationMenu.getMenuItemById( + 'File.Preferences.Theme color' + ) + if (!menu) return false + menu.click() + return true + }) + ) + .toBe(true) + const settings = page.getByTestId('settings-dialog-panel') + await expect(settings).toBeVisible() + const defaultUnit = settings.locator('#themeColor') + await expect(defaultUnit).toBeVisible() + }) + test('Home.File.Preferences.Sign out', async ({ + tronApp, + cmdBar, + page, + }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) return false + const menu = + app.applicationMenu.getMenuItemById('File.Sign out') + if (!menu) { + return false + } + // FIXME: Add back when you can actually sign out + // menu.click() + return true + }) + ) + .toBe(true) + // FIXME: When signing out during E2E the page is not bound correctly. + // It cannot find the button + // const signIn = page.getByTestId('sign-in-button') + // await expect(signIn).toBeVisible() + }) }) - test('Home.File.Open project', async ({ tronApp, cmdBar, page }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) return false - const openProject = - app.applicationMenu.getMenuItemById('File.Open project') - if (!openProject) { - return false - } - openProject.click() - return true - }) - ) - .toBe(true) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Open project' - expect(actual).toBe(expected) + + test.describe('Edit role', () => { + test('Home.Edit.Rename project', async ({ tronApp, cmdBar, page }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + return false + } + const menu = app.applicationMenu.getMenuItemById( + 'Edit.Rename project' + ) + if (!menu) return false + menu.click() + return true + }) + ) + .toBe(true) + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Rename project' + expect(actual).toBe(expected) + }) + test('Home.Edit.Delete project', async ({ tronApp, cmdBar, page }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) return false + const menu = app.applicationMenu.getMenuItemById( + 'Edit.Delete project' + ) + if (!menu) { + return false + } + menu.click() + return true + }) + ) + .toBe(true) + // Check the placeholder project name exists + const actual = async () => + cmdBar.cmdBarElement.getByTestId('command-name').textContent() + const expected = 'Delete project' + await expect.poll(async () => await actual()).toBe(expected) + }) + test('Home.Edit.Change project directory', async ({ + tronApp, + cmdBar, + page, + }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + return false + } + const menu = app.applicationMenu.getMenuItemById( + 'Edit.Change project directory' + ) + if (!menu) return false + menu.click() + return true + }) + ) + .toBe(true) + const settings = page.getByTestId('settings-dialog-panel') + await expect(settings).toBeVisible() + const projectDirectory = settings.locator('#projectDirectory') + await expect(projectDirectory).toBeVisible() + }) }) - test('Home.File.Preferences.User settings', async ({ - tronApp, - cmdBar, - page, - }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - console.log(app) - if (!app || !app.applicationMenu) { - return false - } - const userSettings = app.applicationMenu.getMenuItemById( - 'File.Preferences.User settings' - ) - if (!userSettings) return false - userSettings.click() - return true - }) - ) - .toBe(true) - const settings = page.getByTestId('settings-dialog-panel') - await expect(settings).toBeVisible() - // You are viewing the user tab - const actualText = settings.getByText( - 'The overall appearance of the app' - ) - await expect(actualText).toBeVisible() + test.describe('View role', () => { + test('Home.View.Command Palette...', async ({ + tronApp, + cmdBar, + page, + }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) return false + const menu = app.applicationMenu.getMenuItemById( + 'View.Command Palette...' + ) + if (!menu) { + return false + } + menu.click() + return true + }) + ) + .toBe(true) + // Check the placeholder project name exists + const actual = cmdBar.cmdBarElement.getByTestId('cmd-bar-search') + await expect(actual).toBeVisible() + }) }) - test('Home.File.Preferences.Keybindings', async ({ - tronApp, - cmdBar, - page, - }) => { - if (!tronApp) { - fail() - } - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) return false - const keybindings = app.applicationMenu.getMenuItemById( - 'File.Preferences.Keybindings' - ) - if (!keybindings) { - return false - } - keybindings.click() - return true - }) + test.describe('Help role', () => { + test('Home.Help.Show all commands', async ({ + tronApp, + cmdBar, + page, + }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + return false + } + const menu = app.applicationMenu.getMenuItemById( + 'Help.Show all commands' + ) + if (!menu) return false + menu.click() + return true + }) + ) + .toBe(true) + // Check the placeholder project name exists + const actual = cmdBar.cmdBarElement.getByTestId('cmd-bar-search') + await expect(actual).toBeVisible() + }) + test('Home.Help.KCL code samples', async ({ + tronApp, + cmdBar, + page, + }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) return false + const menu = app.applicationMenu.getMenuItemById( + 'Help.KCL code samples' + ) + if (!menu) { + return false + } + return true + }) + ) + .toBe(true) + }) + test('Home.Help.Report a bug', async ({ tronApp, cmdBar, page }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + return false + } + const menu = + app.applicationMenu.getMenuItemById('Help.Report a bug') + if (!menu) return false + menu.click() + return true + }) + ) + .toBe(true) + // Core dump and refresh magic number timeout + await page.waitForTimeout(7000) + const actual = page.getByText( + 'No Projects found, ready to make your first one?' ) - .toBe(true) - const settings = page.getByTestId('settings-dialog-panel') - await expect(settings).toBeVisible() - // You are viewing the keybindings tab - const enterSketchMode = settings.locator('#enter-sketch-mode') - await expect(enterSketchMode).toBeVisible() - }) - test('Home.File.Preferences.User default units', async ({ - tronApp, - cmdBar, - page, - }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - return false - } - const menu = app.applicationMenu.getMenuItemById( - 'File.Preferences.User default units' - ) - if (!menu) return false - menu.click() - return true - }) + await expect(actual).toBeVisible() + }) + test('Home.Help.Reset onboarding', async ({ + tronApp, + cmdBar, + page, + }) => { + if (!tronApp) fail() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) return false + const menu = app.applicationMenu.getMenuItemById( + 'Help.Reset onboarding' + ) + if (!menu) { + return false + } + menu.click() + return true + }) + ) + .toBe(true) + + const actual = page.getByText( + `This is a hardware design tool that lets you edit visually, with code, or both. It's powered by the KittyCAD Design API, the first API created for anyone to build hardware design tools.` ) - .toBe(true) - const settings = page.getByTestId('settings-dialog-panel') - await expect(settings).toBeVisible() - const defaultUnit = settings.locator('#defaultUnit') - await expect(defaultUnit).toBeVisible() - }) - test('Home.File.Preferences.Theme', async ({ tronApp, cmdBar, page }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) return false - const menu = app.applicationMenu.getMenuItemById( - 'File.Preferences.Theme' - ) - if (!menu) { - return false - } - menu.click() - return true - }) - ) - .toBe(true) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Settings · app · theme' - expect(actual).toBe(expected) - }) - test('Home.File.Preferences.Theme color', async ({ - tronApp, - cmdBar, - page, - }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - return false - } - const menu = app.applicationMenu.getMenuItemById( - 'File.Preferences.Theme color' - ) - if (!menu) return false - menu.click() - return true - }) - ) - .toBe(true) - const settings = page.getByTestId('settings-dialog-panel') - await expect(settings).toBeVisible() - const defaultUnit = settings.locator('#themeColor') - await expect(defaultUnit).toBeVisible() - }) - test('Home.File.Preferences.Sign out', async ({ - tronApp, - cmdBar, - page, - }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) return false - const menu = - app.applicationMenu.getMenuItemById('File.Sign out') - if (!menu) { - return false - } - // FIXME: Add back when you can actually sign out - // menu.click() - return true - }) - ) - .toBe(true) - // FIXME: When signing out during E2E the page is not bound correctly. - // It cannot find the button - // const signIn = page.getByTestId('sign-in-button') - // await expect(signIn).toBeVisible() + await expect(actual).toBeVisible() + }) }) }) + test.describe('Modeling page', () => { + test.describe('File Role', () => { + test('Modeling.File.Create project', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) fail() + await homePage.goToModelingScene() + await scene.connectionEstablished() - test.describe('Edit role', () => { - test('Home.Edit.Rename project', async ({ tronApp, cmdBar, page }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - return false - } - const menu = app.applicationMenu.getMenuItemById( - 'Edit.Rename project' - ) - if (!menu) return false - menu.click() - return true - }) + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) fail() + const newProject = app.applicationMenu.getMenuItemById( + 'File.Create project' + ) + if (!newProject) fail() + newProject.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actualArgument = await cmdBar.cmdBarElement + .getByTestId('cmd-bar-arg-value') + .inputValue() + const expectedArgument = 'untitled' + expect(actualArgument).toBe(expectedArgument) + }) + test('Modeling.File.Open project', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const openProject = + app.applicationMenu.getMenuItemById('File.Open project') + if (!openProject) { + throw new Error('File.Open project') + } + openProject.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Open project' + expect(actual).toBe(expected) + }) + test('Modeling.File.Load external model', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const openProject = app.applicationMenu.getMenuItemById( + 'File.Load external model' + ) + if (!openProject) { + throw new Error('File.Load external model') + } + openProject.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Load external model' + expect(actual).toBe(expected) + }) + test('Modeling.File.Export current part', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const openProject = app.applicationMenu.getMenuItemById( + 'File.Export current part' + ) + if (!openProject) { + throw new Error('File.Export current part') + } + openProject.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Export' + expect(actual).toBe(expected) + }) + test('Modeling.File.Share part via Zoo link', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const openProject = app.applicationMenu.getMenuItemById( + 'File.Share part via Zoo link' + ) + if (!openProject) { + throw new Error('File.Share part via Zoo link') + } + openProject.click() + }) + + const textToCheck = + 'Link copied to clipboard. Anyone who clicks this link will get a copy of this file. Share carefully!' + // Check if text appears anywhere in the page + const isTextVisible = page.getByText(textToCheck) + + await expect(isTextVisible).toBeVisible({ timeout: 10000 }) + }) + test('Modeling.File.Preferences.Project settings', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const openProject = app.applicationMenu.getMenuItemById( + 'File.Preferences.Project settings' + ) + if (!openProject) { + throw new Error('File.Preferences.Project settings') + } + openProject.click() + }) + + const settings = page.getByTestId('settings-dialog-panel') + await expect(settings).toBeVisible() + // You are viewing the user tab + const actualText = settings.getByText( + 'The hue of the primary theme color for the app' ) - .toBe(true) - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Rename project' - expect(actual).toBe(expected) + await expect(actualText).toBeVisible() + }) + test('Modeling.File.Preferences.User settings', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const userSettings = app.applicationMenu.getMenuItemById( + 'File.Preferences.User settings' + ) + if (!userSettings) { + throw new Error('File.Preferences.User settings') + } + userSettings.click() + }) + const settings = page.getByTestId('settings-dialog-panel') + await expect(settings).toBeVisible() + // You are viewing the user tab + const actualText = settings.getByText( + 'The overall appearance of the app' + ) + await expect(actualText).toBeVisible() + }) + test('Modeling.File.Preferences.Keybindings', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const keybindings = app.applicationMenu.getMenuItemById( + 'File.Preferences.Keybindings' + ) + if (!keybindings) { + throw new Error('File.Preferences.Keybindings') + } + keybindings.click() + }) + const settings = page.getByTestId('settings-dialog-panel') + await expect(settings).toBeVisible() + // You are viewing the keybindings tab + const enterSketchMode = settings.locator('#enter-sketch-mode') + await expect(enterSketchMode).toBeVisible() + }) + test('Modeling.File.Preferences.User default units', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'File.Preferences.User default units' + ) + if (!menu) { + throw new Error('File.Preferences.User default units') + } + menu.click() + }) + const settings = page.getByTestId('settings-dialog-panel') + await expect(settings).toBeVisible() + const defaultUnit = settings.locator('#defaultUnit') + await expect(defaultUnit).toBeVisible() + }) + test('Modeling.File.Preferences.Theme', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'File.Preferences.Theme' + ) + if (!menu) { + throw new Error('File.Preferences.Theme') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Settings · app · theme' + expect(actual).toBe(expected) + }) + test('Modeling.File.Preferences.Theme color', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'File.Preferences.Theme color' + ) + if (!menu) { + throw new Error('File.Preferences.Theme color') + } + menu.click() + }) + const settings = page.getByTestId('settings-dialog-panel') + await expect(settings).toBeVisible() + const defaultUnit = settings.locator('#themeColor') + await expect(defaultUnit).toBeVisible() + }) + test('Modeling.File.Preferences.Sign out', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = + app.applicationMenu.getMenuItemById('File.Sign out') + if (!menu) { + throw new Error('File.Sign out') + } + // FIXME: Add back when you can actually sign out + // menu.click() + return true + }) + ) + .toBe(true) + // FIXME: When signing out during E2E the page is not bound correctly. + // It cannot find the button + // const signIn = page.getByTestId('sign-in-button') + // await expect(signIn).toBeVisible() + }) }) - test('Home.Edit.Delete project', async ({ tronApp, cmdBar, page }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) return false - const menu = app.applicationMenu.getMenuItemById( - 'Edit.Delete project' - ) - if (!menu) { - return false - } - menu.click() - return true - }) - ) - .toBe(true) - // Check the placeholder project name exists - const actual = async () => - cmdBar.cmdBarElement.getByTestId('command-name').textContent() - const expected = 'Delete project' - await expect.poll(async () => await actual()).toBe(expected) + test.describe('Edit role', () => { + test('Modeling.Edit.Modify with Zoo Text-To-CAD', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Edit.Modify with Zoo Text-To-CAD' + ) + if (!menu) { + throw new Error('Edit.Modify with Zoo Text-To-CAD') + } + menu.click() + }) + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Prompt-to-edit' + expect(actual).toBe(expected) + }) + test('Modeling.Edit.Edit parameter', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Edit.Edit parameter' + ) + if (!menu) { + throw new Error('Edit.Edit parameter') + } + menu.click() + }) + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Edit parameter' + expect(actual).toBe(expected) + }) + test('Modeling.Edit.Format code', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById('Edit.Format code') + if (!menu) { + throw new Error('Edit.Format code') + } + // NO OP: Do not test that the code mirror will actually format the code. + // The format code happens, there is no UI. + // The actual business logic to test this feature should be in another E2E test. + // menu.click() + }) + }) + test('Modeling.Edit.Rename project', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Edit.Rename project' + ) + if (!menu) { + throw new Error('Edit.Rename project') + } + menu.click() + }) + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Rename project' + expect(actual).toBe(expected) + }) + test('Modeling.Edit.Delete project', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Edit.Delete project' + ) + if (!menu) { + throw new Error('Edit.Delete project') + } + menu.click() + }) + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Delete project' + expect(actual).toBe(expected) + }) + test('Modeling.Edit.Change project directory', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Edit.Change project directory' + ) + if (!menu) { + throw new Error('Edit.Change project directory') + } + menu.click() + }) + const settings = page.getByTestId('settings-dialog-panel') + await expect(settings).toBeVisible() + const projectDirectory = settings.locator('#projectDirectory') + await expect(projectDirectory).toBeVisible() + }) }) - test('Home.Edit.Change project directory', async ({ - tronApp, - cmdBar, - page, - }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - return false - } - const menu = app.applicationMenu.getMenuItemById( - 'Edit.Change project directory' - ) - if (!menu) return false - menu.click() - return true - }) + test.describe('View role', () => { + test('Modeling.View.Command Palette...', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Command Palette...' + ) + if (!menu) { + throw new Error('View.Command Palette...') + } + menu.click() + }) + // Check the placeholder project name exists + const actual = cmdBar.cmdBarElement.getByTestId('cmd-bar-search') + await expect(actual).toBeVisible() + }) + test('Modeling.View.Orthographic view', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Orthographic view' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + + const textToCheck = + 'Set camera projection to "orthographic" as a user default' + // Check if text appears anywhere in the page + const isTextVisible = page.getByText(textToCheck) + + await expect(isTextVisible).toBeVisible({ timeout: 10000 }) + }) + test('Modeling.View.Perspective view', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Perspective view' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + + const textToCheck = + 'Set camera projection to "perspective" as a user default' + // Check if text appears anywhere in the page + const isTextVisible = page.getByText(textToCheck) + + await expect(isTextVisible).toBeVisible({ timeout: 10000 }) + }) + test('Modeling.View.Standard views.Right view', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Standard views.Right view' + ) + if (!menu) { + throw new Error('menu missing') + } + // menu.click() + }) + + // TODO: Make all of these screenshot E2E tests. + // Wait for camera to move + // await page.waitForTimeout(5000) + + // const locator = page.getByTestId('gizmo').locator('canvas') + // const image = await locator.screenshot({ path: 'Modeling.View.Standard-views.Right-view.png' }); + // expect(image).toMatchSnapshot('Modeling.View.Standard-views.Right-view') + }) + test('Modeling.View.Standard views.Back view', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Standard views.Back view' + ) + if (!menu) { + throw new Error('menu missing') + } + // menu.click() + }) + }) + test('Modeling.View.Standard views.Top view', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Standard views.Top view' + ) + if (!menu) { + throw new Error('menu missing') + } + // menu.click() + }) + }) + test('Modeling.View.Standard views.Left view', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Standard views.Left view' + ) + if (!menu) { + throw new Error('menu missing') + } + // menu.click() + }) + }) + test('Modeling.View.Standard views.Front view', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Standard views.Front view' + ) + if (!menu) { + throw new Error('menu missing') + } + // menu.click() + }) + }) + test('Modeling.View.Standard views.Bottom view', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Standard views.Bottom view' + ) + if (!menu) { + throw new Error('menu missing') + } + // menu.click() + }) + }) + test('Modeling.View.Standard views.Reset view', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Standard views.Reset view' + ) + if (!menu) { + throw new Error('menu missing') + } + // menu.click() + }) + }) + test('Modeling.View.Standard views.Center view on selection', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Standard views.Center view on selection' + ) + if (!menu) { + throw new Error('menu missing') + } + // menu.click() + }) + }) + test('Modeling.View.Standard views.Refresh', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Standard views.Refresh' + ) + if (!menu) { + throw new Error('menu missing') + } + // menu.click() + }) + }) + test('Modeling.View.Named views.Create named view', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Named views.Create named view' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Create named view' + expect(actual).toBe(expected) + }) + test('Modeling.View.Named views.Load named view', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Named views.Load named view' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Load named view' + expect(actual).toBe(expected) + }) + test('Modeling.View.Named views.Delete named view', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Named views.Delete named view' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Delete named view' + expect(actual).toBe(expected) + }) + test('Modeling.View.Panes.Feature tree', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Panes.Feature tree' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + + const button = page.getByTestId('feature-tree-pane-button') + const isPressed = await button.getAttribute('aria-pressed') + expect(isPressed).toBe('true') + }) + test('Modeling.View.Panes.KCL code', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Panes.KCL code' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + + const button = page.getByTestId('code-pane-button') + const isPressed = await button.getAttribute('aria-pressed') + expect(isPressed).toBe('true') + }) + test('Modeling.View.Panes.Project files', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Panes.Project files' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + + const button = page.getByTestId('files-pane-button') + const isPressed = await button.getAttribute('aria-pressed') + expect(isPressed).toBe('true') + }) + test('Modeling.View.Panes.Variables', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'View.Panes.Variables' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + + const button = page.getByTestId('variables-pane-button') + const isPressed = await button.getAttribute('aria-pressed') + expect(isPressed).toBe('true') + }) + test('Modeling.View.Panes.Logs', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById('View.Panes.Logs') + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + + const button = page.getByTestId('logs-pane-button') + const isPressed = await button.getAttribute('aria-pressed') + expect(isPressed).toBe('true') + }) + }) + test.describe('Design role', () => { + // TODO Start sketch + test('Modeling.Design.Create an offset plane', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Design.Create an offset plane' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Offset plane' + expect(actual).toBe(expected) + }) + test('Modeling.Design.Create a helix', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Design.Create a helix' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Helix' + expect(actual).toBe(expected) + }) + test('Modeling.Design.Create a parameter', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Design.Create a parameter' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Create parameter' + expect(actual).toBe(expected) + }) + + test('Modeling.Design.Create an additive feature.Extrude', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Design.Create an additive feature.Extrude' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Extrude' + expect(actual).toBe(expected) + }) + test('Modeling.Design.Create an additive feature.Revolve', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Design.Create an additive feature.Revolve' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Revolve' + expect(actual).toBe(expected) + }) + test('Modeling.Design.Create an additive feature.Sweep', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Design.Create an additive feature.Sweep' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Sweep' + expect(actual).toBe(expected) + }) + test('Modeling.Design.Create an additive feature.Loft', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Design.Create an additive feature.Loft' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Loft' + expect(actual).toBe(expected) + }) + test('Modeling.Design.Apply modification feature.Fillet', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Design.Apply modification feature.Fillet' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Fillet' + expect(actual).toBe(expected) + }) + test('Modeling.Design.Apply modification feature.Chamfer', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Design.Apply modification feature.Chamfer' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Chamfer' + expect(actual).toBe(expected) + }) + + test('Modeling.Design.Apply modification feature.Shell', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Design.Apply modification feature.Shell' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Shell' + expect(actual).toBe(expected) + }) + + test('Modeling.Design.Insert from project file', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.settled(cmdBar) + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const openProject = app.applicationMenu.getMenuItemById( + 'Design.Insert from project file' + ) + if (!openProject) { + throw new Error('Design.Insert from project file') + } + openProject.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Insert' + expect(actual).toBe(expected) + }) + + test('Modeling.Design.Create with Zoo Text-To-CAD', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Design.Create with Zoo Text-To-CAD' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Text-to-CAD' + expect(actual).toBe(expected) + }) + + test('Modeling.Design.Modify with Zoo Text-To-CAD', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) { + throw new Error('app or app.applicationMenu is missing') + } + const menu = app.applicationMenu.getMenuItemById( + 'Design.Modify with Zoo Text-To-CAD' + ) + if (!menu) { + throw new Error('menu missing') + } + menu.click() + }) + // Check that the command bar is opened + await expect(cmdBar.cmdBarElement).toBeVisible() + // Check the placeholder project name exists + const actual = await cmdBar.cmdBarElement + .getByTestId('command-name') + .textContent() + const expected = 'Prompt-to-edit' + expect(actual).toBe(expected) + }) + }) + test.describe('Help role', () => { + test('Modeling.Help.Show all commands', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) fail() + const menu = app.applicationMenu.getMenuItemById( + 'Help.Show all commands' + ) + if (!menu) fail() + menu.click() + }) + // Check the placeholder project name exists + const actual = cmdBar.cmdBarElement.getByTestId('cmd-bar-search') + await expect(actual).toBeVisible() + }) + test('Modeling.Help.KCL code samples', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) fail() + const menu = app.applicationMenu.getMenuItemById( + 'Help.KCL code samples' + ) + if (!menu) fail() + }) + }) + test('Modeling.Help.Report a bug', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + toolbar, + }) => { + // TODO: this test has been dead dead on the idle stream branch + test.fixme(orRunWhenFullSuiteEnabled()) + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await expect + .poll( + async () => + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) return false + const menu = + app.applicationMenu.getMenuItemById('Help.Report a bug') + if (!menu) return false + menu.click() + return true + }) + ) + .toBe(true) + // Core dump and refresh magic number timeout + await scene.connectionEstablished() + await expect(toolbar.startSketchBtn).toBeVisible() + }) + test('Modeling.Help.Reset onboarding', async ({ + tronApp, + cmdBar, + page, + homePage, + scene, + }) => { + if (!tronApp) { + throwTronAppMissing() + return + } + await homePage.goToModelingScene() + await scene.connectionEstablished() + + // Run electron snippet to find the Menu! + await page.waitForTimeout(100) // wait for createModelingPageMenu() to run + await tronApp.electron.evaluate(async ({ app }) => { + if (!app || !app.applicationMenu) fail() + const menu = app.applicationMenu.getMenuItemById( + 'Help.Reset onboarding' + ) + if (!menu) fail() + menu.click() + }) + + const actual = page.getByText( + `This is a hardware design tool that lets you edit visually, with code, or both. It's powered by the KittyCAD Design API, the first API created for anyone to build hardware design tools.` ) - .toBe(true) - const settings = page.getByTestId('settings-dialog-panel') - await expect(settings).toBeVisible() - const projectDirectory = settings.locator('#projectDirectory') - await expect(projectDirectory).toBeVisible() + await expect(actual).toBeVisible() + }) }) }) - test.describe('View role', () => { - test('Home.View.Command Palette...', async ({ - tronApp, - cmdBar, - page, - }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) return false - const menu = app.applicationMenu.getMenuItemById( - 'View.Command Palette...' - ) - if (!menu) { - return false - } - menu.click() - return true - }) - ) - .toBe(true) - // Check the placeholder project name exists - const actual = cmdBar.cmdBarElement.getByTestId('cmd-bar-search') - await expect(actual).toBeVisible() - }) - }) - test.describe('Help role', () => { - test('Home.Help.Show all commands', async ({ tronApp, cmdBar, page }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - return false - } - const menu = app.applicationMenu.getMenuItemById( - 'Help.Show all commands' - ) - if (!menu) return false - menu.click() - return true - }) - ) - .toBe(true) - // Check the placeholder project name exists - const actual = cmdBar.cmdBarElement.getByTestId('cmd-bar-search') - await expect(actual).toBeVisible() - }) - test('Home.Help.KCL code samples', async ({ tronApp, cmdBar, page }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) return false - const menu = app.applicationMenu.getMenuItemById( - 'Help.KCL code samples' - ) - if (!menu) { - return false - } - return true - }) - ) - .toBe(true) - }) - test('Home.Help.Report a bug', async ({ tronApp, cmdBar, page }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - return false - } - const menu = - app.applicationMenu.getMenuItemById('Help.Report a bug') - if (!menu) return false - menu.click() - return true - }) - ) - .toBe(true) - // Core dump and refresh magic number timeout - await page.waitForTimeout(7000) - const actual = page.getByText( - 'No Projects found, ready to make your first one?' - ) - await expect(actual).toBeVisible() - }) - test('Home.Help.Reset onboarding', async ({ tronApp, cmdBar, page }) => { - if (!tronApp) fail() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) return false - const menu = app.applicationMenu.getMenuItemById( - 'Help.Reset onboarding' - ) - if (!menu) { - return false - } - menu.click() - return true - }) - ) - .toBe(true) - - const actual = page.getByText( - `This is a hardware design tool that lets you edit visually, with code, or both. It's powered by the KittyCAD Design API, the first API created for anyone to build hardware design tools.` - ) - await expect(actual).toBeVisible() - }) - }) - }) - test.describe('Modeling page', () => { - test.describe('File Role', () => { - test('Modeling.File.Create project', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) fail() - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) fail() - const newProject = app.applicationMenu.getMenuItemById( - 'File.Create project' - ) - if (!newProject) fail() - newProject.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actualArgument = await cmdBar.cmdBarElement - .getByTestId('cmd-bar-arg-value') - .inputValue() - const expectedArgument = 'untitled' - expect(actualArgument).toBe(expectedArgument) - }) - test('Modeling.File.Open project', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const openProject = - app.applicationMenu.getMenuItemById('File.Open project') - if (!openProject) { - throw new Error('File.Open project') - } - openProject.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Open project' - expect(actual).toBe(expected) - }) - test('Modeling.File.Load external model', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const openProject = app.applicationMenu.getMenuItemById( - 'File.Load external model' - ) - if (!openProject) { - throw new Error('File.Load external model') - } - openProject.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Load external model' - expect(actual).toBe(expected) - }) - test('Modeling.File.Export current part', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const openProject = app.applicationMenu.getMenuItemById( - 'File.Export current part' - ) - if (!openProject) { - throw new Error('File.Export current part') - } - openProject.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Export' - expect(actual).toBe(expected) - }) - test('Modeling.File.Share part via Zoo link', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const openProject = app.applicationMenu.getMenuItemById( - 'File.Share part via Zoo link' - ) - if (!openProject) { - throw new Error('File.Share part via Zoo link') - } - openProject.click() - }) - - const textToCheck = - 'Link copied to clipboard. Anyone who clicks this link will get a copy of this file. Share carefully!' - // Check if text appears anywhere in the page - const isTextVisible = page.getByText(textToCheck) - - await expect(isTextVisible).toBeVisible({ timeout: 10000 }) - }) - test('Modeling.File.Preferences.Project settings', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const openProject = app.applicationMenu.getMenuItemById( - 'File.Preferences.Project settings' - ) - if (!openProject) { - throw new Error('File.Preferences.Project settings') - } - openProject.click() - }) - - const settings = page.getByTestId('settings-dialog-panel') - await expect(settings).toBeVisible() - // You are viewing the user tab - const actualText = settings.getByText( - 'The hue of the primary theme color for the app' - ) - await expect(actualText).toBeVisible() - }) - test('Modeling.File.Preferences.User settings', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const userSettings = app.applicationMenu.getMenuItemById( - 'File.Preferences.User settings' - ) - if (!userSettings) { - throw new Error('File.Preferences.User settings') - } - userSettings.click() - }) - const settings = page.getByTestId('settings-dialog-panel') - await expect(settings).toBeVisible() - // You are viewing the user tab - const actualText = settings.getByText( - 'The overall appearance of the app' - ) - await expect(actualText).toBeVisible() - }) - test('Modeling.File.Preferences.Keybindings', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const keybindings = app.applicationMenu.getMenuItemById( - 'File.Preferences.Keybindings' - ) - if (!keybindings) { - throw new Error('File.Preferences.Keybindings') - } - keybindings.click() - }) - const settings = page.getByTestId('settings-dialog-panel') - await expect(settings).toBeVisible() - // You are viewing the keybindings tab - const enterSketchMode = settings.locator('#enter-sketch-mode') - await expect(enterSketchMode).toBeVisible() - }) - test('Modeling.File.Preferences.User default units', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'File.Preferences.User default units' - ) - if (!menu) { - throw new Error('File.Preferences.User default units') - } - menu.click() - }) - const settings = page.getByTestId('settings-dialog-panel') - await expect(settings).toBeVisible() - const defaultUnit = settings.locator('#defaultUnit') - await expect(defaultUnit).toBeVisible() - }) - test('Modeling.File.Preferences.Theme', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'File.Preferences.Theme' - ) - if (!menu) { - throw new Error('File.Preferences.Theme') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Settings · app · theme' - expect(actual).toBe(expected) - }) - test('Modeling.File.Preferences.Theme color', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'File.Preferences.Theme color' - ) - if (!menu) { - throw new Error('File.Preferences.Theme color') - } - menu.click() - }) - const settings = page.getByTestId('settings-dialog-panel') - await expect(settings).toBeVisible() - const defaultUnit = settings.locator('#themeColor') - await expect(defaultUnit).toBeVisible() - }) - test('Modeling.File.Preferences.Sign out', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = - app.applicationMenu.getMenuItemById('File.Sign out') - if (!menu) { - throw new Error('File.Sign out') - } - // FIXME: Add back when you can actually sign out - // menu.click() - return true - }) - ) - .toBe(true) - // FIXME: When signing out during E2E the page is not bound correctly. - // It cannot find the button - // const signIn = page.getByTestId('sign-in-button') - // await expect(signIn).toBeVisible() - }) - }) - test.describe('Edit role', () => { - test('Modeling.Edit.Modify with Zoo Text-To-CAD', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Edit.Modify with Zoo Text-To-CAD' - ) - if (!menu) { - throw new Error('Edit.Modify with Zoo Text-To-CAD') - } - menu.click() - }) - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Prompt-to-edit' - expect(actual).toBe(expected) - }) - test('Modeling.Edit.Edit parameter', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Edit.Edit parameter' - ) - if (!menu) { - throw new Error('Edit.Edit parameter') - } - menu.click() - }) - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Edit parameter' - expect(actual).toBe(expected) - }) - test('Modeling.Edit.Format code', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById('Edit.Format code') - if (!menu) { - throw new Error('Edit.Format code') - } - // NO OP: Do not test that the code mirror will actually format the code. - // The format code happens, there is no UI. - // The actual business logic to test this feature should be in another E2E test. - // menu.click() - }) - }) - test('Modeling.Edit.Rename project', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Edit.Rename project' - ) - if (!menu) { - throw new Error('Edit.Rename project') - } - menu.click() - }) - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Rename project' - expect(actual).toBe(expected) - }) - test('Modeling.Edit.Delete project', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Edit.Delete project' - ) - if (!menu) { - throw new Error('Edit.Delete project') - } - menu.click() - }) - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Delete project' - expect(actual).toBe(expected) - }) - test('Modeling.Edit.Change project directory', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Edit.Change project directory' - ) - if (!menu) { - throw new Error('Edit.Change project directory') - } - menu.click() - }) - const settings = page.getByTestId('settings-dialog-panel') - await expect(settings).toBeVisible() - const projectDirectory = settings.locator('#projectDirectory') - await expect(projectDirectory).toBeVisible() - }) - }) - test.describe('View role', () => { - test('Modeling.View.Command Palette...', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Command Palette...' - ) - if (!menu) { - throw new Error('View.Command Palette...') - } - menu.click() - }) - // Check the placeholder project name exists - const actual = cmdBar.cmdBarElement.getByTestId('cmd-bar-search') - await expect(actual).toBeVisible() - }) - test('Modeling.View.Orthographic view', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Orthographic view' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - - const textToCheck = - 'Set camera projection to "orthographic" as a user default' - // Check if text appears anywhere in the page - const isTextVisible = page.getByText(textToCheck) - - await expect(isTextVisible).toBeVisible({ timeout: 10000 }) - }) - test('Modeling.View.Perspective view', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Perspective view' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - - const textToCheck = - 'Set camera projection to "perspective" as a user default' - // Check if text appears anywhere in the page - const isTextVisible = page.getByText(textToCheck) - - await expect(isTextVisible).toBeVisible({ timeout: 10000 }) - }) - test('Modeling.View.Standard views.Right view', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Standard views.Right view' - ) - if (!menu) { - throw new Error('menu missing') - } - // menu.click() - }) - - // TODO: Make all of these screenshot E2E tests. - // Wait for camera to move - // await page.waitForTimeout(5000) - - // const locator = page.getByTestId('gizmo').locator('canvas') - // const image = await locator.screenshot({ path: 'Modeling.View.Standard-views.Right-view.png' }); - // expect(image).toMatchSnapshot('Modeling.View.Standard-views.Right-view') - }) - test('Modeling.View.Standard views.Back view', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Standard views.Back view' - ) - if (!menu) { - throw new Error('menu missing') - } - // menu.click() - }) - }) - test('Modeling.View.Standard views.Top view', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Standard views.Top view' - ) - if (!menu) { - throw new Error('menu missing') - } - // menu.click() - }) - }) - test('Modeling.View.Standard views.Left view', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Standard views.Left view' - ) - if (!menu) { - throw new Error('menu missing') - } - // menu.click() - }) - }) - test('Modeling.View.Standard views.Front view', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Standard views.Front view' - ) - if (!menu) { - throw new Error('menu missing') - } - // menu.click() - }) - }) - test('Modeling.View.Standard views.Bottom view', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Standard views.Bottom view' - ) - if (!menu) { - throw new Error('menu missing') - } - // menu.click() - }) - }) - test('Modeling.View.Standard views.Reset view', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Standard views.Reset view' - ) - if (!menu) { - throw new Error('menu missing') - } - // menu.click() - }) - }) - test('Modeling.View.Standard views.Center view on selection', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Standard views.Center view on selection' - ) - if (!menu) { - throw new Error('menu missing') - } - // menu.click() - }) - }) - test('Modeling.View.Standard views.Refresh', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Standard views.Refresh' - ) - if (!menu) { - throw new Error('menu missing') - } - // menu.click() - }) - }) - test('Modeling.View.Named views.Create named view', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Named views.Create named view' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Create named view' - expect(actual).toBe(expected) - }) - test('Modeling.View.Named views.Load named view', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Named views.Load named view' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Load named view' - expect(actual).toBe(expected) - }) - test('Modeling.View.Named views.Delete named view', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Named views.Delete named view' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Delete named view' - expect(actual).toBe(expected) - }) - test('Modeling.View.Panes.Feature tree', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Panes.Feature tree' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - - const button = page.getByTestId('feature-tree-pane-button') - const isPressed = await button.getAttribute('aria-pressed') - expect(isPressed).toBe('true') - }) - test('Modeling.View.Panes.KCL code', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Panes.KCL code' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - - const button = page.getByTestId('code-pane-button') - const isPressed = await button.getAttribute('aria-pressed') - expect(isPressed).toBe('true') - }) - test('Modeling.View.Panes.Project files', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Panes.Project files' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - - const button = page.getByTestId('files-pane-button') - const isPressed = await button.getAttribute('aria-pressed') - expect(isPressed).toBe('true') - }) - test('Modeling.View.Panes.Variables', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'View.Panes.Variables' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - - const button = page.getByTestId('variables-pane-button') - const isPressed = await button.getAttribute('aria-pressed') - expect(isPressed).toBe('true') - }) - test('Modeling.View.Panes.Logs', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById('View.Panes.Logs') - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - - const button = page.getByTestId('logs-pane-button') - const isPressed = await button.getAttribute('aria-pressed') - expect(isPressed).toBe('true') - }) - }) - test.describe('Design role', () => { - // TODO Start sketch - test('Modeling.Design.Create an offset plane', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Design.Create an offset plane' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Offset plane' - expect(actual).toBe(expected) - }) - test('Modeling.Design.Create a helix', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Design.Create a helix' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Helix' - expect(actual).toBe(expected) - }) - test('Modeling.Design.Create a parameter', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Design.Create a parameter' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Create parameter' - expect(actual).toBe(expected) - }) - - test('Modeling.Design.Create an additive feature.Extrude', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Design.Create an additive feature.Extrude' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Extrude' - expect(actual).toBe(expected) - }) - test('Modeling.Design.Create an additive feature.Revolve', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Design.Create an additive feature.Revolve' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Revolve' - expect(actual).toBe(expected) - }) - test('Modeling.Design.Create an additive feature.Sweep', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Design.Create an additive feature.Sweep' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Sweep' - expect(actual).toBe(expected) - }) - test('Modeling.Design.Create an additive feature.Loft', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Design.Create an additive feature.Loft' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Loft' - expect(actual).toBe(expected) - }) - test('Modeling.Design.Apply modification feature.Fillet', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Design.Apply modification feature.Fillet' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Fillet' - expect(actual).toBe(expected) - }) - test('Modeling.Design.Apply modification feature.Chamfer', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Design.Apply modification feature.Chamfer' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Chamfer' - expect(actual).toBe(expected) - }) - - test('Modeling.Design.Apply modification feature.Shell', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Design.Apply modification feature.Shell' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Shell' - expect(actual).toBe(expected) - }) - - test('Modeling.Design.Insert from project file', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.settled(cmdBar) - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const openProject = app.applicationMenu.getMenuItemById( - 'Design.Insert from project file' - ) - if (!openProject) { - throw new Error('Design.Insert from project file') - } - openProject.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Insert' - expect(actual).toBe(expected) - }) - - test('Modeling.Design.Create with Zoo Text-To-CAD', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Design.Create with Zoo Text-To-CAD' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Text-to-CAD' - expect(actual).toBe(expected) - }) - - test('Modeling.Design.Modify with Zoo Text-To-CAD', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) { - throw new Error('app or app.applicationMenu is missing') - } - const menu = app.applicationMenu.getMenuItemById( - 'Design.Modify with Zoo Text-To-CAD' - ) - if (!menu) { - throw new Error('menu missing') - } - menu.click() - }) - // Check that the command bar is opened - await expect(cmdBar.cmdBarElement).toBeVisible() - // Check the placeholder project name exists - const actual = await cmdBar.cmdBarElement - .getByTestId('command-name') - .textContent() - const expected = 'Prompt-to-edit' - expect(actual).toBe(expected) - }) - }) - test.describe('Help role', () => { - test('Modeling.Help.Show all commands', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) fail() - const menu = app.applicationMenu.getMenuItemById( - 'Help.Show all commands' - ) - if (!menu) fail() - menu.click() - }) - // Check the placeholder project name exists - const actual = cmdBar.cmdBarElement.getByTestId('cmd-bar-search') - await expect(actual).toBeVisible() - }) - test('Modeling.Help.KCL code samples', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) fail() - const menu = app.applicationMenu.getMenuItemById( - 'Help.KCL code samples' - ) - if (!menu) fail() - }) - }) - test('Modeling.Help.Report a bug', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - toolbar, - }) => { - // TODO: this test has been dead dead on the idle stream branch - test.fixme(orRunWhenFullSuiteEnabled()) - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await expect - .poll( - async () => - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) return false - const menu = - app.applicationMenu.getMenuItemById('Help.Report a bug') - if (!menu) return false - menu.click() - return true - }) - ) - .toBe(true) - // Core dump and refresh magic number timeout - await scene.connectionEstablished() - await expect(toolbar.startSketchBtn).toBeVisible() - }) - test('Modeling.Help.Reset onboarding', async ({ - tronApp, - cmdBar, - page, - homePage, - scene, - }) => { - if (!tronApp) { - throwTronAppMissing() - return - } - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Run electron snippet to find the Menu! - await page.waitForTimeout(100) // wait for createModelingPageMenu() to run - await tronApp.electron.evaluate(async ({ app }) => { - if (!app || !app.applicationMenu) fail() - const menu = app.applicationMenu.getMenuItemById( - 'Help.Reset onboarding' - ) - if (!menu) fail() - menu.click() - }) - - const actual = page.getByText( - `This is a hardware design tool that lets you edit visually, with code, or both. It's powered by the KittyCAD Design API, the first API created for anyone to build hardware design tools.` - ) - await expect(actual).toBeVisible() - }) - }) - }) -}) + } +) diff --git a/e2e/playwright/point-click-assemblies.spec.ts b/e2e/playwright/point-click-assemblies.spec.ts index 437836040..cf7e32b80 100644 --- a/e2e/playwright/point-click-assemblies.spec.ts +++ b/e2e/playwright/point-click-assemblies.spec.ts @@ -6,6 +6,7 @@ import type { ToolbarFixture } from '@e2e/playwright/fixtures/toolbarFixture' import { executorInputPath, getUtils, + kclSamplesPath, testsInputPath, } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' @@ -472,4 +473,94 @@ test.describe('Point-and-click assemblies tests', () => { }) } ) + + test( + 'Assembly gets reexecuted when imported models are updated externally', + { tag: ['@electron'] }, + async ({ context, page, homePage, scene, toolbar, cmdBar, tronApp }) => { + if (!tronApp) { + fail() + } + + const midPoint = { x: 500, y: 250 } + const washerPoint = { x: 645, y: 250 } + const partColor: [number, number, number] = [120, 120, 120] + const redPartColor: [number, number, number] = [200, 0, 0] + const bgColor: [number, number, number] = [30, 30, 30] + const tolerance = 50 + const projectName = 'assembly' + + await test.step('Setup parts and expect imported model', async () => { + await context.folderSetupFn(async (dir) => { + const projectDir = path.join(dir, projectName) + await fsp.mkdir(projectDir, { recursive: true }) + await Promise.all([ + fsp.copyFile( + executorInputPath('cube.kcl'), + path.join(projectDir, 'cube.kcl') + ), + fsp.copyFile( + kclSamplesPath( + path.join( + 'pipe-flange-assembly', + 'mcmaster-parts', + '98017a257-washer.step' + ) + ), + path.join(projectDir, 'foreign.step') + ), + fsp.writeFile( + path.join(projectDir, 'main.kcl'), + ` +import "cube.kcl" as cube +import "foreign.step" as foreign +cube +foreign + |> translate(x = 40, z = 10)` + ), + ]) + }) + await page.setBodyDimensions({ width: 1000, height: 500 }) + await homePage.openProject(projectName) + await scene.settled(cmdBar) + await toolbar.closePane('code') + await scene.expectPixelColor(partColor, midPoint, tolerance) + }) + + await test.step('Change imported kcl file and expect change', async () => { + await context.folderSetupFn(async (dir) => { + // Append appearance to the cube.kcl file + await fsp.appendFile( + path.join(dir, projectName, 'cube.kcl'), + `\n |> appearance(color = "#ff0000")` + ) + }) + await scene.settled(cmdBar) + await toolbar.closePane('code') + await scene.expectPixelColor(redPartColor, midPoint, tolerance) + await scene.expectPixelColor(partColor, washerPoint, tolerance) + }) + + await test.step('Change imported step file and expect change', async () => { + await context.folderSetupFn(async (dir) => { + // Replace the washer with a pipe + await fsp.copyFile( + kclSamplesPath( + path.join( + 'pipe-flange-assembly', + 'mcmaster-parts', + '1120t74-pipe.step' + ) + ), + path.join(dir, projectName, 'foreign.step') + ) + }) + await scene.settled(cmdBar) + await toolbar.closePane('code') + // Expect pipe to take over the red cube but leave some space where the washer was + await scene.expectPixelColor(partColor, midPoint, tolerance) + await scene.expectPixelColor(bgColor, washerPoint, tolerance) + }) + } + ) }) diff --git a/e2e/playwright/projects.spec.ts b/e2e/playwright/projects.spec.ts index ab64e548d..4dc31b4b1 100644 --- a/e2e/playwright/projects.spec.ts +++ b/e2e/playwright/projects.spec.ts @@ -18,7 +18,7 @@ import { expect, test } from '@e2e/playwright/zoo-test' test( 'projects reload if a new one is created, deleted, or renamed externally', - { tag: '@electron' }, + { tag: ['@electron', '@macos', '@windows'] }, async ({ context, page }, testInfo) => { let externalCreatedProjectName = 'external-created-project' diff --git a/e2e/playwright/prompt-to-edit.spec.ts b/e2e/playwright/prompt-to-edit.spec.ts index accd52b28..b42a021d1 100644 --- a/e2e/playwright/prompt-to-edit.spec.ts +++ b/e2e/playwright/prompt-to-edit.spec.ts @@ -29,7 +29,7 @@ sketch003 = startSketchOn(XY) extrude003 = extrude(sketch003, length = 20) ` -test.describe('Prompt-to-edit tests', { tag: '@skipWin' }, () => { +test.describe('Prompt-to-edit tests', () => { test.describe('Check the happy path, for basic changing color', () => { const cases = [ { diff --git a/e2e/playwright/regression-tests.spec.ts b/e2e/playwright/regression-tests.spec.ts index 53932437d..149068d03 100644 --- a/e2e/playwright/regression-tests.spec.ts +++ b/e2e/playwright/regression-tests.spec.ts @@ -14,7 +14,7 @@ import { } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Regression tests', { tag: ['@skipWin'] }, () => { +test.describe('Regression tests', () => { // bugs we found that don't fit neatly into other categories test('bad model has inline error #3251', async ({ context, @@ -239,17 +239,18 @@ extrude001 = extrude(sketch001, length = 50) await expect(zooLogo).not.toHaveAttribute('href') }) - test( - 'Position _ Is Out Of Range... regression test', - { tag: ['@skipWin'] }, - async ({ context, page, homePage }) => { - const u = await getUtils(page) - // const PUR = 400 / 37.5 //pixeltoUnitRatio - await page.setBodyDimensions({ width: 1200, height: 500 }) - await context.addInitScript(async () => { - localStorage.setItem( - 'persistCode', - `exampleSketch = startSketchOn("XZ") + test('Position _ Is Out Of Range... regression test', async ({ + context, + page, + homePage, + }) => { + const u = await getUtils(page) + // const PUR = 400 / 37.5 //pixeltoUnitRatio + await page.setBodyDimensions({ width: 1200, height: 500 }) + await context.addInitScript(async () => { + localStorage.setItem( + 'persistCode', + `exampleSketch = startSketchOn("XZ") |> startProfileAt([0, 0], %) |> angledLine(angle = 50, length = 45 ) |> yLine(endAbsolute = 0) @@ -258,55 +259,55 @@ extrude001 = extrude(sketch001, length = 50) example = extrude(exampleSketch, length = 5) shell(exampleSketch, faces = ['end'], thickness = 0.25)` - ) + ) + }) + + await expect(async () => { + await homePage.goToModelingScene() + await u.waitForPageLoad() + + // error in guter + await expect(page.locator('.cm-lint-marker-error')).toBeVisible({ + timeout: 1_000, }) + await page.waitForTimeout(200) + // expect it still to be there (sometimes it just clears for a bit?) + await expect(page.locator('.cm-lint-marker-error')).toBeVisible({ + timeout: 1_000, + }) + }).toPass({ timeout: 40_000, intervals: [1_000] }) - await expect(async () => { - await homePage.goToModelingScene() - await u.waitForPageLoad() + // error text on hover + await page.hover('.cm-lint-marker-error') + await expect(page.getByText('Unexpected token: |').first()).toBeVisible() - // error in guter - await expect(page.locator('.cm-lint-marker-error')).toBeVisible({ - timeout: 1_000, - }) - await page.waitForTimeout(200) - // expect it still to be there (sometimes it just clears for a bit?) - await expect(page.locator('.cm-lint-marker-error')).toBeVisible({ - timeout: 1_000, - }) - }).toPass({ timeout: 40_000, intervals: [1_000] }) + // Okay execution finished, let's start editing text below the error. + await u.codeLocator.click() + // Go to the end of the editor + // This bug happens when there is a diagnostic in the editor and you try to + // edit text below it. + // Or delete a huge chunk of text and then try to edit below it. + await page.keyboard.press('End') + await page.keyboard.down('Shift') + await page.keyboard.press('ArrowUp') + await page.keyboard.press('ArrowUp') + await page.keyboard.press('ArrowUp') + await page.keyboard.press('ArrowUp') + await page.keyboard.press('ArrowUp') + await page.keyboard.press('End') + await page.keyboard.up('Shift') + await page.keyboard.press('Backspace') + await expect(page.locator('.cm-lint-marker-error')).not.toBeVisible() - // error text on hover - await page.hover('.cm-lint-marker-error') - await expect(page.getByText('Unexpected token: |').first()).toBeVisible() + await page.keyboard.press('Enter') + await page.keyboard.press('Enter') + await page.keyboard.type('thing: "blah"', { delay: 100 }) + await page.keyboard.press('Enter') + await page.keyboard.press('ArrowLeft') - // Okay execution finished, let's start editing text below the error. - await u.codeLocator.click() - // Go to the end of the editor - // This bug happens when there is a diagnostic in the editor and you try to - // edit text below it. - // Or delete a huge chunk of text and then try to edit below it. - await page.keyboard.press('End') - await page.keyboard.down('Shift') - await page.keyboard.press('ArrowUp') - await page.keyboard.press('ArrowUp') - await page.keyboard.press('ArrowUp') - await page.keyboard.press('ArrowUp') - await page.keyboard.press('ArrowUp') - await page.keyboard.press('End') - await page.keyboard.up('Shift') - await page.keyboard.press('Backspace') - await expect(page.locator('.cm-lint-marker-error')).not.toBeVisible() - - await page.keyboard.press('Enter') - await page.keyboard.press('Enter') - await page.keyboard.type('thing: "blah"', { delay: 100 }) - await page.keyboard.press('Enter') - await page.keyboard.press('ArrowLeft') - - await expect( - page.locator('.cm-content') - ).toContainText(`exampleSketch = startSketchOn("XZ") + await expect( + page.locator('.cm-content') + ).toContainText(`exampleSketch = startSketchOn("XZ") |> startProfileAt([0, 0], %) |> angledLine(angle = 50, length = 45 ) |> yLine(endAbsolute = 0) @@ -314,9 +315,8 @@ extrude001 = extrude(sketch001, length = 50) thing: "blah"`) - await expect(page.locator('.cm-lint-marker-error')).toBeVisible() - } - ) + await expect(page.locator('.cm-lint-marker-error')).toBeVisible() + }) test( 'window resize updates should reconfigure the stream', @@ -486,82 +486,81 @@ extrude002 = extrude(profile002, length = 150) } ) // We updated this test such that you can have multiple exports going at once. - test( - 'ensure you CAN export while an export is already going', - { tag: ['@skipLinux', '@skipWin'] }, - async ({ page, homePage }) => { - const u = await getUtils(page) - await test.step('Set up the code and durations', async () => { - await page.addInitScript( - async ({ code }) => { - localStorage.setItem('persistCode', code) - ;(window as any).playwrightSkipFilePicker = true - }, - { - code: bracket, - } - ) + test('ensure you CAN export while an export is already going', async ({ + page, + homePage, + }) => { + const u = await getUtils(page) + await test.step('Set up the code and durations', async () => { + await page.addInitScript( + async ({ code }) => { + localStorage.setItem('persistCode', code) + ;(window as any).playwrightSkipFilePicker = true + }, + { + code: bracket, + } + ) - await page.setBodyDimensions({ width: 1000, height: 500 }) + await page.setBodyDimensions({ width: 1000, height: 500 }) - await homePage.goToModelingScene() - await u.waitForPageLoad() + await homePage.goToModelingScene() + await u.waitForPageLoad() - // wait for execution done - await u.openDebugPanel() - await u.expectCmdLog('[data-message-type="execution-done"]') - await u.closeDebugPanel() + // wait for execution done + await u.openDebugPanel() + await u.expectCmdLog('[data-message-type="execution-done"]') + await u.closeDebugPanel() - // expect zero errors in guter - await expect(page.locator('.cm-lint-marker-error')).not.toBeVisible() - }) + // expect zero errors in guter + await expect(page.locator('.cm-lint-marker-error')).not.toBeVisible() + }) - const errorToastMessage = page.getByText(`Error while exporting`) - const exportingToastMessage = page.getByText(`Exporting...`) - const engineErrorToastMessage = page.getByText(`Nothing to export`) - const alreadyExportingToastMessage = page.getByText(`Already exporting`) - const successToastMessage = page.getByText(`Exported successfully`) + const errorToastMessage = page.getByText(`Error while exporting`) + const exportingToastMessage = page.getByText(`Exporting...`) + const engineErrorToastMessage = page.getByText(`Nothing to export`) + const alreadyExportingToastMessage = page.getByText(`Already exporting`) + const successToastMessage = page.getByText(`Exported successfully`) - await test.step('second export', async () => { - await clickExportButton(page) + await test.step('second export', async () => { + await clickExportButton(page) - await expect(exportingToastMessage).toBeVisible() + await expect(exportingToastMessage).toBeVisible() - await clickExportButton(page) + await clickExportButton(page) - await test.step('The first export still succeeds', async () => { - await Promise.all([ - expect(exportingToastMessage).not.toBeVisible({ timeout: 15_000 }), - expect(errorToastMessage).not.toBeVisible(), - expect(engineErrorToastMessage).not.toBeVisible(), - expect(successToastMessage).toBeVisible({ timeout: 15_000 }), - expect(alreadyExportingToastMessage).not.toBeVisible({ - timeout: 15_000, - }), - ]) - }) - }) - - await test.step('Successful, unblocked export', async () => { - // Try exporting again. - await clickExportButton(page) - - // Find the toast. - // Look out for the toast message - await expect(exportingToastMessage).toBeVisible() - - // Expect it to succeed. + await test.step('The first export still succeeds', async () => { await Promise.all([ - expect(exportingToastMessage).not.toBeVisible(), + expect(exportingToastMessage).not.toBeVisible({ timeout: 15_000 }), expect(errorToastMessage).not.toBeVisible(), expect(engineErrorToastMessage).not.toBeVisible(), - expect(alreadyExportingToastMessage).not.toBeVisible(), + expect(successToastMessage).toBeVisible({ timeout: 15_000 }), + expect(alreadyExportingToastMessage).not.toBeVisible({ + timeout: 15_000, + }), ]) - - await expect(successToastMessage).toHaveCount(2) }) - } - ) + }) + + await test.step('Successful, unblocked export', async () => { + // Try exporting again. + await clickExportButton(page) + + // Find the toast. + // Look out for the toast message + await expect(exportingToastMessage).toBeVisible() + + // Expect it to succeed. + await Promise.all([ + expect(exportingToastMessage).not.toBeVisible(), + expect(errorToastMessage).not.toBeVisible(), + expect(engineErrorToastMessage).not.toBeVisible(), + expect(alreadyExportingToastMessage).not.toBeVisible(), + ]) + + await expect(successToastMessage).toHaveCount(2) + }) + }) test( `Network health indicator only appears in modeling view`, diff --git a/e2e/playwright/sketch-tests.spec.ts b/e2e/playwright/sketch-tests.spec.ts index d25eca3a6..be1106f2c 100644 --- a/e2e/playwright/sketch-tests.spec.ts +++ b/e2e/playwright/sketch-tests.spec.ts @@ -16,7 +16,7 @@ import { } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Sketch tests', { tag: ['@skipWin'] }, () => { +test.describe('Sketch tests', () => { test('multi-sketch file shows multiple Edit Sketch buttons', async ({ page, context, @@ -393,54 +393,58 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002) |> close() `) } - test( - 'code pane open at start-handles', - { tag: ['@skipWin'] }, - async ({ page, homePage, scene, toolbar, cmdBar }) => { - // Load the app with the code panes - await page.addInitScript(async () => { - localStorage.setItem( - 'store', - JSON.stringify({ - state: { - openPanes: ['code'], - }, - version: 0, - }) - ) - }) - await doEditSegmentsByDraggingHandle( - page, - homePage, - ['code'], - scene, - toolbar, - cmdBar + test('code pane open at start-handles', async ({ + page, + homePage, + scene, + toolbar, + cmdBar, + }) => { + // Load the app with the code panes + await page.addInitScript(async () => { + localStorage.setItem( + 'store', + JSON.stringify({ + state: { + openPanes: ['code'], + }, + version: 0, + }) ) - } - ) + }) + await doEditSegmentsByDraggingHandle( + page, + homePage, + ['code'], + scene, + toolbar, + cmdBar + ) + }) - test( - 'code pane closed at start-handles', - { tag: ['@skipWin'] }, - async ({ page, homePage, scene, toolbar, cmdBar }) => { - // Load the app with the code panes - await page.addInitScript(async (persistModelingContext) => { - localStorage.setItem( - persistModelingContext, - JSON.stringify({ openPanes: [] }) - ) - }, PERSIST_MODELING_CONTEXT) - await doEditSegmentsByDraggingHandle( - page, - homePage, - [], - scene, - toolbar, - cmdBar + test('code pane closed at start-handles', async ({ + page, + homePage, + scene, + toolbar, + cmdBar, + }) => { + // Load the app with the code panes + await page.addInitScript(async (persistModelingContext) => { + localStorage.setItem( + persistModelingContext, + JSON.stringify({ openPanes: [] }) ) - } - ) + }, PERSIST_MODELING_CONTEXT) + await doEditSegmentsByDraggingHandle( + page, + homePage, + [], + scene, + toolbar, + cmdBar + ) + }) }) test('Can edit a circle center and radius by dragging its handles', async ({ @@ -1389,16 +1393,21 @@ offsetPlane001 = offsetPlane(XY, offset = 10)` }) test.describe('multi-profile sketching', () => { - test( - `test it removes half-finished expressions when changing tools in sketch mode`, - { tag: ['@skipWin'] }, - async ({ context, page, scene, toolbar, editor, homePage, cmdBar }) => { - test.fixme(orRunWhenFullSuiteEnabled()) - // We seed the scene with a single offset plane - await context.addInitScript(() => { - localStorage.setItem( - 'persistCode', - `yo = 5 + test(`test it removes half-finished expressions when changing tools in sketch mode`, async ({ + context, + page, + scene, + toolbar, + editor, + homePage, + cmdBar, + }) => { + test.fixme(orRunWhenFullSuiteEnabled()) + // We seed the scene with a single offset plane + await context.addInitScript(() => { + localStorage.setItem( + 'persistCode', + `yo = 5 sketch001 = startSketchOn(XZ) profile001 = startProfileAt([121.52, 168.25], sketch001) |> line(end = [115.04, 113.61]) @@ -1410,127 +1419,129 @@ profile002 = startProfileAt([117.2, 56.08], sketch001) |> yLine(length = -107.86) ` - ) - }) + ) + }) - const [continueProfile2Clk] = scene.makeMouseHelpers(954, 282) + const [continueProfile2Clk] = scene.makeMouseHelpers(954, 282) - await homePage.goToModelingScene() - await scene.settled(cmdBar) - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled() + await homePage.goToModelingScene() + await scene.settled(cmdBar) + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled() - await (await toolbar.getFeatureTreeOperation('Sketch', 0)).dblclick() - await page.waitForTimeout(600) + await (await toolbar.getFeatureTreeOperation('Sketch', 0)).dblclick() + await page.waitForTimeout(600) - const [circlePoint1] = scene.makeMouseHelpers(700, 200) + const [circlePoint1] = scene.makeMouseHelpers(700, 200) - await test.step('equip circle tool and click first point', async () => { - // await page.waitForTimeout(100) - await expect - .poll(async () => { - await toolbar.circleBtn.click() - return toolbar.circleBtn.getAttribute('aria-pressed') - }) - .toBe('true') - await page.waitForTimeout(100) - await circlePoint1() - await editor.expectEditor.toContain( - 'profile003 = circle(sketch001, center = [' - ) - }) + await test.step('equip circle tool and click first point', async () => { + // await page.waitForTimeout(100) + await expect + .poll(async () => { + await toolbar.circleBtn.click() + return toolbar.circleBtn.getAttribute('aria-pressed') + }) + .toBe('true') + await page.waitForTimeout(100) + await circlePoint1() + await editor.expectEditor.toContain( + 'profile003 = circle(sketch001, center = [' + ) + }) - await test.step('equip line tool and verify circle code is removed', async () => { - await toolbar.lineBtn.click() - await editor.expectEditor.not.toContain('profile003 = circle(') - }) + await test.step('equip line tool and verify circle code is removed', async () => { + await toolbar.lineBtn.click() + await editor.expectEditor.not.toContain('profile003 = circle(') + }) - const [circle3Point1] = scene.makeMouseHelpers(650, 200) - const [circle3Point2] = scene.makeMouseHelpers(750, 200) - // const [circle3Point3] = scene.makeMouseHelpers(700, 150) + const [circle3Point1] = scene.makeMouseHelpers(650, 200) + const [circle3Point2] = scene.makeMouseHelpers(750, 200) + // const [circle3Point3] = scene.makeMouseHelpers(700, 150) - await test.step('equip three point circle tool and click first two points', async () => { - await toolbar.selectCircleThreePoint() - await page.waitForTimeout(100) - await circle3Point1() - await page.waitForTimeout(100) - await circle3Point2() - await editor.expectEditor.toContain('profile003 = circleThreePoint(') - }) + await test.step('equip three point circle tool and click first two points', async () => { + await toolbar.selectCircleThreePoint() + await page.waitForTimeout(100) + await circle3Point1() + await page.waitForTimeout(100) + await circle3Point2() + await editor.expectEditor.toContain('profile003 = circleThreePoint(') + }) - await test.step('equip line tool and verify three-point circle code is removed', async () => { - await toolbar.lineBtn.click() - await editor.expectEditor.not.toContain( - 'profile003 = circleThreePoint(' - ) - }) + await test.step('equip line tool and verify three-point circle code is removed', async () => { + await toolbar.lineBtn.click() + await editor.expectEditor.not.toContain('profile003 = circleThreePoint(') + }) - await test.step('equip three-point-arc tool and click first two points', async () => { - await page.waitForTimeout(200) - await toolbar.selectThreePointArc() - await page.waitForTimeout(200) - await circle3Point1() - await page.waitForTimeout(200) - await circle3Point2() - await editor.expectEditor.toContain('arc(') - }) + await test.step('equip three-point-arc tool and click first two points', async () => { + await page.waitForTimeout(200) + await toolbar.selectThreePointArc() + await page.waitForTimeout(200) + await circle3Point1() + await page.waitForTimeout(200) + await circle3Point2() + await editor.expectEditor.toContain('arc(') + }) - await test.step('equip line tool and verify three-point-arc code is removed after second click', async () => { - await toolbar.lineBtn.click() - await editor.expectEditor.not.toContain('arc(') - }) + await test.step('equip line tool and verify three-point-arc code is removed after second click', async () => { + await toolbar.lineBtn.click() + await editor.expectEditor.not.toContain('arc(') + }) - const [cornerRectPoint1] = scene.makeMouseHelpers(600, 300) + const [cornerRectPoint1] = scene.makeMouseHelpers(600, 300) - await test.step('equip corner rectangle tool and click first point', async () => { - await toolbar.rectangleBtn.click() - await page.waitForTimeout(100) - await cornerRectPoint1() - await editor.expectEditor.toContain('profile004 = startProfileAt(') - }) + await test.step('equip corner rectangle tool and click first point', async () => { + await toolbar.rectangleBtn.click() + await page.waitForTimeout(100) + await cornerRectPoint1() + await editor.expectEditor.toContain('profile004 = startProfileAt(') + }) - await test.step('equip line tool and verify corner rectangle code is removed', async () => { - await toolbar.lineBtn.click() - await editor.expectEditor.not.toContain('profile004 = startProfileAt(') - }) + await test.step('equip line tool and verify corner rectangle code is removed', async () => { + await toolbar.lineBtn.click() + await editor.expectEditor.not.toContain('profile004 = startProfileAt(') + }) - const [centerRectPoint1] = scene.makeMouseHelpers(700, 300) + const [centerRectPoint1] = scene.makeMouseHelpers(700, 300) - await test.step('equip center rectangle tool and click first point', async () => { - await toolbar.selectCenterRectangle() - await page.waitForTimeout(100) - await centerRectPoint1() - await editor.expectEditor.toContain('profile004 = startProfileAt(') - }) + await test.step('equip center rectangle tool and click first point', async () => { + await toolbar.selectCenterRectangle() + await page.waitForTimeout(100) + await centerRectPoint1() + await editor.expectEditor.toContain('profile004 = startProfileAt(') + }) - await test.step('equip line tool and verify center rectangle code is removed', async () => { - await toolbar.lineBtn.click() - await editor.expectEditor.not.toContain('profile004 = startProfileAt(') - }) + await test.step('equip line tool and verify center rectangle code is removed', async () => { + await toolbar.lineBtn.click() + await editor.expectEditor.not.toContain('profile004 = startProfileAt(') + }) - await test.step('continue profile002 with the three point arc tool, and then switch back to the line tool to verify it only removes the last expression in the pipe', async () => { - await toolbar.selectThreePointArc() - await page.waitForTimeout(200) - await continueProfile2Clk() - await page.waitForTimeout(200) - await circle3Point1() - await editor.expectEditor.toContain('arc(') - await toolbar.lineBtn.click() - await editor.expectEditor.not.toContain('arc(') - await editor.expectEditor.toContain('profile002') - }) - } - ) - test( - `snapToProfile start only works for current profile`, - { tag: ['@skipWin'] }, - async ({ context, page, scene, toolbar, editor, homePage, cmdBar }) => { - // We seed the scene with a single offset plane - await context.addInitScript(() => { - localStorage.setItem( - 'persistCode', - `@settings(defaultLengthUnit = in) + await test.step('continue profile002 with the three point arc tool, and then switch back to the line tool to verify it only removes the last expression in the pipe', async () => { + await toolbar.selectThreePointArc() + await page.waitForTimeout(200) + await continueProfile2Clk() + await page.waitForTimeout(200) + await circle3Point1() + await editor.expectEditor.toContain('arc(') + await toolbar.lineBtn.click() + await editor.expectEditor.not.toContain('arc(') + await editor.expectEditor.toContain('profile002') + }) + }) + test(`snapToProfile start only works for current profile`, async ({ + context, + page, + scene, + toolbar, + editor, + homePage, + cmdBar, + }) => { + // We seed the scene with a single offset plane + await context.addInitScript(() => { + localStorage.setItem( + 'persistCode', + `@settings(defaultLengthUnit = in) sketch001 = startSketchOn(XZ) profile002 = startProfileAt([40.68, 87.67], sketch001) @@ -1538,74 +1549,73 @@ profile002 = startProfileAt([40.68, 87.67], sketch001) profile003 = startProfileAt([206.63, -56.73], sketch001) |> xLine(length = -156.32) ` - ) - }) - - await homePage.goToModelingScene() - await scene.settled(cmdBar) - - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled() - - const [onSegmentClick] = scene.makeMouseHelpers(604, 349) - const [endOfLowerSegClick, endOfLowerSegMove] = scene.makeMouseHelpers( - 697, - 360 ) - const [profileStartOfHigherSegClick, profileStartOfHigherSegMove] = - scene.makeMouseHelpers(677, 78) - const tanArcLocation = { x: 624, y: 340 } as const + }) - await test.step('enter sketch mode', async () => { - await onSegmentClick({ shouldDbClick: true }) - await page.waitForTimeout(600) - }) + await homePage.goToModelingScene() + await scene.settled(cmdBar) - const codeFromTangentialArc = ` |> tangentialArc(endAbsolute = [39.49, 88.22])` - await test.step('check that tangential tool does not snap to other profile starts', async () => { - await toolbar.tangentialArcBtn.click() - await page.waitForTimeout(1000) - await endOfLowerSegMove() - await page.waitForTimeout(1000) - await endOfLowerSegClick() - await page.waitForTimeout(1000) - await profileStartOfHigherSegClick() - await page.waitForTimeout(1000) - await editor.expectEditor.toContain(codeFromTangentialArc) - await editor.expectEditor.not.toContain( - `[profileStartX(%), profileStartY(%)]` - ) - }) + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled() - await test.step('remove tangential arc code to reset', async () => { - await scene.expectPixelColor(TEST_COLORS.WHITE, tanArcLocation, 15) - await editor.replaceCode(codeFromTangentialArc, '') - // check pixel is now gray at tanArcLocation to verify code has executed - await scene.expectPixelColor([26, 26, 26], tanArcLocation, 15) - await editor.expectEditor.not.toContain( - `tangentialArc(endAbsolute = [39.49, 88.22])` - ) - }) + const [onSegmentClick] = scene.makeMouseHelpers(604, 349) + const [endOfLowerSegClick, endOfLowerSegMove] = scene.makeMouseHelpers( + 697, + 360 + ) + const [profileStartOfHigherSegClick, profileStartOfHigherSegMove] = + scene.makeMouseHelpers(677, 78) + const tanArcLocation = { x: 624, y: 340 } as const - await test.step('check that tangential tool does snap to current profile start', async () => { - await expect - .poll(async () => { - await toolbar.lineBtn.click() - return toolbar.lineBtn.getAttribute('aria-pressed') - }) - .toBe('true') - await profileStartOfHigherSegMove() - await endOfLowerSegMove() - await endOfLowerSegClick() - await profileStartOfHigherSegClick() - await editor.expectEditor.toContain('line(end = [-10.82, 144.95])') - await editor.expectEditor.not.toContain( - `[profileStartX(%), profileStartY(%)]` - ) - }) - } - ) + await test.step('enter sketch mode', async () => { + await onSegmentClick({ shouldDbClick: true }) + await page.waitForTimeout(600) + }) + + const codeFromTangentialArc = ` |> tangentialArc(endAbsolute = [39.49, 88.22])` + await test.step('check that tangential tool does not snap to other profile starts', async () => { + await toolbar.selectTangentialArc() + await page.waitForTimeout(1000) + await endOfLowerSegMove() + await page.waitForTimeout(1000) + await endOfLowerSegClick() + await page.waitForTimeout(1000) + await profileStartOfHigherSegClick() + await page.waitForTimeout(1000) + await editor.expectEditor.toContain(codeFromTangentialArc) + await editor.expectEditor.not.toContain( + `[profileStartX(%), profileStartY(%)]` + ) + }) + + await test.step('remove tangential arc code to reset', async () => { + await scene.expectPixelColor(TEST_COLORS.WHITE, tanArcLocation, 15) + await editor.replaceCode(codeFromTangentialArc, '') + // check pixel is now gray at tanArcLocation to verify code has executed + await scene.expectPixelColor([26, 26, 26], tanArcLocation, 15) + await editor.expectEditor.not.toContain( + `tangentialArc(endAbsolute = [39.49, 88.22])` + ) + }) + + await test.step('check that tangential tool does snap to current profile start', async () => { + await expect + .poll(async () => { + await toolbar.lineBtn.click() + return toolbar.lineBtn.getAttribute('aria-pressed') + }) + .toBe('true') + await profileStartOfHigherSegMove() + await endOfLowerSegMove() + await endOfLowerSegClick() + await profileStartOfHigherSegClick() + await editor.expectEditor.toContain('line(end = [-10.82, 144.95])') + await editor.expectEditor.not.toContain( + `[profileStartX(%), profileStartY(%)]` + ) + }) + }) test('can enter sketch mode for sketch with no profiles', async ({ scene, toolbar, @@ -1777,7 +1787,7 @@ profile003 = startProfileAt([206.63, -56.73], sketch001) await endLineStartTanArc() await editor.expectEditor.toContain(`|> line(end = [9.02, -0.55])`) - await toolbar.tangentialArcBtn.click() + await toolbar.selectTangentialArc() await page.waitForTimeout(300) await page.mouse.click(745, 359) await page.waitForTimeout(300) @@ -2071,14 +2081,17 @@ profile003 = startProfileAt([206.63, -56.73], sketch001) }) }) - test( - 'Can edit a sketch with multiple profiles, dragging segments to edit them, and adding one new profile', - { tag: ['@skipWin'] }, - async ({ homePage, scene, toolbar, editor, page }) => { - await page.addInitScript(async () => { - localStorage.setItem( - 'persistCode', - `@settings(defaultLengthUnit = in) + test('Can edit a sketch with multiple profiles, dragging segments to edit them, and adding one new profile', async ({ + homePage, + scene, + toolbar, + editor, + page, + }) => { + await page.addInitScript(async () => { + localStorage.setItem( + 'persistCode', + `@settings(defaultLengthUnit = in) sketch001 = startSketchOn(XZ) profile001 = startProfileAt([6.24, 4.54], sketch001) |> line(end = [-0.41, 6.99]) @@ -2093,127 +2106,130 @@ profile002 = startProfileAt([11.19, 5.02], sketch001) profile003 = circle(sketch001, center = [6.92, -4.2], radius = 3.16) profile004 = circleThreePoint(sketch001, p1 = [13.44, -6.8], p2 = [13.39, -2.07], p3 = [18.75, -4.41]) ` - ) - }) + ) + }) - await page.setBodyDimensions({ width: 1000, height: 500 }) - await homePage.goToModelingScene() + await page.setBodyDimensions({ width: 1000, height: 500 }) + await homePage.goToModelingScene() - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled() + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled() - // The text to prompt popover gets in the way of pointOnSegment click otherwise - const moveToClearToolBarPopover = scene.makeMouseHelpers(590, 500)[1] + // The text to prompt popover gets in the way of pointOnSegment click otherwise + const moveToClearToolBarPopover = scene.makeMouseHelpers(590, 500)[1] - const [pointOnSegment] = scene.makeMouseHelpers(590, 141) - const [profileEnd] = scene.makeMouseHelpers(970, 105) - const profileEndMv = scene.makeMouseHelpers(951, 101)[1] - const [newProfileEnd] = scene.makeMouseHelpers(764, 104) - const dragSegmentTo = scene.makeMouseHelpers(850, 104)[1] + const [pointOnSegment] = scene.makeMouseHelpers(590, 141) + const [profileEnd] = scene.makeMouseHelpers(970, 105) + const profileEndMv = scene.makeMouseHelpers(951, 101)[1] + const [newProfileEnd] = scene.makeMouseHelpers(764, 104) + const dragSegmentTo = scene.makeMouseHelpers(850, 104)[1] - const rectHandle = scene.makeMouseHelpers(901, 150)[1] - const rectDragTo = scene.makeMouseHelpers(901, 180)[1] + const rectHandle = scene.makeMouseHelpers(901, 150)[1] + const rectDragTo = scene.makeMouseHelpers(901, 180)[1] - const circleEdge = scene.makeMouseHelpers(691, 331)[1] - const dragCircleTo = scene.makeMouseHelpers(720, 331)[1] + const circleEdge = scene.makeMouseHelpers(691, 331)[1] + const dragCircleTo = scene.makeMouseHelpers(720, 331)[1] - const [rectStart] = scene.makeMouseHelpers(794, 322) - const [rectEnd] = scene.makeMouseHelpers(757, 395) + const [rectStart] = scene.makeMouseHelpers(794, 322) + const [rectEnd] = scene.makeMouseHelpers(757, 395) - const [circ3PStart] = scene.makeMouseHelpers(854, 332) - const [circ3PEnd] = scene.makeMouseHelpers(870, 275) + const [circ3PStart] = scene.makeMouseHelpers(854, 332) + const [circ3PEnd] = scene.makeMouseHelpers(870, 275) - await test.step('enter sketch and setup', async () => { - await moveToClearToolBarPopover() - await page.waitForTimeout(1000) - await pointOnSegment({ shouldDbClick: true }) - await page.waitForTimeout(2000) + await test.step('enter sketch and setup', async () => { + await moveToClearToolBarPopover() + await page.waitForTimeout(1000) + await pointOnSegment({ shouldDbClick: true }) + await page.waitForTimeout(2000) - await toolbar.lineBtn.click() - await page.waitForTimeout(100) - }) + await toolbar.lineBtn.click() + await page.waitForTimeout(100) + }) - await test.step('extend existing profile', async () => { - await profileEnd() - await page.waitForTimeout(100) - await newProfileEnd() - await editor.expectEditor.toContain(`|> line(end = [-11.35, 0.73])`) - await toolbar.lineBtn.click() - await page.waitForTimeout(100) - }) + await test.step('extend existing profile', async () => { + await profileEnd() + await page.waitForTimeout(100) + await newProfileEnd() + await editor.expectEditor.toContain(`|> line(end = [-11.35, 0.73])`) + await toolbar.lineBtn.click() + await page.waitForTimeout(100) + }) - await test.step('edit existing profile', async () => { - await profileEndMv() - await page.mouse.down() - await dragSegmentTo() - await page.mouse.up() - await editor.expectEditor.toContain(`line(end = [4.22, -4.49])`) - }) + await test.step('edit existing profile', async () => { + await profileEndMv() + await page.mouse.down() + await dragSegmentTo() + await page.mouse.up() + await editor.expectEditor.toContain(`line(end = [4.22, -4.49])`) + }) - await test.step('edit existing rect', async () => { - await rectHandle() - await page.mouse.down() - await rectDragTo() - await page.mouse.up() - await editor.expectEditor.toContain( - `angledLine(angle = -7, length = 10.27, tag = $rectangleSegmentA001)` - ) - }) + await test.step('edit existing rect', async () => { + await rectHandle() + await page.mouse.down() + await rectDragTo() + await page.mouse.up() + await editor.expectEditor.toContain( + `angledLine(angle = -7, length = 10.27, tag = $rectangleSegmentA001)` + ) + }) - await test.step('edit existing circl', async () => { - await circleEdge() - await page.mouse.down() - await dragCircleTo() - await page.mouse.up() - await editor.expectEditor.toContain( - `profile003 = circle(sketch001, center = [6.92, -4.2], radius = 4.81)` - ) - }) + await test.step('edit existing circl', async () => { + await circleEdge() + await page.mouse.down() + await dragCircleTo() + await page.mouse.up() + await editor.expectEditor.toContain( + `profile003 = circle(sketch001, center = [6.92, -4.2], radius = 4.81)` + ) + }) - await test.step('edit existing circle three point', async () => { - await circ3PStart() - await page.mouse.down() - await circ3PEnd() - await page.mouse.up() - await editor.expectEditor.toContain( - `profile004 = circleThreePoint( + await test.step('edit existing circle three point', async () => { + await circ3PStart() + await page.mouse.down() + await circ3PEnd() + await page.mouse.up() + await editor.expectEditor.toContain( + `profile004 = circleThreePoint( sketch001, p1 = [13.44, -6.8], p2 = [13.39, -2.07], p3 = [19.73, -1.33], )`, - { shouldNormalise: true } - ) - }) + { shouldNormalise: true } + ) + }) - await test.step('add new profile', async () => { - await toolbar.rectangleBtn.click() - await page.waitForTimeout(100) - await rectStart() - await editor.expectEditor.toContain( - `profile005 = startProfileAt([15.68, -3.84], sketch001)` - ) - await page.waitForTimeout(100) - await rectEnd() - await editor.expectEditor.toContain( - `|> angledLine(angle = 180, length = 1.97, tag = $rectangleSegmentA002) + await test.step('add new profile', async () => { + await toolbar.rectangleBtn.click() + await page.waitForTimeout(100) + await rectStart() + await editor.expectEditor.toContain( + `profile005 = startProfileAt([15.68, -3.84], sketch001)` + ) + await page.waitForTimeout(100) + await rectEnd() + await editor.expectEditor.toContain( + `|> angledLine(angle = 180, length = 1.97, tag = $rectangleSegmentA002) |> angledLine(angle = segAng(rectangleSegmentA002) + 90, length = 3.89) |> angledLine(angle = segAng(rectangleSegmentA002), length = -segLen(rectangleSegmentA002)) |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) |> close()`.replaceAll('\n', '') - ) - }) - } - ) - test( - 'Can delete a profile in the editor while is sketch mode, and sketch mode does not break, can ctrl+z to undo after constraint with variable was added', - { tag: ['@skipWin', '@skipLinux'] }, - async ({ scene, toolbar, editor, cmdBar, page, homePage }) => { - await page.addInitScript(async () => { - localStorage.setItem( - 'persistCode', - `@settings(defaultLengthUnit = in) + ) + }) + }) + test('Can delete a profile in the editor while is sketch mode, and sketch mode does not break, can ctrl+z to undo after constraint with variable was added', async ({ + scene, + toolbar, + editor, + cmdBar, + page, + homePage, + }) => { + await page.addInitScript(async () => { + localStorage.setItem( + 'persistCode', + `@settings(defaultLengthUnit = in) sketch001 = startSketchOn(XZ) profile001 = startProfileAt([6.24, 4.54], sketch001) |> line(end = [-0.41, 6.99]) @@ -2227,93 +2243,95 @@ profile002 = startProfileAt([11.19, 5.02], sketch001) |> close() profile003 = circle(sketch001, center = [6.92, -4.2], radius = 3.16) ` - ) - }) + ) + }) - await page.setBodyDimensions({ width: 1000, height: 500 }) - await homePage.goToModelingScene() - await scene.settled(cmdBar) - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled() + await page.setBodyDimensions({ width: 1000, height: 500 }) + await homePage.goToModelingScene() + await scene.settled(cmdBar) + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled() - // The text to prompt popover gets in the way of pointOnSegment click otherwise - const moveToClearToolBarPopover = scene.makeMouseHelpers(590, 500)[1] + // The text to prompt popover gets in the way of pointOnSegment click otherwise + const moveToClearToolBarPopover = scene.makeMouseHelpers(590, 500)[1] - const [pointOnSegment] = scene.makeMouseHelpers(590, 141) - const [segment1Click] = scene.makeMouseHelpers(616, 131) - const sketchIsDrawnProperly = async () => { - await test.step('check the sketch is still drawn properly', async () => { - await page.waitForTimeout(200) - await scene.expectPixelColor([255, 255, 255], { x: 617, y: 163 }, 15) - await scene.expectPixelColor([255, 255, 255], { x: 629, y: 331 }, 15) - }) - } - - await test.step('enter sketch and setup', async () => { - await moveToClearToolBarPopover() - await pointOnSegment({ shouldDbClick: true }) - await page.waitForTimeout(600) - }) - - await test.step('select and delete code for a profile', async () => {}) - await page.getByText('close()').click() - await page.keyboard.down('Shift') - for (let i = 0; i < 11; i++) { - await page.keyboard.press('ArrowUp') - } - await page.keyboard.press('Home') - await page.keyboard.up('Shift') - await page.keyboard.press('Backspace') - - await sketchIsDrawnProperly() - - await test.step('add random new var between profiles', async () => { - await page.keyboard.type('myVar = 5') - await page.keyboard.press('Enter') - // If this timeout isn't long enough, the test breaks. - // TODO: fix https://github.com/KittyCAD/modeling-app/issues/5437 - await page.waitForTimeout(3_000) - }) - - await sketchIsDrawnProperly() - - await test.step('Adding a constraint with a variable, and than ctrl-z-ing which will remove the variable again does not break sketch mode', async () => { - await expect(async () => { - await segment1Click() - await editor.expectState({ - diagnostics: [], - activeLines: ['|>line(end = [-0.41,6.99])'], - highlightedCode: 'line(end = [-0.41,6.99])', - }) - }).toPass({ timeout: 30_000, intervals: [1500] }) - - await toolbar.lengthConstraintBtn.click() - await cmdBar.progressCmdBar() - await editor.expectEditor.toContain('length001 = 7') - - // wait for execute defer - await page.waitForTimeout(600) - await sketchIsDrawnProperly() - - await page.keyboard.down('Meta') - await page.keyboard.press('KeyZ') - await page.keyboard.up('Meta') - - await editor.expectEditor.not.toContain('length001 = 7') - await sketchIsDrawnProperly() + const [pointOnSegment] = scene.makeMouseHelpers(590, 141) + const [segment1Click] = scene.makeMouseHelpers(616, 131) + const sketchIsDrawnProperly = async () => { + await test.step('check the sketch is still drawn properly', async () => { + await page.waitForTimeout(200) + await scene.expectPixelColor([255, 255, 255], { x: 617, y: 163 }, 15) + await scene.expectPixelColor([255, 255, 255], { x: 629, y: 331 }, 15) }) } - ) - test( - 'can enter sketch when there is an extrude', - { tag: ['@skipWin'] }, - async ({ homePage, scene, toolbar, page, cmdBar }) => { - await page.addInitScript(async () => { - localStorage.setItem( - 'persistCode', - `@settings(defaultLengthUnit = in) + await test.step('enter sketch and setup', async () => { + await moveToClearToolBarPopover() + await pointOnSegment({ shouldDbClick: true }) + await page.waitForTimeout(600) + }) + + await test.step('select and delete code for a profile', async () => {}) + await page.getByText('close()').click() + await page.keyboard.down('Shift') + for (let i = 0; i < 11; i++) { + await page.keyboard.press('ArrowUp') + } + await page.keyboard.press('Home') + await page.keyboard.up('Shift') + await page.keyboard.press('Backspace') + + await sketchIsDrawnProperly() + + await test.step('add random new var between profiles', async () => { + await page.keyboard.type('myVar = 5') + await page.keyboard.press('Enter') + // If this timeout isn't long enough, the test breaks. + // TODO: fix https://github.com/KittyCAD/modeling-app/issues/5437 + await page.waitForTimeout(3_000) + }) + + await sketchIsDrawnProperly() + + await test.step('Adding a constraint with a variable, and than ctrl-z-ing which will remove the variable again does not break sketch mode', async () => { + await expect(async () => { + await segment1Click() + await editor.expectState({ + diagnostics: [], + activeLines: ['|>line(end = [-0.41,6.99])'], + highlightedCode: 'line(end = [-0.41,6.99])', + }) + }).toPass({ timeout: 30_000, intervals: [1500] }) + + await toolbar.lengthConstraintBtn.click() + await cmdBar.progressCmdBar() + await editor.expectEditor.toContain('length001 = 7') + + // wait for execute defer + await page.waitForTimeout(600) + await sketchIsDrawnProperly() + + await page.keyboard.down('Meta') + await page.keyboard.press('KeyZ') + await page.keyboard.up('Meta') + + await editor.expectEditor.not.toContain('length001 = 7') + await sketchIsDrawnProperly() + }) + }) + + test('can enter sketch when there is an extrude', async ({ + homePage, + scene, + toolbar, + page, + cmdBar, + }) => { + await page.addInitScript(async () => { + localStorage.setItem( + 'persistCode', + `@settings(defaultLengthUnit = in) sketch001 = startSketchOn(XZ) profile001 = startProfileAt([-63.43, 193.08], sketch001) |> line(end = [168.52, 149.87]) @@ -2336,33 +2354,32 @@ profile004 = circle( extrude002 = extrude(profile001, length = 50) extrude001 = extrude(profile003, length = 5) ` - ) - }) + ) + }) - await page.setBodyDimensions({ width: 1000, height: 500 }) - await homePage.goToModelingScene() - await scene.connectionEstablished() - await scene.settled(cmdBar) - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled() + await page.setBodyDimensions({ width: 1000, height: 500 }) + await homePage.goToModelingScene() + await scene.connectionEstablished() + await scene.settled(cmdBar) + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled() - const [pointOnSegment] = scene.makeMouseHelpers(574, 207) + const [pointOnSegment] = scene.makeMouseHelpers(574, 207) - await pointOnSegment() - await toolbar.editSketch() - // wait for engine animation - await page.waitForTimeout(600) + await pointOnSegment() + await toolbar.editSketch() + // wait for engine animation + await page.waitForTimeout(600) - await test.step('check the sketch is still drawn properly', async () => { - await Promise.all([ - scene.expectPixelColor(TEST_COLORS.WHITE, { x: 596, y: 165 }, 15), - scene.expectPixelColor(TEST_COLORS.WHITE, { x: 641, y: 220 }, 15), - scene.expectPixelColor(TEST_COLORS.WHITE, { x: 763, y: 214 }, 15), - ]) - }) - } - ) + await test.step('check the sketch is still drawn properly', async () => { + await Promise.all([ + scene.expectPixelColor(TEST_COLORS.WHITE, { x: 596, y: 165 }, 15), + scene.expectPixelColor(TEST_COLORS.WHITE, { x: 641, y: 220 }, 15), + scene.expectPixelColor(TEST_COLORS.WHITE, { x: 763, y: 214 }, 15), + ]) + }) + }) test('exit new sketch without drawing anything should not be a problem', async ({ homePage, scene, @@ -2416,14 +2433,17 @@ extrude001 = extrude(profile003, length = 5) await scene.expectPixelColor([255, 255, 255], { x: 633, y: 211 }, 15) }) }) - test( - 'A sketch with only "startProfileAt" and no segments should still be able to be continued', - { tag: ['@skipWin'] }, - async ({ homePage, scene, toolbar, editor, page }) => { - await page.addInitScript(async () => { - localStorage.setItem( - 'persistCode', - `@settings(defaultLengthUnit = in) + test('A sketch with only "startProfileAt" and no segments should still be able to be continued', async ({ + homePage, + scene, + toolbar, + editor, + page, + }) => { + await page.addInitScript(async () => { + localStorage.setItem( + 'persistCode', + `@settings(defaultLengthUnit = in) sketch001 = startSketchOn(XZ) profile001 = startProfileAt([85.19, 338.59], sketch001) |> line(end = [213.3, -94.52]) @@ -2434,39 +2454,41 @@ sketch002 = startSketchOn(XY) profile002 = startProfileAt([85.81, 52.55], sketch002) ` - ) - }) + ) + }) - await page.setBodyDimensions({ width: 1000, height: 500 }) - await homePage.goToModelingScene() - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled() + await page.setBodyDimensions({ width: 1000, height: 500 }) + await homePage.goToModelingScene() + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled() - const [startProfileAt] = scene.makeMouseHelpers(606, 184) - const [nextPoint] = scene.makeMouseHelpers(763, 130) - await page.getByText('startProfileAt([85.81, 52.55], sketch002)').click() - await toolbar.editSketch(1) - // timeout wait for engine animation is unavoidable - await page.waitForTimeout(600) + const [startProfileAt] = scene.makeMouseHelpers(606, 184) + const [nextPoint] = scene.makeMouseHelpers(763, 130) + await page.getByText('startProfileAt([85.81, 52.55], sketch002)').click() + await toolbar.editSketch(1) + // timeout wait for engine animation is unavoidable + await page.waitForTimeout(600) - // equip line tool - await toolbar.lineBtn.click() - await page.waitForTimeout(100) - await startProfileAt() - await page.waitForTimeout(100) - await nextPoint() - await editor.expectEditor.toContain(`|> line(end = [126.05, 44.12])`) - } - ) - test( - 'old style sketch all in one pipe (with extrude) will break up to allow users to add a new profile to the same sketch', - { tag: ['@skipWin'] }, - async ({ homePage, scene, toolbar, editor, page }) => { - await page.addInitScript(async () => { - localStorage.setItem( - 'persistCode', - `@settings(defaultLengthUnit = in) + // equip line tool + await toolbar.lineBtn.click() + await page.waitForTimeout(100) + await startProfileAt() + await page.waitForTimeout(100) + await nextPoint() + await editor.expectEditor.toContain(`|> line(end = [126.05, 44.12])`) + }) + test('old style sketch all in one pipe (with extrude) will break up to allow users to add a new profile to the same sketch', async ({ + homePage, + scene, + toolbar, + editor, + page, + }) => { + await page.addInitScript(async () => { + localStorage.setItem( + 'persistCode', + `@settings(defaultLengthUnit = in) thePart = startSketchOn(XZ) |> startProfileAt([7.53, 10.51], %) |> line(end = [12.54, 1.83]) @@ -2476,59 +2498,62 @@ thePart = startSketchOn(XZ) |> close() extrude001 = extrude(thePart, length = 75) ` - ) - }) + ) + }) - await page.setBodyDimensions({ width: 1000, height: 500 }) - await homePage.goToModelingScene() - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled() + await page.setBodyDimensions({ width: 1000, height: 500 }) + await homePage.goToModelingScene() + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled() - const [objClick] = scene.makeMouseHelpers(565, 343) - const [profilePoint1] = scene.makeMouseHelpers(609, 289) - const [profilePoint2] = scene.makeMouseHelpers(714, 389) + const [objClick] = scene.makeMouseHelpers(565, 343) + const [profilePoint1] = scene.makeMouseHelpers(609, 289) + const [profilePoint2] = scene.makeMouseHelpers(714, 389) - await test.step('enter sketch and setup', async () => { - await objClick() - await toolbar.editSketch() - // timeout wait for engine animation is unavoidable - await page.waitForTimeout(600) - }) + await test.step('enter sketch and setup', async () => { + await objClick() + await toolbar.editSketch() + // timeout wait for engine animation is unavoidable + await page.waitForTimeout(600) + }) - await test.step('expect code to match initial conditions still', async () => { - await editor.expectEditor.toContain( - `thePart = startSketchOn(XZ) |> startProfileAt([7.53, 10.51], %)` - ) - }) + await test.step('expect code to match initial conditions still', async () => { + await editor.expectEditor.toContain( + `thePart = startSketchOn(XZ) |> startProfileAt([7.53, 10.51], %)` + ) + }) - await test.step('equiping the line tool should break up the pipe expression', async () => { - await toolbar.lineBtn.click() - await editor.expectEditor.toContain( - `sketch001 = startSketchOn(XZ)thePart = startProfileAt([7.53, 10.51], sketch001)` - ) - }) + await test.step('equiping the line tool should break up the pipe expression', async () => { + await toolbar.lineBtn.click() + await editor.expectEditor.toContain( + `sketch001 = startSketchOn(XZ)thePart = startProfileAt([7.53, 10.51], sketch001)` + ) + }) - await test.step('can continue on to add a new profile to this sketch', async () => { - await profilePoint1() - await editor.expectEditor.toContain( - `profile001 = startProfileAt([19.69, -7.05], sketch001)` - ) - await profilePoint2() - await editor.expectEditor.toContain(`|> line(end = [18.97, -18.06])`) - }) - } - ) - test( - 'Can enter sketch on sketch of wall and cap for segment, solid2d, extrude-wall, extrude-cap selections', - { tag: ['@skipWin'] }, - async ({ homePage, scene, toolbar, editor, page, cmdBar }) => { - // TODO this test should include a test for selecting revolve walls and caps + await test.step('can continue on to add a new profile to this sketch', async () => { + await profilePoint1() + await editor.expectEditor.toContain( + `profile001 = startProfileAt([19.69, -7.05], sketch001)` + ) + await profilePoint2() + await editor.expectEditor.toContain(`|> line(end = [18.97, -18.06])`) + }) + }) + test('Can enter sketch on sketch of wall and cap for segment, solid2d, extrude-wall, extrude-cap selections', async ({ + homePage, + scene, + toolbar, + editor, + page, + cmdBar, + }) => { + // TODO this test should include a test for selecting revolve walls and caps - await page.addInitScript(async () => { - localStorage.setItem( - 'persistCode', - `@settings(defaultLengthUnit = in) + await page.addInitScript(async () => { + localStorage.setItem( + 'persistCode', + `@settings(defaultLengthUnit = in) sketch001 = startSketchOn(XZ) profile001 = startProfileAt([6.71, -3.66], sketch001) |> line(end = [2.65, 9.02], tag = $seg02) @@ -2592,80 +2617,80 @@ extrude003 = extrude(profile011, length = 2.5) // TODO this breaks the test, // revolve002 = revolve(profile008, angle = 45, axis = seg02) ` - ) + ) + }) + + await page.setBodyDimensions({ width: 1000, height: 500 }) + await homePage.goToModelingScene() + await scene.connectionEstablished() + await scene.settled(cmdBar) + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled() + + const camPositionForSelectingSketchOnWallProfiles = () => + scene.moveCameraTo( + { x: 834, y: -680, z: 534 }, + { x: -54, y: -476, z: 148 } + ) + const wallSelectionOptions = [ + { + title: 'select wall segment', + selectClick: scene.makeMouseHelpers(598, 211)[0], + }, + { + title: 'select wall solid 2d', + selectClick: scene.makeMouseHelpers(677, 236)[0], + }, + { + title: 'select wall circle', + selectClick: scene.makeMouseHelpers(811, 247)[0], + }, + { + title: 'select wall extrude wall', + selectClick: scene.makeMouseHelpers(793, 136)[0], + }, + { + title: 'select wall extrude cap', + selectClick: scene.makeMouseHelpers(836, 103)[0], + }, + ] as const + + const verifyWallProfilesAreDrawn = async () => + test.step('verify wall profiles are drawn', async () => { + await Promise.all([ + // open polygon + scene.expectPixelColor(TEST_COLORS.WHITE, { x: 599, y: 168 }, 15), + // closed polygon + scene.expectPixelColor(TEST_COLORS.WHITE, { x: 656, y: 171 }, 15), + // revolved profile + scene.expectPixelColor(TEST_COLORS.WHITE, { x: 655, y: 264 }, 15), + // extruded profile + scene.expectPixelColor(TEST_COLORS.WHITE, { x: 808, y: 396 }, 15), + // circle (When entering via the circle, it's selected and therefore blue) + scene.expectPixelColor( + [TEST_COLORS.WHITE, TEST_COLORS.BLUE], + { x: 742, y: 386 }, + 15 + ), + ]) }) - await page.setBodyDimensions({ width: 1000, height: 500 }) - await homePage.goToModelingScene() - await scene.connectionEstablished() - await scene.settled(cmdBar) - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled() - - const camPositionForSelectingSketchOnWallProfiles = () => - scene.moveCameraTo( - { x: 834, y: -680, z: 534 }, - { x: -54, y: -476, z: 148 } - ) - const wallSelectionOptions = [ - { - title: 'select wall segment', - selectClick: scene.makeMouseHelpers(598, 211)[0], - }, - { - title: 'select wall solid 2d', - selectClick: scene.makeMouseHelpers(677, 236)[0], - }, - { - title: 'select wall circle', - selectClick: scene.makeMouseHelpers(811, 247)[0], - }, - { - title: 'select wall extrude wall', - selectClick: scene.makeMouseHelpers(793, 136)[0], - }, - { - title: 'select wall extrude cap', - selectClick: scene.makeMouseHelpers(836, 103)[0], - }, - ] as const - - const verifyWallProfilesAreDrawn = async () => - test.step('verify wall profiles are drawn', async () => { - await Promise.all([ - // open polygon - scene.expectPixelColor(TEST_COLORS.WHITE, { x: 599, y: 168 }, 15), - // closed polygon - scene.expectPixelColor(TEST_COLORS.WHITE, { x: 656, y: 171 }, 15), - // revolved profile - scene.expectPixelColor(TEST_COLORS.WHITE, { x: 655, y: 264 }, 15), - // extruded profile - scene.expectPixelColor(TEST_COLORS.WHITE, { x: 808, y: 396 }, 15), - // circle (When entering via the circle, it's selected and therefore blue) - scene.expectPixelColor( - [TEST_COLORS.WHITE, TEST_COLORS.BLUE], - { x: 742, y: 386 }, - 15 - ), - ]) + await test.step('select wall profiles', async () => { + for (const { title, selectClick } of wallSelectionOptions) { + await test.step(title, async () => { + await camPositionForSelectingSketchOnWallProfiles() + await selectClick() + await toolbar.editSketch(1) + await page.waitForTimeout(600) + await verifyWallProfilesAreDrawn() + await toolbar.exitSketchBtn.click() + await page.waitForTimeout(100) }) + } + }) - await test.step('select wall profiles', async () => { - for (const { title, selectClick } of wallSelectionOptions) { - await test.step(title, async () => { - await camPositionForSelectingSketchOnWallProfiles() - await selectClick() - await toolbar.editSketch(1) - await page.waitForTimeout(600) - await verifyWallProfilesAreDrawn() - await toolbar.exitSketchBtn.click() - await page.waitForTimeout(100) - }) - } - }) - - /* FIXME: the cap part of this test is insanely flaky, and I'm not sure + /* FIXME: the cap part of this test is insanely flaky, and I'm not sure * why. * await test.step('select cap profiles', async () => { for (const { title, selectClick } of capSelectionOptions) { @@ -2681,16 +2706,18 @@ extrude003 = extrude(profile011, length = 2.5) }) } }) */ - } - ) - test( - 'Can enter sketch loft edges, base and continue sketch', - { tag: ['@skipWin'] }, - async ({ homePage, scene, toolbar, editor, page }) => { - await page.addInitScript(async () => { - localStorage.setItem( - 'persistCode', - `@settings(defaultLengthUnit = in) + }) + test('Can enter sketch loft edges, base and continue sketch', async ({ + homePage, + scene, + toolbar, + editor, + page, + }) => { + await page.addInitScript(async () => { + localStorage.setItem( + 'persistCode', + `@settings(defaultLengthUnit = in) sketch001 = startSketchOn(XZ) profile001 = startProfileAt([34, 42.66], sketch001) |> line(end = [102.65, 151.99]) @@ -2707,37 +2734,36 @@ profile002 = startProfileAt([39.43, 172.21], sketch002) loft([profile001, profile002]) ` - ) - }) - - await page.setBodyDimensions({ width: 1000, height: 500 }) - await homePage.goToModelingScene() - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled() - - const [baseProfileEdgeClick] = scene.makeMouseHelpers(621, 292) - - const [rect1Crn1] = scene.makeMouseHelpers(592, 283) - const [rect1Crn2] = scene.makeMouseHelpers(797, 268) - - await baseProfileEdgeClick() - await toolbar.editSketch() - await page.waitForTimeout(600) - await scene.expectPixelColor(TEST_COLORS.WHITE, { x: 562, y: 172 }, 15) - - await toolbar.rectangleBtn.click() - await page.waitForTimeout(100) - await rect1Crn1() - await editor.expectEditor.toContain( - `profile003 = startProfileAt([50.72, -18.19], sketch001)` ) - await rect1Crn2() - await editor.expectEditor.toContain( - `angledLine(angle = 0, length = 113.01, tag = $rectangleSegmentA001)` - ) - } - ) + }) + + await page.setBodyDimensions({ width: 1000, height: 500 }) + await homePage.goToModelingScene() + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled() + + const [baseProfileEdgeClick] = scene.makeMouseHelpers(621, 292) + + const [rect1Crn1] = scene.makeMouseHelpers(592, 283) + const [rect1Crn2] = scene.makeMouseHelpers(797, 268) + + await baseProfileEdgeClick() + await toolbar.editSketch() + await page.waitForTimeout(600) + await scene.expectPixelColor(TEST_COLORS.WHITE, { x: 562, y: 172 }, 15) + + await toolbar.rectangleBtn.click() + await page.waitForTimeout(100) + await rect1Crn1() + await editor.expectEditor.toContain( + `profile003 = startProfileAt([50.72, -18.19], sketch001)` + ) + await rect1Crn2() + await editor.expectEditor.toContain( + `angledLine(angle = 0, length = 113.01, tag = $rectangleSegmentA001)` + ) + }) test('Can enter sketch loft edges offsetPlane and continue sketch', async ({ scene, toolbar, @@ -2970,7 +2996,7 @@ test.describe('Redirecting to home page and back to the original file should cle await click00r(200, -200) // Draw arc - await toolbar.tangentialArcBtn.click() + await toolbar.selectTangentialArc() await click00r(0, 0) await click00r(100, 100) @@ -3245,96 +3271,100 @@ profile003 = startProfileAt([-201.08, 254.17], sketch002) ).toBeVisible() }) }) - test( - 'adding a syntax error, recovers after fixing', - { tag: ['@skipWin'] }, - async ({ page, homePage, context, scene, editor, toolbar, cmdBar }) => { - const file = await fs.readFile( - path.resolve( - __dirname, - '../../', - './rust/kcl-lib/e2e/executor/inputs/e2e-can-sketch-on-chamfer.kcl' - ), - 'utf-8' + test('adding a syntax error, recovers after fixing', async ({ + page, + homePage, + context, + scene, + editor, + toolbar, + cmdBar, + }) => { + const file = await fs.readFile( + path.resolve( + __dirname, + '../../', + './rust/kcl-lib/e2e/executor/inputs/e2e-can-sketch-on-chamfer.kcl' + ), + 'utf-8' + ) + await context.addInitScript((file) => { + localStorage.setItem('persistCode', file) + }, file) + await homePage.goToModelingScene() + + const [objClick] = scene.makeMouseHelpers(600, 250) + const arrowHeadLocation = { x: 706, y: 129 } as const + const arrowHeadWhite = TEST_COLORS.WHITE + const backgroundGray: [number, number, number] = [28, 28, 28] + const verifyArrowHeadColor = async (c: [number, number, number]) => + scene.expectPixelColor(c, arrowHeadLocation, 15) + + // wait for scene to load + await scene.settled(cmdBar) + + await test.step('check chamfer selection changes cursor positon', async () => { + await expect(async () => { + // sometimes initial click doesn't register + await objClick() + await editor.expectActiveLinesToBe([ + '|> startProfileAt([75.8, 317.2], %) // [$startCapTag, $EndCapTag]', + ]) + }).toPass({ timeout: 15_000, intervals: [500] }) + }) + + await test.step('enter sketch and sanity check segments have been drawn', async () => { + await toolbar.editSketch() + // this checks sketch segments have been drawn + await verifyArrowHeadColor(arrowHeadWhite) + }) + + await test.step('Make typo and check the segments have Disappeared and there is a syntax error', async () => { + await editor.replaceCode( + 'line(endAbsolute = [pro', + 'badBadBadFn(endAbsolute = [pro' ) - await context.addInitScript((file) => { - localStorage.setItem('persistCode', file) - }, file) - await homePage.goToModelingScene() - - const [objClick] = scene.makeMouseHelpers(600, 250) - const arrowHeadLocation = { x: 706, y: 129 } as const - const arrowHeadWhite = TEST_COLORS.WHITE - const backgroundGray: [number, number, number] = [28, 28, 28] - const verifyArrowHeadColor = async (c: [number, number, number]) => - scene.expectPixelColor(c, arrowHeadLocation, 15) - - // wait for scene to load - await scene.settled(cmdBar) - - await test.step('check chamfer selection changes cursor positon', async () => { - await expect(async () => { - // sometimes initial click doesn't register - await objClick() - await editor.expectActiveLinesToBe([ - '|> startProfileAt([75.8, 317.2], %) // [$startCapTag, $EndCapTag]', - ]) - }).toPass({ timeout: 15_000, intervals: [500] }) + await editor.expectState({ + activeLines: [], + diagnostics: ['`badBadBadFn`isnotdefined'], + highlightedCode: '', }) - - await test.step('enter sketch and sanity check segments have been drawn', async () => { - await toolbar.editSketch() - // this checks sketch segments have been drawn - await verifyArrowHeadColor(arrowHeadWhite) - }) - - await test.step('Make typo and check the segments have Disappeared and there is a syntax error', async () => { - await editor.replaceCode( - 'line(endAbsolute = [pro', - 'badBadBadFn(endAbsolute = [pro' + await expect( + page.getByText( + "Error in kcl script, sketch cannot be drawn until it's fixed" ) - await editor.expectState({ - activeLines: [], - diagnostics: ['`badBadBadFn`isnotdefined'], - highlightedCode: '', - }) - await expect( - page.getByText( - "Error in kcl script, sketch cannot be drawn until it's fixed" - ) - ).toBeVisible() - // this checks sketch segments have failed to be drawn - await verifyArrowHeadColor(backgroundGray) - }) + ).toBeVisible() + // this checks sketch segments have failed to be drawn + await verifyArrowHeadColor(backgroundGray) + }) - await test.step('', async () => { - await editor.replaceCode( - 'badBadBadFn(endAbsolute = [pro', - 'line(endAbsolute = [pro' - ) - await editor.expectState({ - activeLines: [], - diagnostics: [], - highlightedCode: '', - }) - // this checks sketch segments have been drawn - await verifyArrowHeadColor(arrowHeadWhite) + await test.step('', async () => { + await editor.replaceCode( + 'badBadBadFn(endAbsolute = [pro', + 'line(endAbsolute = [pro' + ) + await editor.expectState({ + activeLines: [], + diagnostics: [], + highlightedCode: '', }) + // this checks sketch segments have been drawn + await verifyArrowHeadColor(arrowHeadWhite) + }) - await test.step('make a change to the code and expect pixel color to change', async () => { - // defends against a regression where sketch would duplicate in the scene - // https://github.com/KittyCAD/modeling-app/issues/6345 - await editor.replaceCode( - 'startProfileAt([75.8, 317.2', - 'startProfileAt([75.8, 217.2' - ) - // expect not white anymore - await scene.expectPixelColorNotToBe( - TEST_COLORS.WHITE, - arrowHeadLocation, - 15 - ) - }) - } - ) + await test.step('make a change to the code and expect pixel color to change', async () => { + // defends against a regression where sketch would duplicate in the scene + // https://github.com/KittyCAD/modeling-app/issues/6345 + await editor.replaceCode( + 'startProfileAt([75.8, 317.2', + 'startProfileAt([75.8, 217.2' + ) + // expect not white anymore + await scene.expectPixelColorNotToBe( + TEST_COLORS.WHITE, + arrowHeadLocation, + 15 + ) + }) + }) }) diff --git a/e2e/playwright/snapshot-tests.spec.ts b/e2e/playwright/snapshot-tests.spec.ts index 908b649dd..48c8efc81 100644 --- a/e2e/playwright/snapshot-tests.spec.ts +++ b/e2e/playwright/snapshot-tests.spec.ts @@ -47,7 +47,7 @@ test.setTimeout(60_000) // up with another PR if we want this back. test( 'exports of each format should work', - { tag: ['@snapshot', '@skipWin', '@skipMacos'] }, + { tag: ['@snapshot'] }, async ({ page, context, scene, cmdBar, tronApp }) => { if (!tronApp) { fail() @@ -464,9 +464,7 @@ test( |> xLine(length = 184.3)` await expect(page.locator('.cm-content')).toHaveText(code) - await page - .getByRole('button', { name: 'arc Tangential Arc', exact: true }) - .click() + await toolbar.selectTangentialArc() // click on the end of the profile to continue it await page.waitForTimeout(500) @@ -621,7 +619,7 @@ test.describe( 'Client side scene scale should match engine scale', { tag: '@snapshot' }, () => { - test('Inch scale', async ({ page, cmdBar, scene }) => { + test('Inch scale', async ({ page, cmdBar, scene, toolbar }) => { const u = await getUtils(page) await page.setViewportSize({ width: 1200, height: 500 }) const PUR = 400 / 37.5 //pixeltoUnitRatio @@ -655,9 +653,7 @@ test.describe( |> xLine(length = 184.3)` await expect(u.codeLocator).toHaveText(code) - await page - .getByRole('button', { name: 'arc Tangential Arc', exact: true }) - .click() + await toolbar.selectTangentialArc() await page.waitForTimeout(100) // click to continue profile @@ -671,9 +667,8 @@ test.describe( await expect(u.codeLocator).toHaveText(code) // click tangential arc tool again to unequip it - await page - .getByRole('button', { name: 'arc Tangential Arc', exact: true }) - .click() + // it will be available directly in the toolbar since it was last equipped + await toolbar.tangentialArcBtn.click() await page.waitForTimeout(100) // screen shot should show the sketch @@ -696,7 +691,13 @@ test.describe( }) }) - test('Millimeter scale', async ({ page, context, cmdBar, scene }) => { + test('Millimeter scale', async ({ + page, + context, + cmdBar, + scene, + toolbar, + }) => { await context.addInitScript( async ({ settingsKey, settings }) => { localStorage.setItem(settingsKey, settings) @@ -749,9 +750,7 @@ test.describe( |> xLine(length = 184.3)` await expect(u.codeLocator).toHaveText(code) - await page - .getByRole('button', { name: 'arc Tangential Arc', exact: true }) - .click() + await toolbar.selectTangentialArc() await page.waitForTimeout(100) // click to continue profile @@ -764,9 +763,7 @@ test.describe( |> tangentialArc(endAbsolute = [551.2, -62.01])` await expect(u.codeLocator).toHaveText(code) - await page - .getByRole('button', { name: 'arc Tangential Arc', exact: true }) - .click() + await toolbar.tangentialArcBtn.click() await page.waitForTimeout(100) // screen shot should show the sketch diff --git a/e2e/playwright/test-network-and-connection-issues.spec.ts b/e2e/playwright/test-network-and-connection-issues.spec.ts index fe0b5dab6..3ae1f6f23 100644 --- a/e2e/playwright/test-network-and-connection-issues.spec.ts +++ b/e2e/playwright/test-network-and-connection-issues.spec.ts @@ -8,228 +8,235 @@ import { } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Test network and connection issues', () => { - test( - 'simulate network down and network little widget', - { tag: '@skipLocalEngine' }, - async ({ page, homePage }) => { - test.fixme(orRunWhenFullSuiteEnabled()) - const u = await getUtils(page) - await page.setBodyDimensions({ width: 1200, height: 500 }) +test.describe( + 'Test network and connection issues', + { + tag: ['@macos', '@windows'], + }, + () => { + test( + 'simulate network down and network little widget', + { tag: '@skipLocalEngine' }, + async ({ page, homePage }) => { + test.fixme(orRunWhenFullSuiteEnabled()) + const u = await getUtils(page) + await page.setBodyDimensions({ width: 1200, height: 500 }) - await homePage.goToModelingScene() + await homePage.goToModelingScene() - const networkToggle = page.getByTestId('network-toggle') + const networkToggle = page.getByTestId('network-toggle') - // This is how we wait until the stream is online - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled({ timeout: 15000 }) + // This is how we wait until the stream is online + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled({ timeout: 15000 }) - const networkWidget = page.locator('[data-testid="network-toggle"]') - await expect(networkWidget).toBeVisible() - await networkWidget.hover() + const networkWidget = page.locator('[data-testid="network-toggle"]') + await expect(networkWidget).toBeVisible() + await networkWidget.hover() - const networkPopover = page.locator('[data-testid="network-popover"]') - await expect(networkPopover).not.toBeVisible() + const networkPopover = page.locator('[data-testid="network-popover"]') + await expect(networkPopover).not.toBeVisible() - // (First check) Expect the network to be up - await expect(networkToggle).toContainText('Connected') + // (First check) Expect the network to be up + await expect(networkToggle).toContainText('Connected') - // Click the network widget - await networkWidget.click() + // Click the network widget + await networkWidget.click() - // Check the modal opened. - await expect(networkPopover).toBeVisible() + // Check the modal opened. + await expect(networkPopover).toBeVisible() - // Click off the modal. - await page.mouse.click(100, 100) - await expect(networkPopover).not.toBeVisible() + // Click off the modal. + await page.mouse.click(100, 100) + await expect(networkPopover).not.toBeVisible() - // Turn off the network - await u.emulateNetworkConditions({ - offline: true, - // values of 0 remove any active throttling. crbug.com/456324#c9 - latency: 0, - downloadThroughput: -1, - uploadThroughput: -1, - }) + // Turn off the network + await u.emulateNetworkConditions({ + offline: true, + // values of 0 remove any active throttling. crbug.com/456324#c9 + latency: 0, + downloadThroughput: -1, + uploadThroughput: -1, + }) - // Expect the network to be down - await expect(networkToggle).toContainText('Problem') + // Expect the network to be down + await expect(networkToggle).toContainText('Problem') - // Click the network widget - await networkWidget.click() + // Click the network widget + await networkWidget.click() - // Check the modal opened. - await expect(networkPopover).toBeVisible() + // Check the modal opened. + await expect(networkPopover).toBeVisible() - // Click off the modal. - await page.mouse.click(0, 0) - await expect(networkPopover).not.toBeVisible() + // Click off the modal. + await page.mouse.click(0, 0) + await expect(networkPopover).not.toBeVisible() - // Turn back on the network - await u.emulateNetworkConditions({ - offline: false, - // values of 0 remove any active throttling. crbug.com/456324#c9 - latency: 0, - downloadThroughput: -1, - uploadThroughput: -1, - }) + // Turn back on the network + await u.emulateNetworkConditions({ + offline: false, + // values of 0 remove any active throttling. crbug.com/456324#c9 + latency: 0, + downloadThroughput: -1, + uploadThroughput: -1, + }) - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled({ timeout: 15000 }) + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled({ timeout: 15000 }) - // (Second check) expect the network to be up - await expect(networkToggle).toContainText('Connected') - } - ) + // (Second check) expect the network to be up + await expect(networkToggle).toContainText('Connected') + } + ) - test( - 'Engine disconnect & reconnect in sketch mode', - { tag: '@skipLocalEngine' }, - async ({ page, homePage, toolbar, scene, cmdBar }) => { - test.fixme(orRunWhenFullSuiteEnabled()) - const networkToggle = page.getByTestId('network-toggle') + test( + 'Engine disconnect & reconnect in sketch mode', + { tag: '@skipLocalEngine' }, + async ({ page, homePage, toolbar, scene, cmdBar }) => { + test.fixme(orRunWhenFullSuiteEnabled()) + const networkToggle = page.getByTestId('network-toggle') - const u = await getUtils(page) - await page.setBodyDimensions({ width: 1200, height: 500 }) - const PUR = 400 / 37.5 //pixeltoUnitRatio + const u = await getUtils(page) + await page.setBodyDimensions({ width: 1200, height: 500 }) + const PUR = 400 / 37.5 //pixeltoUnitRatio - await homePage.goToModelingScene() - await u.waitForPageLoad() + await homePage.goToModelingScene() + await u.waitForPageLoad() - await u.openDebugPanel() - // click on "Start Sketch" button - await u.clearCommandLogs() - await page.getByRole('button', { name: 'Start Sketch' }).click() - await page.waitForTimeout(100) + await u.openDebugPanel() + // click on "Start Sketch" button + await u.clearCommandLogs() + await page.getByRole('button', { name: 'Start Sketch' }).click() + await page.waitForTimeout(100) - // select a plane - await page.mouse.click(700, 200) + // select a plane + await page.mouse.click(700, 200) - await expect(page.locator('.cm-content')).toHaveText( - `sketch001 = startSketchOn(XZ)` - ) - await u.closeDebugPanel() + await expect(page.locator('.cm-content')).toHaveText( + `sketch001 = startSketchOn(XZ)` + ) + await u.closeDebugPanel() - await page.waitForTimeout(500) // TODO detect animation ending, or disable animation + await page.waitForTimeout(500) // TODO detect animation ending, or disable animation - const startXPx = 600 - await page.mouse.click(startXPx + PUR * 10, 500 - PUR * 10) - await expect(page.locator('.cm-content')).toHaveText( - `sketch001 = startSketchOn(XZ)profile001 = startProfileAt(${commonPoints.startAt}, sketch001)` - ) - await page.waitForTimeout(100) + const startXPx = 600 + await page.mouse.click(startXPx + PUR * 10, 500 - PUR * 10) + await expect(page.locator('.cm-content')).toHaveText( + `sketch001 = startSketchOn(XZ)profile001 = startProfileAt(${commonPoints.startAt}, sketch001)` + ) + await page.waitForTimeout(100) - await page.mouse.click(startXPx + PUR * 20, 500 - PUR * 10) - await page.waitForTimeout(100) + await page.mouse.click(startXPx + PUR * 20, 500 - PUR * 10) + await page.waitForTimeout(100) - await expect( - page.locator('.cm-content') - ).toHaveText(`sketch001 = startSketchOn(XZ)profile001 = startProfileAt(${commonPoints.startAt}, sketch001) + await expect( + page.locator('.cm-content') + ).toHaveText(`sketch001 = startSketchOn(XZ)profile001 = startProfileAt(${commonPoints.startAt}, sketch001) |> xLine(length = ${commonPoints.num1})`) - // Expect the network to be up - await expect(networkToggle).toContainText('Connected') + // Expect the network to be up + await expect(networkToggle).toContainText('Connected') - // simulate network down - await u.emulateNetworkConditions({ - offline: true, - // values of 0 remove any active throttling. crbug.com/456324#c9 - latency: 0, - downloadThroughput: -1, - uploadThroughput: -1, - }) + // simulate network down + await u.emulateNetworkConditions({ + offline: true, + // values of 0 remove any active throttling. crbug.com/456324#c9 + latency: 0, + downloadThroughput: -1, + uploadThroughput: -1, + }) - // Expect the network to be down - await expect(networkToggle).toContainText('Problem') + // Expect the network to be down + await expect(networkToggle).toContainText('Problem') - // Ensure we are not in sketch mode - await expect( - page.getByRole('button', { name: 'Exit Sketch' }) - ).not.toBeVisible() - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).toBeVisible() + // Ensure we are not in sketch mode + await expect( + page.getByRole('button', { name: 'Exit Sketch' }) + ).not.toBeVisible() + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).toBeVisible() - // simulate network up - await u.emulateNetworkConditions({ - offline: false, - // values of 0 remove any active throttling. crbug.com/456324#c9 - latency: 0, - downloadThroughput: -1, - uploadThroughput: -1, - }) + // simulate network up + await u.emulateNetworkConditions({ + offline: false, + // values of 0 remove any active throttling. crbug.com/456324#c9 + latency: 0, + downloadThroughput: -1, + uploadThroughput: -1, + }) - // Wait for the app to be ready for use - await expect( - page.getByRole('button', { name: 'Start Sketch' }) - ).not.toBeDisabled({ timeout: 15000 }) + // Wait for the app to be ready for use + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).not.toBeDisabled({ timeout: 15000 }) - // Expect the network to be up - await expect(networkToggle).toContainText('Connected') - await scene.settled(cmdBar) + // Expect the network to be up + await expect(networkToggle).toContainText('Connected') + await scene.settled(cmdBar) - // Click off the code pane. - await page.mouse.click(100, 100) + // Click off the code pane. + await page.mouse.click(100, 100) - // select a line - await page - .getByText(`startProfileAt(${commonPoints.startAt}, sketch001)`) - .click() + // select a line + await page + .getByText(`startProfileAt(${commonPoints.startAt}, sketch001)`) + .click() - // enter sketch again - await toolbar.editSketch() + // enter sketch again + await toolbar.editSketch() - // Click the line tool - await page.getByRole('button', { name: 'line Line', exact: true }).click() + // Click the line tool + await page + .getByRole('button', { name: 'line Line', exact: true }) + .click() - await page.waitForTimeout(150) + await page.waitForTimeout(150) - const camCommand: EngineCommand = { - type: 'modeling_cmd_req', - cmd_id: uuidv4(), - cmd: { - type: 'default_camera_look_at', - center: { x: 109, y: 0, z: -152 }, - vantage: { x: 115, y: -505, z: -152 }, - up: { x: 0, y: 0, z: 1 }, - }, - } - const updateCamCommand: EngineCommand = { - type: 'modeling_cmd_req', - cmd_id: uuidv4(), - cmd: { - type: 'default_camera_get_settings', - }, - } - await toolbar.openPane('debug') - await u.sendCustomCmd(camCommand) - await page.waitForTimeout(100) - await u.sendCustomCmd(updateCamCommand) - await page.waitForTimeout(100) + const camCommand: EngineCommand = { + type: 'modeling_cmd_req', + cmd_id: uuidv4(), + cmd: { + type: 'default_camera_look_at', + center: { x: 109, y: 0, z: -152 }, + vantage: { x: 115, y: -505, z: -152 }, + up: { x: 0, y: 0, z: 1 }, + }, + } + const updateCamCommand: EngineCommand = { + type: 'modeling_cmd_req', + cmd_id: uuidv4(), + cmd: { + type: 'default_camera_get_settings', + }, + } + await toolbar.openPane('debug') + await u.sendCustomCmd(camCommand) + await page.waitForTimeout(100) + await u.sendCustomCmd(updateCamCommand) + await page.waitForTimeout(100) - // click to continue profile - await page.mouse.click(1007, 400) - await page.waitForTimeout(100) - // Ensure we can continue sketching - await page.mouse.click(startXPx + PUR * 20, 500 - PUR * 20) - await expect - .poll(u.normalisedEditorCode) - .toBe(`sketch001 = startSketchOn(XZ) + // click to continue profile + await page.mouse.click(1007, 400) + await page.waitForTimeout(100) + // Ensure we can continue sketching + await page.mouse.click(startXPx + PUR * 20, 500 - PUR * 20) + await expect + .poll(u.normalisedEditorCode) + .toBe(`sketch001 = startSketchOn(XZ) profile001 = startProfileAt([12.34, -12.34], sketch001) |> xLine(length = 12.34) |> line(end = [-12.34, 12.34]) `) - await page.waitForTimeout(100) - await page.mouse.click(startXPx, 500 - PUR * 20) + await page.waitForTimeout(100) + await page.mouse.click(startXPx, 500 - PUR * 20) - await expect - .poll(u.normalisedEditorCode) - .toBe(`sketch001 = startSketchOn(XZ) + await expect + .poll(u.normalisedEditorCode) + .toBe(`sketch001 = startSketchOn(XZ) profile001 = startProfileAt([12.34, -12.34], sketch001) |> xLine(length = 12.34) |> line(end = [-12.34, 12.34]) @@ -237,21 +244,22 @@ profile001 = startProfileAt([12.34, -12.34], sketch001) `) - // Unequip line tool - await page.keyboard.press('Escape') - // Make sure we didn't pop out of sketch mode. - await expect( - page.getByRole('button', { name: 'Exit Sketch' }) - ).toBeVisible() - await expect( - page.getByRole('button', { name: 'line Line', exact: true }) - ).not.toHaveAttribute('aria-pressed', 'true') + // Unequip line tool + await page.keyboard.press('Escape') + // Make sure we didn't pop out of sketch mode. + await expect( + page.getByRole('button', { name: 'Exit Sketch' }) + ).toBeVisible() + await expect( + page.getByRole('button', { name: 'line Line', exact: true }) + ).not.toHaveAttribute('aria-pressed', 'true') - // Exit sketch - await page.keyboard.press('Escape') - await expect( - page.getByRole('button', { name: 'Exit Sketch' }) - ).not.toBeVisible() - } - ) -}) + // Exit sketch + await page.keyboard.press('Escape') + await expect( + page.getByRole('button', { name: 'Exit Sketch' }) + ).not.toBeVisible() + } + ) + } +) diff --git a/e2e/playwright/test-utils.ts b/e2e/playwright/test-utils.ts index 44813baa9..ebf3eba2a 100644 --- a/e2e/playwright/test-utils.ts +++ b/e2e/playwright/test-utils.ts @@ -1024,6 +1024,10 @@ export function testsInputPath(fileName: string): string { return path.join('rust', 'kcl-lib', 'tests', 'inputs', fileName) } +export function kclSamplesPath(fileName: string): string { + return path.join('public', 'kcl-samples', fileName) +} + export async function doAndWaitForImageDiff( page: Page, fn: () => Promise, diff --git a/e2e/playwright/testing-camera-movement.spec.ts b/e2e/playwright/testing-camera-movement.spec.ts index dd63f5605..816d6ce51 100644 --- a/e2e/playwright/testing-camera-movement.spec.ts +++ b/e2e/playwright/testing-camera-movement.spec.ts @@ -4,7 +4,7 @@ import { uuidv4 } from '@src/lib/utils' import { getUtils, orRunWhenFullSuiteEnabled } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Testing Camera Movement', { tag: ['@skipWin'] }, () => { +test.describe('Testing Camera Movement', () => { test('Can move camera reliably', async ({ page, context, diff --git a/e2e/playwright/testing-constraints.spec.ts b/e2e/playwright/testing-constraints.spec.ts index b4fc908f6..1d33df616 100644 --- a/e2e/playwright/testing-constraints.spec.ts +++ b/e2e/playwright/testing-constraints.spec.ts @@ -10,7 +10,7 @@ import { } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Testing constraints', { tag: ['@skipWin'] }, () => { +test.describe('Testing constraints', () => { test('Can constrain line length', async ({ page, homePage }) => { await page.addInitScript(async () => { localStorage.setItem( diff --git a/e2e/playwright/testing-gizmo.spec.ts b/e2e/playwright/testing-gizmo.spec.ts index a46467160..5f220cd56 100644 --- a/e2e/playwright/testing-gizmo.spec.ts +++ b/e2e/playwright/testing-gizmo.spec.ts @@ -4,7 +4,7 @@ import { TEST_CODE_GIZMO } from '@e2e/playwright/storageStates' import { getUtils } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Testing Gizmo', { tag: ['@skipWin'] }, () => { +test.describe('Testing Gizmo', () => { const cases = [ { testDescription: 'top view', diff --git a/e2e/playwright/testing-segment-overlays.spec.ts b/e2e/playwright/testing-segment-overlays.spec.ts index 0e5d184bf..adaa148aa 100644 --- a/e2e/playwright/testing-segment-overlays.spec.ts +++ b/e2e/playwright/testing-segment-overlays.spec.ts @@ -11,7 +11,7 @@ import { } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Testing segment overlays', { tag: ['@skipWin'] }, () => { +test.describe('Testing segment overlays', () => { test('Hover over a segment should show its overlay, hovering over the input overlays should show its popover, clicking the input overlay should constrain/unconstrain it:\nfor the following segments', () => { // TODO: fix this test on mac after the electron migration test.fixme(orRunWhenFullSuiteEnabled()) diff --git a/e2e/playwright/testing-selections.spec.ts b/e2e/playwright/testing-selections.spec.ts index 13eb29d49..8f4193952 100644 --- a/e2e/playwright/testing-selections.spec.ts +++ b/e2e/playwright/testing-selections.spec.ts @@ -9,7 +9,7 @@ import { } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Testing selections', { tag: ['@skipWin'] }, () => { +test.describe('Testing selections', () => { test.setTimeout(90_000) test('Selections work on fresh and edited sketch', async ({ page, @@ -39,12 +39,12 @@ test.describe('Testing selections', { tag: ['@skipWin'] }, () => { }) const emptySpaceHover = () => test.step('Hover over empty space', async () => { - await page.mouse.move(700, 143, { steps: 5 }) + await page.mouse.move(1000, 143, { steps: 5 }) await expect(page.locator('.hover-highlight')).not.toBeVisible() }) const emptySpaceClick = () => test.step(`Click in empty space`, async () => { - await page.mouse.click(700, 143) + await page.mouse.click(1000, 143) await expect(page.locator('.cm-line').last()).toHaveClass( /cm-activeLine/ ) diff --git a/e2e/playwright/testing-settings.spec.ts b/e2e/playwright/testing-settings.spec.ts index dfd80d2b6..933435b24 100644 --- a/e2e/playwright/testing-settings.spec.ts +++ b/e2e/playwright/testing-settings.spec.ts @@ -26,725 +26,752 @@ import { } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Testing settings', () => { - test('Stored settings are validated and fall back to defaults', async ({ - page, - homePage, - tronApp, - }) => { - if (!tronApp) { - fail() - } - // Override beforeEach test setup - // with corrupted settings - await tronApp.cleanProjectDir( - TEST_SETTINGS_CORRUPTED as DeepPartial - ) - - await page.setBodyDimensions({ width: 1200, height: 500 }) - - // Check the settings were reset - const storedSettings = tomlToSettings( - await page.evaluate( - ({ settingsKey }) => localStorage.getItem(settingsKey) || '', - { settingsKey: TEST_SETTINGS_KEY } +test.describe( + 'Testing settings', + { + tag: ['@macos', '@windows'], + }, + () => { + test('Stored settings are validated and fall back to defaults', async ({ + page, + homePage, + tronApp, + }) => { + if (!tronApp) { + fail() + } + // Override beforeEach test setup + // with corrupted settings + await tronApp.cleanProjectDir( + TEST_SETTINGS_CORRUPTED as DeepPartial ) - ) - expect(storedSettings.settings?.app?.appearance?.theme).toBe('dark') - - // Check that the invalid settings were changed to good defaults - expect(storedSettings.settings?.modeling?.base_unit).toBe('in') - expect(storedSettings.settings?.modeling?.mouse_controls).toBe('zoo') - // Commenting this out because tests need this to be set to work properly. - // expect(storedSettings.settings?.app?.project_directory).toBe('') - expect(storedSettings.settings?.project?.default_project_name).toBe( - 'untitled' - ) - }) - - // The behavior is actually broken. Parent always takes precedence - test('Project settings can be set and override user settings', async ({ - page, - homePage, - }) => { - test.fixme(orRunWhenFullSuiteEnabled()) - const u = await getUtils(page) - await test.step(`Setup`, async () => { await page.setBodyDimensions({ width: 1200, height: 500 }) - await homePage.goToModelingScene() + + // Check the settings were reset + const storedSettings = tomlToSettings( + await page.evaluate( + ({ settingsKey }) => localStorage.getItem(settingsKey) || '', + { settingsKey: TEST_SETTINGS_KEY } + ) + ) + + expect(storedSettings.settings?.app?.appearance?.theme).toBe('dark') + + // Check that the invalid settings were changed to good defaults + expect(storedSettings.settings?.modeling?.base_unit).toBe('in') + expect(storedSettings.settings?.modeling?.mouse_controls).toBe('zoo') + // Commenting this out because tests need this to be set to work properly. + // expect(storedSettings.settings?.app?.project_directory).toBe('') + expect(storedSettings.settings?.project?.default_project_name).toBe( + 'untitled' + ) + }) + + // The behavior is actually broken. Parent always takes precedence + test('Project settings can be set and override user settings', async ({ + page, + homePage, + }) => { + test.fixme(orRunWhenFullSuiteEnabled()) + const u = await getUtils(page) + await test.step(`Setup`, async () => { + await page.setBodyDimensions({ width: 1200, height: 500 }) + await homePage.goToModelingScene() + await page + .getByRole('button', { name: 'Start Sketch' }) + .waitFor({ state: 'visible' }) + }) + + // Selectors and constants + const paneButtonLocator = page.getByTestId('debug-pane-button') + const headingLocator = page.getByRole('heading', { + name: 'Settings', + exact: true, + }) + const inputLocator = page.locator('input[name="app-showDebugPanel"]') + + await test.step('Open settings dialog and set "Show debug panel" to on', async () => { + await page.keyboard.press('ControlOrMeta+,') + await expect(headingLocator).toBeVisible() + + /** Test to close https://github.com/KittyCAD/modeling-app/issues/2713 */ + await test.step(`Confirm that this dialog has a solid background`, async () => { + await expect + .poll( + () => u.getGreatestPixDiff({ x: 600, y: 250 }, [28, 28, 28]), + { + timeout: 1000, + message: + 'Checking for solid background, should not see default plane colors', + } + ) + .toBeLessThan(15) + }) + + await page.locator('#showDebugPanel').getByText('OffOn').click() + }) + + // Close it and open again with keyboard shortcut, while KCL editor is focused + // Put the cursor in the editor + await test.step('Open settings with keyboard shortcut', async () => { + await page.getByTestId('settings-close-button').click() + await page.locator('.cm-content').click() + await page.keyboard.press('ControlOrMeta+,') + await expect(headingLocator).toBeVisible() + }) + + // Verify the toast appeared + await expect( + page.getByText(`Set show debug panel to "false" for this project`) + ).toBeVisible() + await expect( + page.getByText(`Set show debug panel to "false" for this project`) + ).not.toBeVisible() + + // Check that the debug panel button is gone + await expect(paneButtonLocator).not.toBeVisible() + + // Check that the user setting was not changed + await page.getByRole('radio', { name: 'User' }).click() + await expect(inputLocator).toBeChecked() + + // Roll back to default of "off" + await await page + .getByText( + 'show debug panelRoll back show debug panelRoll back to match' + ) + .hover() await page - .getByRole('button', { name: 'Start Sketch' }) - .waitFor({ state: 'visible' }) + .getByRole('button', { + name: 'Roll back show debug panel', + }) + .click() + await expect(inputLocator).not.toBeChecked() + + // Check that the project setting did not change + await page.getByRole('radio', { name: 'Project' }).click() + await expect( + page.locator('input[name="app-showDebugPanel"]') + ).not.toBeChecked() }) - // Selectors and constants - const paneButtonLocator = page.getByTestId('debug-pane-button') - const headingLocator = page.getByRole('heading', { - name: 'Settings', - exact: true, - }) - const inputLocator = page.locator('input[name="app-showDebugPanel"]') - - await test.step('Open settings dialog and set "Show debug panel" to on', async () => { - await page.keyboard.press('ControlOrMeta+,') - await expect(headingLocator).toBeVisible() - - /** Test to close https://github.com/KittyCAD/modeling-app/issues/2713 */ - await test.step(`Confirm that this dialog has a solid background`, async () => { - await expect - .poll(() => u.getGreatestPixDiff({ x: 600, y: 250 }, [28, 28, 28]), { - timeout: 1000, - message: - 'Checking for solid background, should not see default plane colors', - }) - .toBeLessThan(15) - }) - - await page.locator('#showDebugPanel').getByText('OffOn').click() - }) - - // Close it and open again with keyboard shortcut, while KCL editor is focused - // Put the cursor in the editor - await test.step('Open settings with keyboard shortcut', async () => { - await page.getByTestId('settings-close-button').click() - await page.locator('.cm-content').click() - await page.keyboard.press('ControlOrMeta+,') - await expect(headingLocator).toBeVisible() - }) - - // Verify the toast appeared - await expect( - page.getByText(`Set show debug panel to "false" for this project`) - ).toBeVisible() - await expect( - page.getByText(`Set show debug panel to "false" for this project`) - ).not.toBeVisible() - - // Check that the debug panel button is gone - await expect(paneButtonLocator).not.toBeVisible() - - // Check that the user setting was not changed - await page.getByRole('radio', { name: 'User' }).click() - await expect(inputLocator).toBeChecked() - - // Roll back to default of "off" - await await page - .getByText('show debug panelRoll back show debug panelRoll back to match') - .hover() - await page - .getByRole('button', { - name: 'Roll back show debug panel', - }) - .click() - await expect(inputLocator).not.toBeChecked() - - // Check that the project setting did not change - await page.getByRole('radio', { name: 'Project' }).click() - await expect( - page.locator('input[name="app-showDebugPanel"]') - ).not.toBeChecked() - }) - - test('Keybindings display the correct hotkey for Command Palette', async ({ - page, - homePage, - }) => { - // TODO: fix this test on windows after the electron migration - test.skip(process.platform === 'win32', 'Skip on windows') - const u = await getUtils(page) - await page.setBodyDimensions({ width: 1200, height: 500 }) - await homePage.goToModelingScene() - await u.waitForPageLoad() - - await test.step('Open keybindings settings', async () => { - // Open the settings modal with the keyboard shortcut - await page.keyboard.press('ControlOrMeta+,') - - // Go to Keybindings tab. - const keybindingsTab = page.getByRole('radio', { name: 'Keybindings' }) - await keybindingsTab.click() - }) - - // Go to the hotkey for Command Palette. - const commandPalette = page.getByText('Toggle Command Palette') - await commandPalette.scrollIntoViewIfNeeded() - - // The heading is above it and should be in view now. - const commandPaletteHeading = page.getByRole('heading', { - name: 'Command Palette', - }) - // The hotkey is in a kbd element next to the heading. - const hotkey = commandPaletteHeading.locator('+ div kbd') - const text = process.platform === 'darwin' ? 'Command+K' : 'Control+K' - await expect(hotkey).toHaveText(text) - }) - - test('Project and user settings can be reset', async ({ page, homePage }) => { - const u = await getUtils(page) - await test.step(`Setup`, async () => { + test('Keybindings display the correct hotkey for Command Palette', async ({ + page, + homePage, + }) => { + // TODO: fix this test on windows after the electron migration + test.skip(process.platform === 'win32', 'Skip on windows') + const u = await getUtils(page) await page.setBodyDimensions({ width: 1200, height: 500 }) await homePage.goToModelingScene() await u.waitForPageLoad() - await page.waitForTimeout(1000) - }) - // Selectors and constants - const projectSettingsTab = page.getByRole('radio', { name: 'Project' }) - const userSettingsTab = page.getByRole('radio', { name: 'User' }) - const resetButton = (level: SettingsLevel) => - page.getByRole('button', { - name: `Reset ${level}-level settings`, - }) - const themeColorSetting = page.locator('#themeColor').getByRole('slider') - const settingValues = { - default: '259', - user: '120', - project: '50', - } - const resetToast = (level: SettingsLevel) => - page.getByText(`${level}-level settings were reset`) + await test.step('Open keybindings settings', async () => { + // Open the settings modal with the keyboard shortcut + await page.keyboard.press('ControlOrMeta+,') - await test.step(`Open the settings modal`, async () => { - await page.getByRole('link', { name: 'Settings' }).last().click() - await expect( - page.getByRole('heading', { name: 'Settings', exact: true }) - ).toBeVisible() - }) - - await test.step('Set up theme color', async () => { - // Verify we're looking at the project-level settings, - // and it's set to default value - await expect(projectSettingsTab).toBeChecked() - await expect(themeColorSetting).toHaveValue(settingValues.default) - - // Set project-level value to 50 - await themeColorSetting.fill(settingValues.project) - - // Set user-level value to 120 - await userSettingsTab.click() - await themeColorSetting.fill(settingValues.user) - await projectSettingsTab.click() - }) - - await test.step('Reset project settings', async () => { - // Click the reset settings button. - await resetButton('project').click() - - await expect(resetToast('project')).toBeVisible() - await expect(resetToast('project')).not.toBeVisible() - - // Verify it is now set to the inherited user value - await expect(themeColorSetting).toHaveValue(settingValues.user) - - await test.step(`Check that the user settings did not change`, async () => { - await userSettingsTab.click() - await expect(themeColorSetting).toHaveValue(settingValues.user) + // Go to Keybindings tab. + const keybindingsTab = page.getByRole('radio', { name: 'Keybindings' }) + await keybindingsTab.click() }) - await test.step(`Set project-level again to test the user-level reset`, async () => { - await projectSettingsTab.click() - await themeColorSetting.fill(settingValues.project) - await userSettingsTab.click() + // Go to the hotkey for Command Palette. + const commandPalette = page.getByText('Toggle Command Palette') + await commandPalette.scrollIntoViewIfNeeded() + + // The heading is above it and should be in view now. + const commandPaletteHeading = page.getByRole('heading', { + name: 'Command Palette', }) + // The hotkey is in a kbd element next to the heading. + const hotkey = commandPaletteHeading.locator('+ div kbd') + const text = process.platform === 'darwin' ? 'Command+K' : 'Control+K' + await expect(hotkey).toHaveText(text) }) - await test.step('Reset user settings', async () => { - // Click the reset settings button. - await resetButton('user').click() - - await expect(resetToast('user')).toBeVisible() - await expect(resetToast('user')).not.toBeVisible() - - // Verify it is now set to the default value - await expect(themeColorSetting).toHaveValue(settingValues.default) - - await test.step(`Check that the project settings did not change`, async () => { - await projectSettingsTab.click() - await expect(themeColorSetting).toHaveValue(settingValues.project) + test('Project and user settings can be reset', async ({ + page, + homePage, + }) => { + const u = await getUtils(page) + await test.step(`Setup`, async () => { + await page.setBodyDimensions({ width: 1200, height: 500 }) + await homePage.goToModelingScene() + await u.waitForPageLoad() + await page.waitForTimeout(1000) }) - }) - }) - - test( - `Project settings override user settings on desktop`, - { tag: ['@electron', '@skipWin'] }, - async ({ context, page }, testInfo) => { - test.fixme(orRunWhenFullSuiteEnabled()) - const projectName = 'bracket' - const { dir: projectDirName } = await context.folderSetupFn( - async (dir) => { - const bracketDir = join(dir, projectName) - await fsp.mkdir(bracketDir, { recursive: true }) - await fsp.copyFile( - executorInputPath('cylinder-inches.kcl'), - join(bracketDir, 'main.kcl') - ) - } - ) - - await page.setBodyDimensions({ width: 1200, height: 500 }) // Selectors and constants - const tempProjectSettingsFilePath = join( - projectDirName, - projectName, - PROJECT_SETTINGS_FILE_NAME - ) - const tempUserSettingsFilePath = join(projectDirName, SETTINGS_FILE_NAME) - const userThemeColor = '120' - const projectThemeColor = '50' - const settingsOpenButton = page.getByRole('link', { - name: 'settings Settings', - }) - const themeColorSetting = page.locator('#themeColor').getByRole('slider') const projectSettingsTab = page.getByRole('radio', { name: 'Project' }) const userSettingsTab = page.getByRole('radio', { name: 'User' }) - const settingsCloseButton = page.getByTestId('settings-close-button') - const projectLink = page.getByText('bracket') - const logoLink = page.getByTestId('app-logo') - - await test.step('Set user theme color on home', async () => { - await expect(settingsOpenButton).toBeVisible() - await settingsOpenButton.click() - // The user tab should be selected by default on home - await expect(userSettingsTab).toBeChecked() - await themeColorSetting.fill(userThemeColor) - await expect(logoLink).toHaveCSS('--primary-hue', userThemeColor) - await settingsCloseButton.click() - await expect - .poll(async () => fsp.readFile(tempUserSettingsFilePath, 'utf-8'), { - message: 'Setting should now be written to the file', - timeout: 5_000, - }) - .toContain(`themeColor = "${userThemeColor}"`) - }) - - await test.step('Set project theme color', async () => { - // Open the project - await projectLink.click() - await settingsOpenButton.click() - // The project tab should be selected by default within a project - await expect(projectSettingsTab).toBeChecked() - await themeColorSetting.fill(projectThemeColor) - await expect(logoLink).toHaveCSS('--primary-hue', projectThemeColor) - await settingsCloseButton.click() - // Make sure that the project settings file has been written to before continuing - await expect - .poll( - async () => fsp.readFile(tempProjectSettingsFilePath, 'utf-8'), - { - message: 'Setting should now be written to the file', - timeout: 5_000, - } - ) - .toContain(`themeColor = "${projectThemeColor}"`) - }) - - await test.step('Refresh the application and see project setting applied', async () => { - // Make sure we're done navigating before we reload - await expect(settingsCloseButton).not.toBeVisible() - - await page.reload({ waitUntil: 'domcontentloaded' }) - await expect(logoLink).toHaveCSS('--primary-hue', projectThemeColor) - }) - - await test.step(`Navigate back to the home view and see user setting applied`, async () => { - await logoLink.click() - await expect(logoLink).toHaveCSS('--primary-hue', userThemeColor) - }) - } - ) - - test( - `Load desktop app with no settings file`, - { - tag: '@electron', - }, - async ({ page }, testInfo) => { - await page.setBodyDimensions({ width: 1200, height: 500 }) - - // Selectors and constants - const errorHeading = page.getByRole('heading', { - name: 'An unexpected error occurred', - }) - const projectDirLink = page.getByText('Loaded from') - - // If the app loads without exploding we're in the clear - await expect(errorHeading).not.toBeVisible() - await expect(projectDirLink).toBeVisible() - } - ) - - test( - `Load desktop app with a settings file, but no project directory setting`, - { - tag: '@electron', - }, - async ({ context, page, tronApp }, testInfo) => { - if (!tronApp) { - fail() + const resetButton = (level: SettingsLevel) => + page.getByRole('button', { + name: `Reset ${level}-level settings`, + }) + const themeColorSetting = page.locator('#themeColor').getByRole('slider') + const settingValues = { + default: '259', + user: '120', + project: '50', } - await tronApp.cleanProjectDir({ - app: { - appearance: { - color: 259, - }, - }, - }) + const resetToast = (level: SettingsLevel) => + page.getByText(`${level}-level settings were reset`) - await page.setBodyDimensions({ width: 1200, height: 500 }) - - // Selectors and constants - const errorHeading = page.getByRole('heading', { - name: 'An unexpected error occurred', - }) - const projectDirLink = page.getByText('Loaded from') - - // If the app loads without exploding we're in the clear - await expect(errorHeading).not.toBeVisible() - await expect(projectDirLink).toBeVisible() - } - ) - - // It was much easier to test the logo color than the background stream color. - test( - 'user settings reload on external change, on project and modeling view', - { - tag: '@electron', - }, - async ({ context, page, tronApp }, testInfo) => { - test.fixme(orRunWhenFullSuiteEnabled()) - if (!tronApp) { - fail() - } - - await tronApp.cleanProjectDir({ - app: { - appearance: { - // Doesn't matter what you set it to. It will - // default to 264.5 - - color: 0, - }, - }, - }) - - const { dir: projectDirName } = await context.folderSetupFn( - async () => {} - ) - - await page.setBodyDimensions({ width: 1200, height: 500 }) - - const logoLink = page.getByTestId('app-logo') - const projectDirLink = page.getByText('Loaded from') - - await test.step('Wait for project view', async () => { - await expect(projectDirLink).toBeVisible() - await expect(logoLink).toHaveCSS('--primary-hue', '264.5') - }) - - const changeColor = async (color: string) => { - const tempSettingsFilePath = join(projectDirName, SETTINGS_FILE_NAME) - let tomlStr = await fsp.readFile(tempSettingsFilePath, 'utf-8') - tomlStr = tomlStr.replace(/(themeColor = ")[0-9]+(")/, `$1${color}$2`) - await fsp.writeFile(tempSettingsFilePath, tomlStr) - } - - await test.step('Check color of logo changed', async () => { - await changeColor('99') - await expect(logoLink).toHaveCSS('--primary-hue', '99') - }) - - await test.step('Check color of logo changed when in modeling view', async () => { - await createProject({ name: 'project-000', page }) - await changeColor('58') - await expect(logoLink).toHaveCSS('--primary-hue', '58') - }) - - await test.step('Check going back to projects view still changes the color', async () => { - await logoLink.click() - await expect(projectDirLink).toBeVisible() - await changeColor('21') - await expect(logoLink).toHaveCSS('--primary-hue', '21') - }) - } - ) - - test( - 'project settings reload on external change', - { tag: '@electron' }, - async ({ context, page }, testInfo) => { - test.fixme(orRunWhenFullSuiteEnabled()) - const { dir: projectDirName } = await context.folderSetupFn( - async () => {} - ) - - await page.setBodyDimensions({ width: 1200, height: 500 }) - - const logoLink = page.getByTestId('app-logo') - const projectDirLink = page.getByText('Loaded from') - - await test.step('Wait for project view', async () => { - await expect(projectDirLink).toBeVisible() - }) - - await createProject({ name: 'project-000', page }) - - const changeColorFs = async (color: string) => { - const tempSettingsFilePath = join( - projectDirName, - 'project-000', - PROJECT_SETTINGS_FILE_NAME - ) - await fsp.writeFile( - tempSettingsFilePath, - `[settings.app]\nthemeColor = "${color}"` - ) - } - - await test.step('Check the color is first starting as we expect', async () => { - await expect(logoLink).toHaveCSS('--primary-hue', '264.5') - }) - - await test.step('Check color of logo changed', async () => { - await changeColorFs('99') - await expect(logoLink).toHaveCSS('--primary-hue', '99') - }) - } - ) - - test( - `Closing settings modal should go back to the original file being viewed`, - { tag: '@electron' }, - async ({ context, page }, testInfo) => { - // TODO: fix this test on windows after the electron migration - test.skip(process.platform === 'win32', 'Skip on windows') - await context.folderSetupFn(async (dir) => { - const bracketDir = join(dir, 'project-000') - await fsp.mkdir(bracketDir, { recursive: true }) - await fsp.copyFile( - executorInputPath('cube.kcl'), - join(bracketDir, 'main.kcl') - ) - await fsp.copyFile( - executorInputPath('cylinder.kcl'), - join(bracketDir, '2.kcl') - ) - }) - const kclCube = await fsp.readFile(executorInputPath('cube.kcl'), 'utf-8') - const kclCylinder = await fsp.readFile( - executorInputPath('cylinder.kcl'), - 'utf8' - ) - - const { - openKclCodePanel, - openFilePanel, - waitForPageLoad, - selectFile, - editorTextMatches, - } = await getUtils(page, test) - - await page.setBodyDimensions({ width: 1200, height: 500 }) - page.on('console', console.log) - - await test.step('Precondition: Open to second project file', async () => { - await expect(page.getByTestId('home-section')).toBeVisible() - await page.getByText('project-000').click() - await waitForPageLoad() - await openKclCodePanel() - await openFilePanel() - await editorTextMatches(kclCube) - - await selectFile('2.kcl') - await editorTextMatches(kclCylinder) - }) - - const settingsOpenButton = page.getByRole('link', { - name: 'settings Settings', - }) - const settingsCloseButton = page.getByTestId('settings-close-button') - - await test.step('Open and close settings', async () => { - await settingsOpenButton.click() + await test.step(`Open the settings modal`, async () => { + await page.getByRole('link', { name: 'Settings' }).last().click() await expect( page.getByRole('heading', { name: 'Settings', exact: true }) ).toBeVisible() - await settingsCloseButton.click() }) - await test.step('Postcondition: Same file content is in editor as before settings opened', async () => { - await editorTextMatches(kclCylinder) - }) - } - ) + await test.step('Set up theme color', async () => { + // Verify we're looking at the project-level settings, + // and it's set to default value + await expect(projectSettingsTab).toBeChecked() + await expect(themeColorSetting).toHaveValue(settingValues.default) - test('Changing modeling default unit', async ({ page, homePage }) => { - await test.step(`Test setup`, async () => { - // TODO: fix this test on windows after the electron migration - test.skip(process.platform === 'win32', 'Skip on windows') - await page.setBodyDimensions({ width: 1200, height: 500 }) - await homePage.goToModelingScene() - const toastMessage = page.getByText(`Successfully created "testDefault"`) - await expect(toastMessage).not.toBeVisible() - await page - .getByRole('button', { name: 'Start Sketch' }) - .waitFor({ state: 'visible' }) + // Set project-level value to 50 + await themeColorSetting.fill(settingValues.project) + + // Set user-level value to 120 + await userSettingsTab.click() + await themeColorSetting.fill(settingValues.user) + await projectSettingsTab.click() + }) + + await test.step('Reset project settings', async () => { + // Click the reset settings button. + await resetButton('project').click() + + await expect(resetToast('project')).toBeVisible() + await expect(resetToast('project')).not.toBeVisible() + + // Verify it is now set to the inherited user value + await expect(themeColorSetting).toHaveValue(settingValues.user) + + await test.step(`Check that the user settings did not change`, async () => { + await userSettingsTab.click() + await expect(themeColorSetting).toHaveValue(settingValues.user) + }) + + await test.step(`Set project-level again to test the user-level reset`, async () => { + await projectSettingsTab.click() + await themeColorSetting.fill(settingValues.project) + await userSettingsTab.click() + }) + }) + + await test.step('Reset user settings', async () => { + // Click the reset settings button. + await resetButton('user').click() + + await expect(resetToast('user')).toBeVisible() + await expect(resetToast('user')).not.toBeVisible() + + // Verify it is now set to the default value + await expect(themeColorSetting).toHaveValue(settingValues.default) + + await test.step(`Check that the project settings did not change`, async () => { + await projectSettingsTab.click() + await expect(themeColorSetting).toHaveValue(settingValues.project) + }) + }) }) - // Selectors and constants - const userSettingsTab = page.getByRole('radio', { name: 'User' }) - const projectSettingsTab = page.getByRole('radio', { name: 'Project' }) - const defaultUnitSection = page.getByText( - 'default unitRoll back default unitRoll back to match' + test( + `Project settings override user settings on desktop`, + { tag: ['@electron'] }, + async ({ context, page }, testInfo) => { + test.fixme(orRunWhenFullSuiteEnabled()) + const projectName = 'bracket' + const { dir: projectDirName } = await context.folderSetupFn( + async (dir) => { + const bracketDir = join(dir, projectName) + await fsp.mkdir(bracketDir, { recursive: true }) + await fsp.copyFile( + executorInputPath('cylinder-inches.kcl'), + join(bracketDir, 'main.kcl') + ) + } + ) + + await page.setBodyDimensions({ width: 1200, height: 500 }) + + // Selectors and constants + const tempProjectSettingsFilePath = join( + projectDirName, + projectName, + PROJECT_SETTINGS_FILE_NAME + ) + const tempUserSettingsFilePath = join( + projectDirName, + SETTINGS_FILE_NAME + ) + const userThemeColor = '120' + const projectThemeColor = '50' + const settingsOpenButton = page.getByRole('link', { + name: 'settings Settings', + }) + const themeColorSetting = page + .locator('#themeColor') + .getByRole('slider') + const projectSettingsTab = page.getByRole('radio', { name: 'Project' }) + const userSettingsTab = page.getByRole('radio', { name: 'User' }) + const settingsCloseButton = page.getByTestId('settings-close-button') + const projectLink = page.getByText('bracket') + const logoLink = page.getByTestId('app-logo') + + await test.step('Set user theme color on home', async () => { + await expect(settingsOpenButton).toBeVisible() + await settingsOpenButton.click() + // The user tab should be selected by default on home + await expect(userSettingsTab).toBeChecked() + await themeColorSetting.fill(userThemeColor) + await expect(logoLink).toHaveCSS('--primary-hue', userThemeColor) + await settingsCloseButton.click() + await expect + .poll(async () => fsp.readFile(tempUserSettingsFilePath, 'utf-8'), { + message: 'Setting should now be written to the file', + timeout: 5_000, + }) + .toContain(`themeColor = "${userThemeColor}"`) + }) + + await test.step('Set project theme color', async () => { + // Open the project + await projectLink.click() + await settingsOpenButton.click() + // The project tab should be selected by default within a project + await expect(projectSettingsTab).toBeChecked() + await themeColorSetting.fill(projectThemeColor) + await expect(logoLink).toHaveCSS('--primary-hue', projectThemeColor) + await settingsCloseButton.click() + // Make sure that the project settings file has been written to before continuing + await expect + .poll( + async () => fsp.readFile(tempProjectSettingsFilePath, 'utf-8'), + { + message: 'Setting should now be written to the file', + timeout: 5_000, + } + ) + .toContain(`themeColor = "${projectThemeColor}"`) + }) + + await test.step('Refresh the application and see project setting applied', async () => { + // Make sure we're done navigating before we reload + await expect(settingsCloseButton).not.toBeVisible() + + await page.reload({ waitUntil: 'domcontentloaded' }) + await expect(logoLink).toHaveCSS('--primary-hue', projectThemeColor) + }) + + await test.step(`Navigate back to the home view and see user setting applied`, async () => { + await logoLink.click() + await expect(logoLink).toHaveCSS('--primary-hue', userThemeColor) + }) + } ) - const defaultUnitRollbackButton = page.getByRole('button', { - name: 'Roll back default unit', - }) - await test.step(`Open the settings modal`, async () => { - await page.getByRole('link', { name: 'Settings' }).last().click() - await expect( - page.getByRole('heading', { name: 'Settings', exact: true }) - ).toBeVisible() - }) + test( + `Load desktop app with no settings file`, + { + tag: '@electron', + }, + async ({ page }, testInfo) => { + await page.setBodyDimensions({ width: 1200, height: 500 }) - await test.step(`Reset unit setting`, async () => { + // Selectors and constants + const errorHeading = page.getByRole('heading', { + name: 'An unexpected error occurred', + }) + const projectDirLink = page.getByText('Loaded from') + + // If the app loads without exploding we're in the clear + await expect(errorHeading).not.toBeVisible() + await expect(projectDirLink).toBeVisible() + } + ) + + test( + `Load desktop app with a settings file, but no project directory setting`, + { + tag: '@electron', + }, + async ({ context, page, tronApp }, testInfo) => { + if (!tronApp) { + fail() + } + await tronApp.cleanProjectDir({ + app: { + appearance: { + color: 259, + }, + }, + }) + + await page.setBodyDimensions({ width: 1200, height: 500 }) + + // Selectors and constants + const errorHeading = page.getByRole('heading', { + name: 'An unexpected error occurred', + }) + const projectDirLink = page.getByText('Loaded from') + + // If the app loads without exploding we're in the clear + await expect(errorHeading).not.toBeVisible() + await expect(projectDirLink).toBeVisible() + } + ) + + // It was much easier to test the logo color than the background stream color. + test( + 'user settings reload on external change, on project and modeling view', + { + tag: '@electron', + }, + async ({ context, page, tronApp }, testInfo) => { + test.fixme(orRunWhenFullSuiteEnabled()) + if (!tronApp) { + fail() + } + + await tronApp.cleanProjectDir({ + app: { + appearance: { + // Doesn't matter what you set it to. It will + // default to 264.5 + + color: 0, + }, + }, + }) + + const { dir: projectDirName } = await context.folderSetupFn( + async () => {} + ) + + await page.setBodyDimensions({ width: 1200, height: 500 }) + + const logoLink = page.getByTestId('app-logo') + const projectDirLink = page.getByText('Loaded from') + + await test.step('Wait for project view', async () => { + await expect(projectDirLink).toBeVisible() + await expect(logoLink).toHaveCSS('--primary-hue', '264.5') + }) + + const changeColor = async (color: string) => { + const tempSettingsFilePath = join(projectDirName, SETTINGS_FILE_NAME) + let tomlStr = await fsp.readFile(tempSettingsFilePath, 'utf-8') + tomlStr = tomlStr.replace(/(themeColor = ")[0-9]+(")/, `$1${color}$2`) + await fsp.writeFile(tempSettingsFilePath, tomlStr) + } + + await test.step('Check color of logo changed', async () => { + await changeColor('99') + await expect(logoLink).toHaveCSS('--primary-hue', '99') + }) + + await test.step('Check color of logo changed when in modeling view', async () => { + await createProject({ name: 'project-000', page }) + await changeColor('58') + await expect(logoLink).toHaveCSS('--primary-hue', '58') + }) + + await test.step('Check going back to projects view still changes the color', async () => { + await logoLink.click() + await expect(projectDirLink).toBeVisible() + await changeColor('21') + await expect(logoLink).toHaveCSS('--primary-hue', '21') + }) + } + ) + + test( + 'project settings reload on external change', + { tag: '@electron' }, + async ({ context, page }, testInfo) => { + test.fixme(orRunWhenFullSuiteEnabled()) + const { dir: projectDirName } = await context.folderSetupFn( + async () => {} + ) + + await page.setBodyDimensions({ width: 1200, height: 500 }) + + const logoLink = page.getByTestId('app-logo') + const projectDirLink = page.getByText('Loaded from') + + await test.step('Wait for project view', async () => { + await expect(projectDirLink).toBeVisible() + }) + + await createProject({ name: 'project-000', page }) + + const changeColorFs = async (color: string) => { + const tempSettingsFilePath = join( + projectDirName, + 'project-000', + PROJECT_SETTINGS_FILE_NAME + ) + await fsp.writeFile( + tempSettingsFilePath, + `[settings.app]\nthemeColor = "${color}"` + ) + } + + await test.step('Check the color is first starting as we expect', async () => { + await expect(logoLink).toHaveCSS('--primary-hue', '264.5') + }) + + await test.step('Check color of logo changed', async () => { + await changeColorFs('99') + await expect(logoLink).toHaveCSS('--primary-hue', '99') + }) + } + ) + + test( + `Closing settings modal should go back to the original file being viewed`, + { tag: '@electron' }, + async ({ context, page }, testInfo) => { + // TODO: fix this test on windows after the electron migration + test.skip(process.platform === 'win32', 'Skip on windows') + await context.folderSetupFn(async (dir) => { + const bracketDir = join(dir, 'project-000') + await fsp.mkdir(bracketDir, { recursive: true }) + await fsp.copyFile( + executorInputPath('cube.kcl'), + join(bracketDir, 'main.kcl') + ) + await fsp.copyFile( + executorInputPath('cylinder.kcl'), + join(bracketDir, '2.kcl') + ) + }) + const kclCube = await fsp.readFile( + executorInputPath('cube.kcl'), + 'utf-8' + ) + const kclCylinder = await fsp.readFile( + executorInputPath('cylinder.kcl'), + 'utf8' + ) + + const { + openKclCodePanel, + openFilePanel, + waitForPageLoad, + selectFile, + editorTextMatches, + } = await getUtils(page, test) + + await page.setBodyDimensions({ width: 1200, height: 500 }) + page.on('console', console.log) + + await test.step('Precondition: Open to second project file', async () => { + await expect(page.getByTestId('home-section')).toBeVisible() + await page.getByText('project-000').click() + await waitForPageLoad() + await openKclCodePanel() + await openFilePanel() + await editorTextMatches(kclCube) + + await selectFile('2.kcl') + await editorTextMatches(kclCylinder) + }) + + const settingsOpenButton = page.getByRole('link', { + name: 'settings Settings', + }) + const settingsCloseButton = page.getByTestId('settings-close-button') + + await test.step('Open and close settings', async () => { + await settingsOpenButton.click() + await expect( + page.getByRole('heading', { name: 'Settings', exact: true }) + ).toBeVisible() + await settingsCloseButton.click() + }) + + await test.step('Postcondition: Same file content is in editor as before settings opened', async () => { + await editorTextMatches(kclCylinder) + }) + } + ) + + test('Changing modeling default unit', async ({ page, homePage }) => { + await test.step(`Test setup`, async () => { + // TODO: fix this test on windows after the electron migration + test.skip(process.platform === 'win32', 'Skip on windows') + await page.setBodyDimensions({ width: 1200, height: 500 }) + await homePage.goToModelingScene() + const toastMessage = page.getByText( + `Successfully created "testDefault"` + ) + await expect(toastMessage).not.toBeVisible() + await page + .getByRole('button', { name: 'Start Sketch' }) + .waitFor({ state: 'visible' }) + }) + + // Selectors and constants + const userSettingsTab = page.getByRole('radio', { name: 'User' }) + const projectSettingsTab = page.getByRole('radio', { name: 'Project' }) + const defaultUnitSection = page.getByText( + 'default unitRoll back default unitRoll back to match' + ) + const defaultUnitRollbackButton = page.getByRole('button', { + name: 'Roll back default unit', + }) + + await test.step(`Open the settings modal`, async () => { + await page.getByRole('link', { name: 'Settings' }).last().click() + await expect( + page.getByRole('heading', { name: 'Settings', exact: true }) + ).toBeVisible() + }) + + await test.step(`Reset unit setting`, async () => { + await userSettingsTab.click() + await defaultUnitSection.hover() + await defaultUnitRollbackButton.click() + await projectSettingsTab.hover() + await projectSettingsTab.click() + await page.waitForTimeout(1000) + }) + + await test.step('Change modeling default unit within project tab', async () => { + const changeUnitOfMeasureInProjectTab = async ( + unitOfMeasure: string + ) => { + await test.step(`Set modeling default unit to ${unitOfMeasure}`, async () => { + await page + .getByTestId('modeling-defaultUnit') + .selectOption(`${unitOfMeasure}`) + const toastMessage = page.getByText( + `Set default unit to "${unitOfMeasure}" for this project` + ) + + // Assert visibility and disapperance + await expect(toastMessage).toBeVisible() + await expect(toastMessage).not.toBeVisible() + }) + } + await changeUnitOfMeasureInProjectTab('in') + await changeUnitOfMeasureInProjectTab('ft') + await changeUnitOfMeasureInProjectTab('yd') + await changeUnitOfMeasureInProjectTab('mm') + await changeUnitOfMeasureInProjectTab('cm') + await changeUnitOfMeasureInProjectTab('m') + }) + + // Go to the user tab + await userSettingsTab.hover() await userSettingsTab.click() - await defaultUnitSection.hover() - await defaultUnitRollbackButton.click() - await projectSettingsTab.hover() - await projectSettingsTab.click() await page.waitForTimeout(1000) - }) - await test.step('Change modeling default unit within project tab', async () => { - const changeUnitOfMeasureInProjectTab = async (unitOfMeasure: string) => { - await test.step(`Set modeling default unit to ${unitOfMeasure}`, async () => { - await page - .getByTestId('modeling-defaultUnit') - .selectOption(`${unitOfMeasure}`) + await test.step('Change modeling default unit within user tab', async () => { + const changeUnitOfMeasureInUserTab = async (unitOfMeasure: string) => { + await test.step(`Set modeling default unit to ${unitOfMeasure}`, async () => { + await page + .getByTestId('modeling-defaultUnit') + .selectOption(`${unitOfMeasure}`) + const toastMessage = page.getByText( + `Set default unit to "${unitOfMeasure}" as a user default` + ) + await expect(toastMessage).toBeVisible() + await expect(toastMessage).not.toBeVisible() + }) + } + await changeUnitOfMeasureInUserTab('in') + await changeUnitOfMeasureInUserTab('ft') + await changeUnitOfMeasureInUserTab('yd') + await changeUnitOfMeasureInUserTab('mm') + await changeUnitOfMeasureInUserTab('cm') + await changeUnitOfMeasureInUserTab('m') + }) + + // Close settings + const settingsCloseButton = page.getByTestId('settings-close-button') + await settingsCloseButton.click() + + await test.step('Change modeling default unit within command bar', async () => { + const commands = page.getByRole('button', { name: 'Commands' }) + const changeUnitOfMeasureInCommandBar = async ( + unitOfMeasure: string + ) => { + // Open command bar + await commands.click() + const settingsModelingDefaultUnitCommand = page.getByText( + 'Settings · modeling · default unit' + ) + await settingsModelingDefaultUnitCommand.click() + + const commandOption = page.getByRole('option', { + name: unitOfMeasure, + exact: true, + }) + await commandOption.click() + const toastMessage = page.getByText( `Set default unit to "${unitOfMeasure}" for this project` ) - - // Assert visibility and disapperance await expect(toastMessage).toBeVisible() - await expect(toastMessage).not.toBeVisible() - }) - } - await changeUnitOfMeasureInProjectTab('in') - await changeUnitOfMeasureInProjectTab('ft') - await changeUnitOfMeasureInProjectTab('yd') - await changeUnitOfMeasureInProjectTab('mm') - await changeUnitOfMeasureInProjectTab('cm') - await changeUnitOfMeasureInProjectTab('m') - }) + } + await changeUnitOfMeasureInCommandBar('in') + await changeUnitOfMeasureInCommandBar('ft') + await changeUnitOfMeasureInCommandBar('yd') + await changeUnitOfMeasureInCommandBar('mm') + await changeUnitOfMeasureInCommandBar('cm') + await changeUnitOfMeasureInCommandBar('m') + }) - // Go to the user tab - await userSettingsTab.hover() - await userSettingsTab.click() - await page.waitForTimeout(1000) - - await test.step('Change modeling default unit within user tab', async () => { - const changeUnitOfMeasureInUserTab = async (unitOfMeasure: string) => { - await test.step(`Set modeling default unit to ${unitOfMeasure}`, async () => { - await page - .getByTestId('modeling-defaultUnit') - .selectOption(`${unitOfMeasure}`) + await test.step('Change modeling default unit within gizmo', async () => { + const changeUnitOfMeasureInGizmo = async ( + unitOfMeasure: string, + copy: string + ) => { + const gizmo = page.getByRole('button', { + name: 'Current units are: ', + }) + await gizmo.click() + const button = page.locator('ul').getByRole('button', { + name: copy, + exact: true, + }) + await button.click() const toastMessage = page.getByText( - `Set default unit to "${unitOfMeasure}" as a user default` + `Updated per-file units to ${unitOfMeasure}` ) await expect(toastMessage).toBeVisible() - await expect(toastMessage).not.toBeVisible() - }) - } - await changeUnitOfMeasureInUserTab('in') - await changeUnitOfMeasureInUserTab('ft') - await changeUnitOfMeasureInUserTab('yd') - await changeUnitOfMeasureInUserTab('mm') - await changeUnitOfMeasureInUserTab('cm') - await changeUnitOfMeasureInUserTab('m') + } + + await changeUnitOfMeasureInGizmo('ft', 'Feet') + await changeUnitOfMeasureInGizmo('in', 'Inches') + await changeUnitOfMeasureInGizmo('yd', 'Yards') + await changeUnitOfMeasureInGizmo('mm', 'Millimeters') + await changeUnitOfMeasureInGizmo('cm', 'Centimeters') + await changeUnitOfMeasureInGizmo('m', 'Meters') + }) }) - // Close settings - const settingsCloseButton = page.getByTestId('settings-close-button') - await settingsCloseButton.click() - - await test.step('Change modeling default unit within command bar', async () => { - const commands = page.getByRole('button', { name: 'Commands' }) - const changeUnitOfMeasureInCommandBar = async (unitOfMeasure: string) => { - // Open command bar - await commands.click() - const settingsModelingDefaultUnitCommand = page.getByText( - 'Settings · modeling · default unit' - ) - await settingsModelingDefaultUnitCommand.click() - - const commandOption = page.getByRole('option', { - name: unitOfMeasure, - exact: true, - }) - await commandOption.click() - - const toastMessage = page.getByText( - `Set default unit to "${unitOfMeasure}" for this project` - ) - await expect(toastMessage).toBeVisible() - } - await changeUnitOfMeasureInCommandBar('in') - await changeUnitOfMeasureInCommandBar('ft') - await changeUnitOfMeasureInCommandBar('yd') - await changeUnitOfMeasureInCommandBar('mm') - await changeUnitOfMeasureInCommandBar('cm') - await changeUnitOfMeasureInCommandBar('m') - }) - - await test.step('Change modeling default unit within gizmo', async () => { - const changeUnitOfMeasureInGizmo = async ( - unitOfMeasure: string, - copy: string - ) => { - const gizmo = page.getByRole('button', { - name: 'Current units are: ', - }) - await gizmo.click() - const button = page.locator('ul').getByRole('button', { - name: copy, - exact: true, - }) - await button.click() - const toastMessage = page.getByText( - `Updated per-file units to ${unitOfMeasure}` - ) - await expect(toastMessage).toBeVisible() - } - - await changeUnitOfMeasureInGizmo('ft', 'Feet') - await changeUnitOfMeasureInGizmo('in', 'Inches') - await changeUnitOfMeasureInGizmo('yd', 'Yards') - await changeUnitOfMeasureInGizmo('mm', 'Millimeters') - await changeUnitOfMeasureInGizmo('cm', 'Centimeters') - await changeUnitOfMeasureInGizmo('m', 'Meters') - }) - }) - - test('Changing theme in sketch mode', async ({ - context, - page, - homePage, - toolbar, - scene, - cmdBar, - }) => { - // TODO: fix this test on windows after the electron migration - test.skip(process.platform === 'win32', 'Skip on windows') - const u = await getUtils(page) - await context.addInitScript(() => { - localStorage.setItem( - 'persistCode', - `sketch001 = startSketchOn(XZ) + test('Changing theme in sketch mode', async ({ + context, + page, + homePage, + toolbar, + scene, + cmdBar, + }) => { + // TODO: fix this test on windows after the electron migration + test.skip(process.platform === 'win32', 'Skip on windows') + const u = await getUtils(page) + await context.addInitScript(() => { + localStorage.setItem( + 'persistCode', + `sketch001 = startSketchOn(XZ) |> startProfileAt([0, 0], %) |> line(end = [5, 0]) |> line(end = [0, 5]) @@ -753,308 +780,312 @@ test.describe('Testing settings', () => { |> close() extrude001 = extrude(sketch001, length = 5) ` - ) - }) - await page.setBodyDimensions({ width: 1200, height: 500 }) - await homePage.goToModelingScene() - await expect(toolbar.startSketchBtn).toBeEnabled({ timeout: 15_000 }) - await scene.settled(cmdBar) - await page.waitForTimeout(1000) - - // Selectors and constants - const lineToolButton = page.getByTestId('line') - const segmentOverlays = page.getByTestId('segment-overlay') - const sketchOriginLocation = { x: 600, y: 250 } - const darkThemeSegmentColor: [number, number, number] = [215, 215, 215] - const lightThemeSegmentColor: [number, number, number] = [90, 90, 90] - - await test.step(`Get into sketch mode`, async () => { - await page.mouse.click(700, 200) - await toolbar.editSketch() - - // We use the line tool as a proxy for sketch mode - await expect(lineToolButton).toBeVisible() - await expect(segmentOverlays).toHaveCount(4) - // but we allow more time to pass for animating to the sketch - await page.waitForTimeout(1000) - }) - - await test.step(`Check the sketch line color before`, async () => { - await expect - .poll(() => - u.getGreatestPixDiff(sketchOriginLocation, darkThemeSegmentColor) ) - .toBeLessThan(15) - }) - - await test.step(`Change theme to light using command palette`, async () => { - await page.keyboard.press('ControlOrMeta+K') - await page.getByRole('option', { name: 'theme' }).click() - await page.getByRole('option', { name: 'light' }).click() - await expect(page.getByText('theme to "light"')).toBeVisible() - - // Make sure we haven't left sketch mode - await expect(lineToolButton).toBeVisible() - }) - - await test.step(`Check the sketch line color after`, async () => { - await expect - .poll(() => - u.getGreatestPixDiff(sketchOriginLocation, lightThemeSegmentColor) - ) - .toBeLessThan(15) - }) - }) - - test(`Changing system theme preferences (via media query) should update UI and stream`, async ({ - page, - homePage, - tronApp, - }) => { - if (!tronApp) { - fail() - } - - await tronApp.cleanProjectDir({ - // Override the settings so that the theme is set to `system` - ...TEST_SETTINGS_DEFAULT_THEME, - }) - - const u = await getUtils(page) - - // Selectors and constants - const darkBackgroundCss = 'oklch(0.3012 0 264.5)' - const lightBackgroundCss = 'oklch(0.9911 0 264.5)' - const darkBackgroundColor = TEST_COLORS.DARK_MODE_BKGD - const lightBackgroundColor: [number, number, number] = [245, 245, 245] - const streamBackgroundPixelIsColor = async ( - color: [number, number, number] - ) => { - return u.getGreatestPixDiff({ x: 1000, y: 200 }, color) - } - const toolbar = page.locator('menu').filter({ hasText: 'Start Sketch' }) - - await test.step(`Test setup`, async () => { + }) await page.setBodyDimensions({ width: 1200, height: 500 }) await homePage.goToModelingScene() - await u.waitForPageLoad() + await expect(toolbar.startSketchBtn).toBeEnabled({ timeout: 15_000 }) + await scene.settled(cmdBar) await page.waitForTimeout(1000) - await expect(toolbar).toBeVisible() + + // Selectors and constants + const lineToolButton = page.getByTestId('line') + const segmentOverlays = page.getByTestId('segment-overlay') + const sketchOriginLocation = { x: 600, y: 250 } + const darkThemeSegmentColor: [number, number, number] = [215, 215, 215] + const lightThemeSegmentColor: [number, number, number] = [90, 90, 90] + + await test.step(`Get into sketch mode`, async () => { + await page.mouse.click(700, 200) + await toolbar.editSketch() + + // We use the line tool as a proxy for sketch mode + await expect(lineToolButton).toBeVisible() + await expect(segmentOverlays).toHaveCount(4) + // but we allow more time to pass for animating to the sketch + await page.waitForTimeout(1000) + }) + + await test.step(`Check the sketch line color before`, async () => { + await expect + .poll(() => + u.getGreatestPixDiff(sketchOriginLocation, darkThemeSegmentColor) + ) + .toBeLessThan(15) + }) + + await test.step(`Change theme to light using command palette`, async () => { + await page.keyboard.press('ControlOrMeta+K') + await page.getByRole('option', { name: 'theme' }).click() + await page.getByRole('option', { name: 'light' }).click() + await expect(page.getByText('theme to "light"')).toBeVisible() + + // Make sure we haven't left sketch mode + await expect(lineToolButton).toBeVisible() + }) + + await test.step(`Check the sketch line color after`, async () => { + await expect + .poll(() => + u.getGreatestPixDiff(sketchOriginLocation, lightThemeSegmentColor) + ) + .toBeLessThan(15) + }) }) - await test.step(`Check the background color is light before`, async () => { - await expect(toolbar).toHaveCSS('background-color', lightBackgroundCss) - await expect - .poll(() => streamBackgroundPixelIsColor(lightBackgroundColor)) - .toBeLessThan(15) + test(`Changing system theme preferences (via media query) should update UI and stream`, async ({ + page, + homePage, + tronApp, + }) => { + if (!tronApp) { + fail() + } + + await tronApp.cleanProjectDir({ + // Override the settings so that the theme is set to `system` + ...TEST_SETTINGS_DEFAULT_THEME, + }) + + const u = await getUtils(page) + + // Selectors and constants + const darkBackgroundCss = 'oklch(0.3012 0 264.5)' + const lightBackgroundCss = 'oklch(0.9911 0 264.5)' + const darkBackgroundColor = TEST_COLORS.DARK_MODE_BKGD + const lightBackgroundColor: [number, number, number] = [245, 245, 245] + const streamBackgroundPixelIsColor = async ( + color: [number, number, number] + ) => { + return u.getGreatestPixDiff({ x: 1000, y: 200 }, color) + } + const toolbar = page.locator('menu').filter({ hasText: 'Start Sketch' }) + + await test.step(`Test setup`, async () => { + await page.setBodyDimensions({ width: 1200, height: 500 }) + await homePage.goToModelingScene() + await u.waitForPageLoad() + await page.waitForTimeout(1000) + await expect(toolbar).toBeVisible() + }) + + await test.step(`Check the background color is light before`, async () => { + await expect(toolbar).toHaveCSS('background-color', lightBackgroundCss) + await expect + .poll(() => streamBackgroundPixelIsColor(lightBackgroundColor)) + .toBeLessThan(15) + }) + + await test.step(`Change media query preference to dark, emulating dusk with system theme`, async () => { + await page.emulateMedia({ colorScheme: 'dark' }) + }) + + await test.step(`Check the background color is dark after`, async () => { + await expect(toolbar).toHaveCSS('background-color', darkBackgroundCss) + await expect + .poll(() => streamBackgroundPixelIsColor(darkBackgroundColor)) + .toBeLessThan(15) + }) }) - await test.step(`Change media query preference to dark, emulating dusk with system theme`, async () => { - await page.emulateMedia({ colorScheme: 'dark' }) - }) + test(`Turning off "Show debug panel" with debug panel open leaves no phantom panel`, async ({ + context, + page, + homePage, + tronApp, + scene, + cmdBar, + }) => { + if (!tronApp) { + fail() + } - await test.step(`Check the background color is dark after`, async () => { - await expect(toolbar).toHaveCSS('background-color', darkBackgroundCss) - await expect - .poll(() => streamBackgroundPixelIsColor(darkBackgroundColor)) - .toBeLessThan(15) - }) - }) + await tronApp.cleanProjectDir({ + // Override beforeEach test setup + // with debug panel open + // but "show debug panel" set to false + ...TEST_SETTINGS, + app: { ...TEST_SETTINGS.app, show_debug_panel: false }, + modeling: { ...TEST_SETTINGS.modeling }, + }) - test(`Turning off "Show debug panel" with debug panel open leaves no phantom panel`, async ({ - context, - page, - homePage, - tronApp, - scene, - cmdBar, - }) => { - if (!tronApp) { - fail() - } + const u = await getUtils(page) - await tronApp.cleanProjectDir({ - // Override beforeEach test setup - // with debug panel open - // but "show debug panel" set to false - ...TEST_SETTINGS, - app: { ...TEST_SETTINGS.app, show_debug_panel: false }, - modeling: { ...TEST_SETTINGS.modeling }, - }) - - const u = await getUtils(page) - - await context.addInitScript(async () => { - localStorage.setItem('persistModelingContext', '{"openPanes":["debug"]}') - }) - await page.setBodyDimensions({ width: 1200, height: 500 }) - await homePage.goToModelingScene() - await scene.connectionEstablished() - - // Constants and locators - const resizeHandle = page.locator('.sidebar-resize-handles > div.block') - const debugPaneButton = page.getByTestId('debug-pane-button') - const commandsButton = page.getByRole('button', { name: 'Commands' }) - const debugPaneOption = page.getByRole('option', { - name: 'Settings · app · show debug panel', - }) - - async function setShowDebugPanelTo(value: 'On' | 'Off') { - await commandsButton.click() - await debugPaneOption.scrollIntoViewIfNeeded() - await debugPaneOption.click() - await page.getByRole('option', { name: value }).click() - await expect( - page.getByText( - `Set show debug panel to "${value === 'On'}" for this project` + await context.addInitScript(async () => { + localStorage.setItem( + 'persistModelingContext', + '{"openPanes":["debug"]}' ) - ).toBeVisible() - } + }) + await page.setBodyDimensions({ width: 1200, height: 500 }) + await homePage.goToModelingScene() + await scene.connectionEstablished() - await test.step(`Initial load with corrupted settings`, async () => { - // Check that the debug panel is not visible - await expect(debugPaneButton).not.toBeVisible() - // Check the pane resize handle wrapper is not visible - await expect(resizeHandle).not.toBeVisible() + // Constants and locators + const resizeHandle = page.locator('.sidebar-resize-handles > div.block') + const debugPaneButton = page.getByTestId('debug-pane-button') + const commandsButton = page.getByRole('button', { name: 'Commands' }) + const debugPaneOption = page.getByRole('option', { + name: 'Settings · app · show debug panel', + }) + + async function setShowDebugPanelTo(value: 'On' | 'Off') { + await commandsButton.click() + await debugPaneOption.scrollIntoViewIfNeeded() + await debugPaneOption.click() + await page.getByRole('option', { name: value }).click() + await expect( + page.getByText( + `Set show debug panel to "${value === 'On'}" for this project` + ) + ).toBeVisible() + } + + await test.step(`Initial load with corrupted settings`, async () => { + // Check that the debug panel is not visible + await expect(debugPaneButton).not.toBeVisible() + // Check the pane resize handle wrapper is not visible + await expect(resizeHandle).not.toBeVisible() + }) + + await test.step(`Open code pane to verify we see the resize handles`, async () => { + await u.openKclCodePanel() + await expect(resizeHandle).toBeVisible() + await u.closeKclCodePanel() + }) + + await test.step(`Turn on debug panel, open it`, async () => { + await setShowDebugPanelTo('On') + await expect(debugPaneButton).toBeVisible() + // We want the logic to clear the phantom panel, so we shouldn't see + // the real panel (and therefore the resize handle) yet + await expect(resizeHandle).not.toBeVisible() + await u.openDebugPanel() + await expect(resizeHandle).toBeVisible() + }) + + await test.step(`Turn off debug panel setting with it open`, async () => { + await setShowDebugPanelTo('Off') + await expect(debugPaneButton).not.toBeVisible() + await expect(resizeHandle).not.toBeVisible() + }) }) - await test.step(`Open code pane to verify we see the resize handles`, async () => { - await u.openKclCodePanel() - await expect(resizeHandle).toBeVisible() - await u.closeKclCodePanel() - }) + test(`Change inline units setting`, async ({ + page, + homePage, + context, + editor, + }) => { + const initialInlineUnits = 'yd' + const editedInlineUnits = { short: 'mm', long: 'Millimeters' } + const inlineSettingsString = (s: string) => + `@settings(defaultLengthUnit = ${s})` + const unitsIndicator = page.getByRole('button', { + name: 'Current units are:', + }) + const unitsChangeButton = (name: string) => + page.getByRole('button', { name, exact: true }) - await test.step(`Turn on debug panel, open it`, async () => { - await setShowDebugPanelTo('On') - await expect(debugPaneButton).toBeVisible() - // We want the logic to clear the phantom panel, so we shouldn't see - // the real panel (and therefore the resize handle) yet - await expect(resizeHandle).not.toBeVisible() - await u.openDebugPanel() - await expect(resizeHandle).toBeVisible() - }) + await context.folderSetupFn(async (dir) => { + const bracketDir = join(dir, 'project-000') + await fsp.mkdir(bracketDir, { recursive: true }) + await fsp.copyFile( + executorInputPath('cube.kcl'), + join(bracketDir, 'main.kcl') + ) + }) - await test.step(`Turn off debug panel setting with it open`, async () => { - await setShowDebugPanelTo('Off') - await expect(debugPaneButton).not.toBeVisible() - await expect(resizeHandle).not.toBeVisible() - }) - }) + await test.step(`Initial units from settings are ignored`, async () => { + await homePage.openProject('project-000') + await expect(unitsIndicator).toHaveText('Current units are: mm') + }) - test(`Change inline units setting`, async ({ - page, - homePage, - context, - editor, - }) => { - const initialInlineUnits = 'yd' - const editedInlineUnits = { short: 'mm', long: 'Millimeters' } - const inlineSettingsString = (s: string) => - `@settings(defaultLengthUnit = ${s})` - const unitsIndicator = page.getByRole('button', { - name: 'Current units are:', - }) - const unitsChangeButton = (name: string) => - page.getByRole('button', { name, exact: true }) - - await context.folderSetupFn(async (dir) => { - const bracketDir = join(dir, 'project-000') - await fsp.mkdir(bracketDir, { recursive: true }) - await fsp.copyFile( - executorInputPath('cube.kcl'), - join(bracketDir, 'main.kcl') - ) - }) - - await test.step(`Initial units from settings are ignored`, async () => { - await homePage.openProject('project-000') - await expect(unitsIndicator).toHaveText('Current units are: mm') - }) - - await test.step(`Manually write inline settings`, async () => { - await editor.openPane() - await editor.replaceCode( - `fn cube`, - `${inlineSettingsString(initialInlineUnits)} + await test.step(`Manually write inline settings`, async () => { + await editor.openPane() + await editor.replaceCode( + `fn cube`, + `${inlineSettingsString(initialInlineUnits)} fn cube` - ) - await expect(unitsIndicator).toContainText(initialInlineUnits) + ) + await expect(unitsIndicator).toContainText(initialInlineUnits) + }) + + await test.step(`Change units setting via lower-right control`, async () => { + await unitsIndicator.click() + await unitsChangeButton(editedInlineUnits.long).click() + await expect( + page.getByText(`Updated per-file units to ${editedInlineUnits.short}`) + ).toBeVisible() + }) }) - await test.step(`Change units setting via lower-right control`, async () => { - await unitsIndicator.click() - await unitsChangeButton(editedInlineUnits.long).click() - await expect( - page.getByText(`Updated per-file units to ${editedInlineUnits.short}`) - ).toBeVisible() - }) - }) + /** + * This test assumes that the default value of the "highlight edges" setting is "on". + */ + test(`Toggle stream settings multiple times`, async ({ + page, + scene, + homePage, + context, + toolbar, + cmdBar, + }, testInfo) => { + test.fixme(orRunWhenFullSuiteEnabled()) + await context.folderSetupFn(async (dir) => { + const projectDir = join(dir, 'project-000') + await fsp.mkdir(projectDir, { recursive: true }) + await fsp.copyFile( + executorInputPath('cube.kcl'), + join(projectDir, 'main.kcl') + ) + }) - /** - * This test assumes that the default value of the "highlight edges" setting is "on". - */ - test(`Toggle stream settings multiple times`, async ({ - page, - scene, - homePage, - context, - toolbar, - cmdBar, - }, testInfo) => { - test.fixme(orRunWhenFullSuiteEnabled()) - await context.folderSetupFn(async (dir) => { - const projectDir = join(dir, 'project-000') - await fsp.mkdir(projectDir, { recursive: true }) - await fsp.copyFile( - executorInputPath('cube.kcl'), - join(projectDir, 'main.kcl') - ) - }) + await test.step(`First snapshot`, async () => { + await homePage.openProject('project-000') + await toolbar.closePane('code') + await expect(toolbar.startSketchBtn).toBeEnabled({ timeout: 20_000 }) + await scene.clickNoWhere() + }) - await test.step(`First snapshot`, async () => { - await homePage.openProject('project-000') - await toolbar.closePane('code') - await expect(toolbar.startSketchBtn).toBeEnabled({ timeout: 20_000 }) - await scene.clickNoWhere() - }) + const toast = (value: boolean) => + page.getByText( + `Set highlight edges to "${String(value)}" as a user default` + ) - const toast = (value: boolean) => - page.getByText( - `Set highlight edges to "${String(value)}" as a user default` + await test.step(`Toggle highlightEdges off`, async () => { + await cmdBar.openCmdBar() + await cmdBar.chooseCommand('Settings · modeling · highlight edges') + await cmdBar.selectOption({ name: 'off' }).click() + const falseToast = toast(false) + await expect(falseToast).toBeVisible() + await falseToast.waitFor({ state: 'detached' }) + }) + + await expect(scene.streamWrapper).not.toHaveScreenshot( + 'toggle-settings-initial.png', + { + maxDiffPixels: 15, + mask: networkingMasks(page), + } ) - await test.step(`Toggle highlightEdges off`, async () => { - await cmdBar.openCmdBar() - await cmdBar.chooseCommand('Settings · modeling · highlight edges') - await cmdBar.selectOption({ name: 'off' }).click() - const falseToast = toast(false) - await expect(falseToast).toBeVisible() - await falseToast.waitFor({ state: 'detached' }) + await test.step(`Toggle highlightEdges on`, async () => { + await cmdBar.openCmdBar() + await cmdBar.chooseCommand('Settings · modeling · highlight edges') + await cmdBar.selectOption({ name: 'on' }).click() + const trueToast = toast(true) + await expect(trueToast).toBeVisible() + await trueToast.waitFor({ state: 'detached' }) + }) + + await expect(scene.streamWrapper).toHaveScreenshot( + 'toggle-settings-initial.png', + { + maxDiffPixels: 15, + mask: networkingMasks(page), + } + ) }) - - await expect(scene.streamWrapper).not.toHaveScreenshot( - 'toggle-settings-initial.png', - { - maxDiffPixels: 15, - mask: networkingMasks(page), - } - ) - - await test.step(`Toggle highlightEdges on`, async () => { - await cmdBar.openCmdBar() - await cmdBar.chooseCommand('Settings · modeling · highlight edges') - await cmdBar.selectOption({ name: 'on' }).click() - const trueToast = toast(true) - await expect(trueToast).toBeVisible() - await trueToast.waitFor({ state: 'detached' }) - }) - - await expect(scene.streamWrapper).toHaveScreenshot( - 'toggle-settings-initial.png', - { - maxDiffPixels: 15, - mask: networkingMasks(page), - } - ) - }) -}) + } +) diff --git a/e2e/playwright/text-to-cad-tests.spec.ts b/e2e/playwright/text-to-cad-tests.spec.ts index 7c3a8e0ad..6e0e4c7aa 100644 --- a/e2e/playwright/text-to-cad-tests.spec.ts +++ b/e2e/playwright/text-to-cad-tests.spec.ts @@ -9,7 +9,7 @@ import { } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' -test.describe('Text-to-CAD tests', { tag: ['@skipWin'] }, () => { +test.describe('Text-to-CAD tests', () => { test('basic lego happy case', async ({ page, homePage }) => { const u = await getUtils(page) @@ -436,93 +436,92 @@ test.describe('Text-to-CAD tests', { tag: ['@skipWin'] }, () => { }) // This will be fine once greg makes prompt at top of file deterministic - test( - 'can do many at once and get many prompts back, and interact with many', - { tag: ['@skipWin'] }, - async ({ page, homePage }) => { - test.fixme(orRunWhenFullSuiteEnabled()) - // Let this test run longer since we've seen it timeout. - test.setTimeout(180_000) + test('can do many at once and get many prompts back, and interact with many', async ({ + page, + homePage, + }) => { + test.fixme(orRunWhenFullSuiteEnabled()) + // Let this test run longer since we've seen it timeout. + test.setTimeout(180_000) - const u = await getUtils(page) + const u = await getUtils(page) - await page.setBodyDimensions({ width: 1000, height: 500 }) + await page.setBodyDimensions({ width: 1000, height: 500 }) - await homePage.goToModelingScene() - await u.waitForPageLoad() + await homePage.goToModelingScene() + await u.waitForPageLoad() - await sendPromptFromCommandBar(page, 'a 2x4 lego') + await sendPromptFromCommandBar(page, 'a 2x4 lego') - await sendPromptFromCommandBar(page, 'a 2x8 lego') + await sendPromptFromCommandBar(page, 'a 2x8 lego') - await sendPromptFromCommandBar(page, 'a 2x10 lego') + await sendPromptFromCommandBar(page, 'a 2x10 lego') - // Find the toast. - // Look out for the toast message - const submittingToastMessage = page.getByText( - `Submitting to Text-to-CAD API...` - ) - await expect(submittingToastMessage.first()).toBeVisible() + // Find the toast. + // Look out for the toast message + const submittingToastMessage = page.getByText( + `Submitting to Text-to-CAD API...` + ) + await expect(submittingToastMessage.first()).toBeVisible() - const generatingToastMessage = page.getByText( - `Generating parametric model...` - ) - await expect(generatingToastMessage.first()).toBeVisible({ - timeout: 10_000, - }) + const generatingToastMessage = page.getByText( + `Generating parametric model...` + ) + await expect(generatingToastMessage.first()).toBeVisible({ + timeout: 10_000, + }) - const successToastMessage = page.getByText(`Text-to-CAD successful`) - // We should have three success toasts. - await expect(successToastMessage).toHaveCount(3, { timeout: 25_000 }) + const successToastMessage = page.getByText(`Text-to-CAD successful`) + // We should have three success toasts. + await expect(successToastMessage).toHaveCount(3, { timeout: 25_000 }) - await expect(page.getByText(`a 2x4 lego`)).toBeVisible() - await expect(page.getByText(`a 2x8 lego`)).toBeVisible() - await expect(page.getByText(`a 2x10 lego`)).toBeVisible() + await expect(page.getByText(`a 2x4 lego`)).toBeVisible() + await expect(page.getByText(`a 2x8 lego`)).toBeVisible() + await expect(page.getByText(`a 2x10 lego`)).toBeVisible() - // Ensure if you reject one, the others stay. - const rejectButton = page.getByRole('button', { name: 'Reject' }) - await expect(rejectButton.first()).toBeVisible() - // Click the reject button on the first toast. - await rejectButton.first().click() + // Ensure if you reject one, the others stay. + const rejectButton = page.getByRole('button', { name: 'Reject' }) + await expect(rejectButton.first()).toBeVisible() + // Click the reject button on the first toast. + await rejectButton.first().click() - // The first toast should disappear, but not the others. - await expect(page.getByText(`a 2x10 lego`)).not.toBeVisible() - await expect(page.getByText(`a 2x8 lego`)).toBeVisible() - await expect(page.getByText(`a 2x4 lego`)).toBeVisible() + // The first toast should disappear, but not the others. + await expect(page.getByText(`a 2x10 lego`)).not.toBeVisible() + await expect(page.getByText(`a 2x8 lego`)).toBeVisible() + await expect(page.getByText(`a 2x4 lego`)).toBeVisible() - // Ensure you can copy the code for one of the models remaining. - const copyToClipboardButton = page.getByRole('button', { - name: 'Accept', - }) - await expect(copyToClipboardButton.first()).toBeVisible() - // Click the button. - await copyToClipboardButton.first().click() + // Ensure you can copy the code for one of the models remaining. + const copyToClipboardButton = page.getByRole('button', { + name: 'Accept', + }) + await expect(copyToClipboardButton.first()).toBeVisible() + // Click the button. + await copyToClipboardButton.first().click() - // Do NOT do AI tests like this: "Expect the code to be pasted." - // Reason: AI tests are NONDETERMINISTIC. Thus we need to be as most - // general as we can for the assertion. - // We can use Kolmogorov complexity as a measurement of the - // "probably most minimal version of this program" to have a lower - // bound to work with. It is completely by feel because there are - // no proofs that any program is its smallest self. - const code2x8 = await page.locator('.cm-content').innerText() - await expect(code2x8.length).toBeGreaterThan(249) + // Do NOT do AI tests like this: "Expect the code to be pasted." + // Reason: AI tests are NONDETERMINISTIC. Thus we need to be as most + // general as we can for the assertion. + // We can use Kolmogorov complexity as a measurement of the + // "probably most minimal version of this program" to have a lower + // bound to work with. It is completely by feel because there are + // no proofs that any program is its smallest self. + const code2x8 = await page.locator('.cm-content').innerText() + await expect(code2x8.length).toBeGreaterThan(249) - // Ensure the final toast remains. - await expect(page.getByText(`a 2x10 lego`)).not.toBeVisible() - await expect(page.getByText(`Prompt: "a 2x8 lego`)).not.toBeVisible() - await expect(page.getByText(`a 2x4 lego`)).toBeVisible() + // Ensure the final toast remains. + await expect(page.getByText(`a 2x10 lego`)).not.toBeVisible() + await expect(page.getByText(`Prompt: "a 2x8 lego`)).not.toBeVisible() + await expect(page.getByText(`a 2x4 lego`)).toBeVisible() - // Ensure you can copy the code for the final model. - await expect(copyToClipboardButton).toBeVisible() - // Click the button. - await copyToClipboardButton.click() + // Ensure you can copy the code for the final model. + await expect(copyToClipboardButton).toBeVisible() + // Click the button. + await copyToClipboardButton.click() - // Expect the code to be pasted. - const code2x4 = await page.locator('.cm-content').innerText() - await expect(code2x4.length).toBeGreaterThan(249) - } - ) + // Expect the code to be pasted. + const code2x4 = await page.locator('.cm-content').innerText() + await expect(code2x4.length).toBeGreaterThan(249) + }) test('can do many at once with errors, clicking dismiss error does not dismiss all', async ({ page, diff --git a/e2e/playwright/various.spec.ts b/e2e/playwright/various.spec.ts index 28c849391..9382e72f7 100644 --- a/e2e/playwright/various.spec.ts +++ b/e2e/playwright/various.spec.ts @@ -178,6 +178,7 @@ test('Keyboard shortcuts can be viewed through the help menu', async ({ test('First escape in tool pops you out of tool, second exits sketch mode', async ({ page, homePage, + toolbar, }) => { // Wait for the app to be ready for use const u = await getUtils(page) @@ -188,15 +189,6 @@ test('First escape in tool pops you out of tool, second exits sketch mode', asyn await u.expectCmdLog('[data-message-type="execution-done"]') await u.closeDebugPanel() - const lineButton = page.getByRole('button', { - name: 'line Line', - exact: true, - }) - const arcButton = page.getByRole('button', { - name: 'arc Tangential Arc', - exact: true, - }) - // Test these hotkeys perform actions when // focus is on the canvas await page.mouse.move(600, 250) @@ -207,8 +199,8 @@ test('First escape in tool pops you out of tool, second exits sketch mode', asyn await page.mouse.move(800, 300) await page.mouse.click(800, 300) await page.waitForTimeout(1000) - await expect(lineButton).toBeVisible() - await expect(lineButton).toHaveAttribute('aria-pressed', 'true') + await expect(toolbar.lineBtn).toBeVisible() + await expect(toolbar.lineBtn).toHaveAttribute('aria-pressed', 'true') // Draw a line await page.mouse.move(700, 200, { steps: 5 }) @@ -224,10 +216,9 @@ test('First escape in tool pops you out of tool, second exits sketch mode', asyn await page.keyboard.press('Escape') // Make sure we didn't pop out of sketch mode. await expect(page.getByRole('button', { name: 'Exit Sketch' })).toBeVisible() - await expect(lineButton).not.toHaveAttribute('aria-pressed', 'true') + await expect(toolbar.lineBtn).not.toHaveAttribute('aria-pressed', 'true') // Equip arc tool - await page.keyboard.press('a') - await expect(arcButton).toHaveAttribute('aria-pressed', 'true') + await toolbar.selectTangentialArc() // click in the same position again to continue the profile await page.mouse.move(secondMousePosition.x, secondMousePosition.y, { @@ -238,11 +229,14 @@ test('First escape in tool pops you out of tool, second exits sketch mode', asyn await page.mouse.move(1000, 100, { steps: 5 }) await page.mouse.click(1000, 100) await page.keyboard.press('Escape') - await expect(arcButton).toHaveAttribute('aria-pressed', 'false') + await expect(toolbar.tangentialArcBtn).toHaveAttribute( + 'aria-pressed', + 'false' + ) await expect .poll(async () => { await page.keyboard.press('l') - return lineButton.getAttribute('aria-pressed') + return toolbar.lineBtn.getAttribute('aria-pressed') }) .toBe('true') @@ -251,8 +245,11 @@ test('First escape in tool pops you out of tool, second exits sketch mode', asyn // Unequip line tool await page.keyboard.press('Escape') - await expect(lineButton).toHaveAttribute('aria-pressed', 'false') - await expect(arcButton).toHaveAttribute('aria-pressed', 'false') + await expect(toolbar.lineBtn).toHaveAttribute('aria-pressed', 'false') + await expect(toolbar.tangentialArcBtn).toHaveAttribute( + 'aria-pressed', + 'false' + ) // Make sure we didn't pop out of sketch mode. await expect(page.getByRole('button', { name: 'Exit Sketch' })).toBeVisible() // Exit sketch diff --git a/interface.d.ts b/interface.d.ts index 96caab368..66f4cba1f 100644 --- a/interface.d.ts +++ b/interface.d.ts @@ -20,6 +20,7 @@ export interface IElectronAPI { open: typeof dialog.showOpenDialog save: typeof dialog.showSaveDialog openExternal: typeof shell.openExternal + openInNewWindow: (name: string) => void takeElectronWindowScreenshot: ({ width, height, diff --git a/known-circular.txt b/known-circular.txt index a98bc438b..a5d6d3595 100644 --- a/known-circular.txt +++ b/known-circular.txt @@ -3,14 +3,13 @@ > dpdm --no-warning --no-tree -T --skip-dynamic-imports=circular src/index.tsx • Circular Dependencies - 01) src/lang/std/sketch.ts -> src/lang/modifyAst.ts -> src/lang/modifyAst/addEdgeTreatment.ts - 02) src/lang/std/sketch.ts -> src/lang/modifyAst.ts - 03) src/lang/std/sketch.ts -> src/lang/modifyAst.ts -> src/lang/std/sketchcombos.ts - 04) src/lib/singletons.ts -> src/editor/manager.ts -> src/lib/selections.ts - 05) src/lib/singletons.ts -> src/editor/manager.ts -> src/lib/selections.ts -> src/machines/appMachine.ts -> src/machines/engineStreamMachine.ts - 06) src/lib/singletons.ts -> src/editor/manager.ts -> src/lib/selections.ts -> src/machines/appMachine.ts -> src/machines/settingsMachine.ts - 07) src/machines/appMachine.ts -> src/machines/settingsMachine.ts -> src/machines/commandBarMachine.ts -> src/lib/commandBarConfigs/authCommandConfig.ts - 08) src/lib/singletons.ts -> src/lang/codeManager.ts - 09) src/lib/singletons.ts -> src/clientSideScene/sceneEntities.ts -> src/clientSideScene/segments.ts -> src/components/Toolbar/angleLengthInfo.ts - 10) src/hooks/useModelingContext.ts -> src/components/ModelingMachineProvider.tsx -> src/components/Toolbar/Intersect.tsx -> src/components/SetHorVertDistanceModal.tsx -> src/lib/useCalculateKclExpression.ts - 11) src/routes/Onboarding/index.tsx -> src/routes/Onboarding/Camera.tsx -> src/routes/Onboarding/utils.tsx + 1) src/lang/std/sketch.ts -> src/lang/modifyAst.ts -> src/lang/modifyAst/addEdgeTreatment.ts + 2) src/lang/std/sketch.ts -> src/lang/modifyAst.ts + 3) src/lang/std/sketch.ts -> src/lang/modifyAst.ts -> src/lang/std/sketchcombos.ts + 4) src/lib/singletons.ts -> src/editor/manager.ts -> src/lib/selections.ts + 5) src/lib/singletons.ts -> src/editor/manager.ts -> src/lib/selections.ts + 6) src/lib/singletons.ts -> src/lang/codeManager.ts + 7) src/lib/singletons.ts -> src/clientSideScene/sceneEntities.ts -> src/clientSideScene/segments.ts -> src/components/Toolbar/angleLengthInfo.ts + 8) src/lib/singletons.ts -> src/clientSideScene/sceneEntities.ts -> src/clientSideScene/segments.ts + 9) src/hooks/useModelingContext.ts -> src/components/ModelingMachineProvider.tsx -> src/components/Toolbar/Intersect.tsx -> src/components/SetHorVertDistanceModal.tsx -> src/lib/useCalculateKclExpression.ts + 10) src/routes/Onboarding/index.tsx -> src/routes/Onboarding/Camera.tsx -> src/routes/Onboarding/utils.tsx diff --git a/package.json b/package.json index fa6a2d4fb..cb3e6598d 100644 --- a/package.json +++ b/package.json @@ -76,6 +76,7 @@ "yargs": "^17.7.2" }, "scripts": { + "prepare": "husky", "install:rust": "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain none && source \"$HOME/.cargo/env\" && (cd rust && (rustup show active-toolchain || rustup toolchain install))", "install:rust:windows": "winget install Microsoft.VisualStudio.2022.Community --silent --override \"--wait --quiet --add ProductLang En-us --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended\" && winget install Rustlang.Rustup", "install:wasm-pack:sh": ". $HOME/.cargo/env && curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh -s -- -f", @@ -114,6 +115,7 @@ "circular-deps": "dpdm --no-warning --no-tree -T --skip-dynamic-imports=circular src/index.tsx", "circular-deps:overwrite": "npm run circular-deps | sed '$d' | grep -v '^npm run' > known-circular.txt", "circular-deps:diff": "./scripts/diff-circular-deps.sh", + "circular-deps:diff:nodejs": "npm run circular-deps:diff || node ./scripts/diff.js", "files:set-version": "echo \"$(jq --arg v \"$VERSION\" '.version=$v' package.json --indent 2)\" > package.json", "files:set-notes": "./scripts/set-files-notes.sh", "files:flip-to-nightly": "./scripts/flip-files-to-nightly.sh", @@ -125,7 +127,7 @@ "generate:machine-api": "npx openapi-typescript ./openapi/machine-api.json -o src/lib/machine-api.d.ts", "generate:samples-manifest": "cd public/kcl-samples && node generate-manifest.js", "tron:start": "electron-forge start", - "chrome:test": "PLATFORM=web NODE_ENV=development playwright test --config=playwright.config.ts --project='Google Chrome' --grep-invert='@snapshot'", + "chrome:test": "PLATFORM=web NODE_ENV=development playwright test --config=playwright.config.ts --project='Google Chrome' --grep-invert=@snapshot", "tronb:vite:dev": "vite build -c vite.main.config.ts -m development && vite build -c vite.preload.config.ts -m development && vite build -c vite.renderer.config.ts -m development", "tronb:vite:prod": "vite build -c vite.main.config.ts && vite build -c vite.preload.config.ts && vite build -c vite.renderer.config.ts", "tronb:package:dev": "npm run tronb:vite:dev && electron-builder --config electron-builder.yml", @@ -135,15 +137,15 @@ "test:snapshots": "PLATFORM=web NODE_ENV=development playwright test --config=playwright.config.ts --grep=@snapshot --trace=on --shard=1/1", "test:unit": "vitest run --mode development --exclude **/kclSamples.test.ts", "test:unit:kcl-samples": "vitest run --mode development ./src/lang/kclSamples.test.ts", - "test:playwright:electron": "playwright test --config=playwright.electron.config.ts --grep-invert='@snapshot'", - "test:playwright:electron:windows": "playwright test --config=playwright.electron.config.ts --grep-invert=\"@skipWin|@snapshot\" --quiet", - "test:playwright:electron:macos": "playwright test --config=playwright.electron.config.ts --grep-invert='@skipMacos|@snapshot' --quiet", - "test:playwright:electron:ubuntu": "playwright test --config=playwright.electron.config.ts --grep-invert='@skipLinux|@snapshot' --quiet", - "test:playwright:electron:local": "npm run tronb:vite:dev && NODE_ENV=development playwright test --config=playwright.electron.config.ts --grep-invert='@snapshot'", - "test:playwright:electron:windows:local": "npm run tronb:vite:dev && set NODE_ENV='development' && playwright test --config=playwright.electron.config.ts --grep-invert=\"@skipWin|@snapshot\"", - "test:playwright:electron:macos:local": "npm run tronb:vite:dev && NODE_ENV=development playwright test --config=playwright.electron.config.ts --grep-invert='@skipMacos|@snapshot'", - "test:playwright:electron:ubuntu:local": "npm run tronb:vite:dev && NODE_ENV=development playwright test --config=playwright.electron.config.ts --grep-invert='@skipLinux|@snapshot'", - "test:playwright:electron:ubuntu:engine:local": "npm run tronb:vite:dev && NODE_ENV=development playwright test --config=playwright.electron.config.ts --grep-invert='@skipLinux|@snapshot|@skipLocalEngine'", + "test:playwright:electron": "playwright test --config=playwright.electron.config.ts --grep-invert=@snapshot", + "test:playwright:electron:windows": "playwright test --config=playwright.electron.config.ts --grep=@windows --quiet", + "test:playwright:electron:macos": "playwright test --config=playwright.electron.config.ts --grep=@macos --quiet", + "test:playwright:electron:ubuntu": "playwright test --config=playwright.electron.config.ts --grep-invert=@snapshot --quiet", + "test:playwright:electron:local": "npm run tronb:vite:dev && NODE_ENV=development playwright test --config=playwright.electron.config.ts --grep-invert=@snapshot", + "test:playwright:electron:windows:local": "npm run tronb:vite:dev && set NODE_ENV='development' && playwright test --config=playwright.electron.config.ts --grep-invert=@snapshot", + "test:playwright:electron:macos:local": "npm run tronb:vite:dev && NODE_ENV=development playwright test --config=playwright.electron.config.ts --grep-invert=@snapshot", + "test:playwright:electron:ubuntu:local": "npm run tronb:vite:dev && NODE_ENV=development playwright test --config=playwright.electron.config.ts --grep-invert=@snapshot", + "test:playwright:electron:ubuntu:engine:local": "npm run tronb:vite:dev && NODE_ENV=development playwright test --config=playwright.electron.config.ts --grep-invert=@snapshot|@skipLocalEngine", "test:unit:local": "npm run simpleserver:bg && npm run test:unit; kill-port 3000", "test:unit:kcl-samples:local": "npm run simpleserver:bg && npm run test:unit:kcl-samples; kill-port 3000" }, diff --git a/public/kcl-samples/screenshots/80-20-rail.png b/public/kcl-samples/screenshots/80-20-rail.png index 4a8b011a6..e005eff3c 100644 Binary files a/public/kcl-samples/screenshots/80-20-rail.png and b/public/kcl-samples/screenshots/80-20-rail.png differ diff --git a/public/kcl-samples/screenshots/color-cube.png b/public/kcl-samples/screenshots/color-cube.png index bfa4877fd..38f5ecc3d 100644 Binary files a/public/kcl-samples/screenshots/color-cube.png and b/public/kcl-samples/screenshots/color-cube.png differ diff --git a/public/kcl-samples/screenshots/dodecahedron.png b/public/kcl-samples/screenshots/dodecahedron.png index 3b3dbea4a..46fff2ff0 100644 Binary files a/public/kcl-samples/screenshots/dodecahedron.png and b/public/kcl-samples/screenshots/dodecahedron.png differ diff --git a/public/kcl-samples/screenshots/i-beam.png b/public/kcl-samples/screenshots/i-beam.png index 7e97b598c..19411c20e 100644 Binary files a/public/kcl-samples/screenshots/i-beam.png and b/public/kcl-samples/screenshots/i-beam.png differ diff --git a/rust/kcl-lib/src/docs/kcl_doc.rs b/rust/kcl-lib/src/docs/kcl_doc.rs index 3a79e486f..d2d180506 100644 --- a/rust/kcl-lib/src/docs/kcl_doc.rs +++ b/rust/kcl-lib/src/docs/kcl_doc.rs @@ -1076,7 +1076,7 @@ mod test { #[for_each_std_mod] #[tokio::test(flavor = "multi_thread")] - async fn test_examples() { + async fn kcl_test_examples() { let std = walk_prelude(); let mut errs = Vec::new(); for d in std { diff --git a/rust/kcl-lib/src/execution/exec_ast.rs b/rust/kcl-lib/src/execution/exec_ast.rs index b8fc39a38..e60c14869 100644 --- a/rust/kcl-lib/src/execution/exec_ast.rs +++ b/rust/kcl-lib/src/execution/exec_ast.rs @@ -459,7 +459,7 @@ impl ExecutorContext { exec_state.add_path_to_source_id(resolved_path.clone(), id); let format = super::import::format_from_annotations(attrs, path, source_range)?; let geom = super::import::import_foreign(path, format, exec_state, self, source_range).await?; - exec_state.add_module(id, resolved_path, ModuleRepr::Foreign(geom)); + exec_state.add_module(id, resolved_path, ModuleRepr::Foreign(geom, None)); Ok(id) } ImportPath::Std { .. } => { @@ -501,7 +501,7 @@ impl ExecutorContext { *cache = Some((val, er, items.clone())); (er, items) }), - ModuleRepr::Foreign(geom) => Err(KclError::Semantic(KclErrorDetails { + ModuleRepr::Foreign(geom, _) => Err(KclError::Semantic(KclErrorDetails { message: "Cannot import items from foreign modules".to_owned(), source_ranges: vec![geom.source_range], })), @@ -546,9 +546,20 @@ impl ExecutorContext { Err(e) => Err(e), } } - ModuleRepr::Foreign(geom) => super::import::send_to_engine(geom.clone(), self) - .await - .map(|geom| Some(KclValue::ImportedGeometry(geom))), + ModuleRepr::Foreign(_, Some(imported)) => Ok(Some(imported.clone())), + ModuleRepr::Foreign(geom, cached) => { + let result = super::import::send_to_engine(geom.clone(), self) + .await + .map(|geom| Some(KclValue::ImportedGeometry(geom))); + + match result { + Ok(val) => { + *cached = val.clone(); + Ok(val) + } + Err(e) => Err(e), + } + } ModuleRepr::Dummy => unreachable!(), }; diff --git a/rust/kcl-lib/src/execution/mod.rs b/rust/kcl-lib/src/execution/mod.rs index 2a86db786..b46ccccb9 100644 --- a/rust/kcl-lib/src/execution/mod.rs +++ b/rust/kcl-lib/src/execution/mod.rs @@ -752,26 +752,31 @@ impl ExecutorContext { let mut universe = std::collections::HashMap::new(); let default_planes = self.engine.get_default_planes().read().await.clone(); - crate::walk::import_universe(self, &program.ast, &mut universe, exec_state) - .await - .map_err(|err| { - let module_id_to_module_path: IndexMap = exec_state - .global - .path_to_source_id - .iter() - .map(|(k, v)| ((*v), k.clone())) - .collect(); + crate::walk::import_universe( + self, + &ModuleRepr::Kcl(program.ast.clone(), None), + &mut universe, + exec_state, + ) + .await + .map_err(|err| { + let module_id_to_module_path: IndexMap = exec_state + .global + .path_to_source_id + .iter() + .map(|(k, v)| ((*v), k.clone())) + .collect(); - KclErrorWithOutputs::new( - err, - exec_state.global.operations.clone(), - exec_state.global.artifact_commands.clone(), - exec_state.global.artifact_graph.clone(), - module_id_to_module_path, - exec_state.global.id_to_source.clone(), - default_planes.clone(), - ) - })?; + KclErrorWithOutputs::new( + err, + exec_state.global.operations.clone(), + exec_state.global.artifact_commands.clone(), + exec_state.global.artifact_graph.clone(), + module_id_to_module_path, + exec_state.global.id_to_source.clone(), + default_planes.clone(), + ) + })?; for modules in crate::walk::import_graph(&universe, self) .map_err(|err| { @@ -799,16 +804,12 @@ impl ExecutorContext { #[allow(clippy::type_complexity)] let (results_tx, mut results_rx): ( - tokio::sync::mpsc::Sender<( - ModuleId, - ModulePath, - Result<(Option, EnvironmentRef, Vec), KclError>, - )>, + tokio::sync::mpsc::Sender<(ModuleId, ModulePath, Result)>, tokio::sync::mpsc::Receiver<_>, ) = tokio::sync::mpsc::channel(1); for module in modules { - let Some((import_stmt, module_id, module_path, program)) = universe.get(&module) else { + let Some((import_stmt, module_id, module_path, repr)) = universe.get(&module) else { return Err(KclErrorWithOutputs::no_outputs(KclError::Internal(KclErrorDetails { message: format!("Module {module} not found in universe"), source_ranges: Default::default(), @@ -816,12 +817,41 @@ impl ExecutorContext { }; let module_id = *module_id; let module_path = module_path.clone(); - let program = program.clone(); + let repr = repr.clone(); let exec_state = exec_state.clone(); let exec_ctxt = self.clone(); let results_tx = results_tx.clone(); let source_range = SourceRange::from(import_stmt); + let exec_module = async |exec_ctxt: &ExecutorContext, + repr: &ModuleRepr, + module_id: ModuleId, + module_path: &ModulePath, + exec_state: &mut ExecState, + source_range: SourceRange| + -> Result { + match repr { + ModuleRepr::Kcl(program, _) => { + let result = exec_ctxt + .exec_module_from_ast(program, module_id, module_path, exec_state, source_range, false) + .await; + + result.map(|val| ModuleRepr::Kcl(program.clone(), Some(val))) + } + ModuleRepr::Foreign(geom, _) => { + let result = crate::execution::import::send_to_engine(geom.clone(), exec_ctxt) + .await + .map(|geom| Some(KclValue::ImportedGeometry(geom))); + + result.map(|val| ModuleRepr::Foreign(geom.clone(), val)) + } + ModuleRepr::Dummy | ModuleRepr::Root => Err(KclError::Internal(KclErrorDetails { + message: format!("Module {module_path} not found in universe"), + source_ranges: vec![source_range], + })), + } + }; + #[cfg(target_arch = "wasm32")] { wasm_bindgen_futures::spawn_local(async move { @@ -829,16 +859,15 @@ impl ExecutorContext { let mut exec_state = exec_state; let exec_ctxt = exec_ctxt; - let result = exec_ctxt - .exec_module_from_ast( - &program, - module_id, - &module_path, - &mut exec_state, - source_range, - false, - ) - .await; + let result = exec_module( + &exec_ctxt, + &repr, + module_id, + &module_path, + &mut exec_state, + source_range, + ) + .await; results_tx .send((module_id, module_path, result)) @@ -852,16 +881,15 @@ impl ExecutorContext { let mut exec_state = exec_state; let exec_ctxt = exec_ctxt; - let result = exec_ctxt - .exec_module_from_ast( - &program, - module_id, - &module_path, - &mut exec_state, - source_range, - false, - ) - .await; + let result = exec_module( + &exec_ctxt, + &repr, + module_id, + &module_path, + &mut exec_state, + source_range, + ) + .await; results_tx .send((module_id, module_path, result)) @@ -875,13 +903,24 @@ impl ExecutorContext { while let Some((module_id, _, result)) = results_rx.recv().await { match result { - Ok((val, session_data, variables)) => { + Ok(new_repr) => { let mut repr = exec_state.global.module_infos[&module_id].take_repr(); - let ModuleRepr::Kcl(_, cache) = &mut repr else { - continue; - }; - *cache = Some((val, session_data, variables)); + match &mut repr { + ModuleRepr::Kcl(_, cache) => { + let ModuleRepr::Kcl(_, session_data) = new_repr else { + unreachable!(); + }; + *cache = session_data; + } + ModuleRepr::Foreign(_, cache) => { + let ModuleRepr::Foreign(_, session_data) = new_repr else { + unreachable!(); + }; + *cache = session_data; + } + ModuleRepr::Dummy | ModuleRepr::Root => unreachable!(), + } exec_state.global.module_infos[&module_id].restore_repr(repr); } diff --git a/rust/kcl-lib/src/execution/types.rs b/rust/kcl-lib/src/execution/types.rs index 8b6c76b80..c00585793 100644 --- a/rust/kcl-lib/src/execution/types.rs +++ b/rust/kcl-lib/src/execution/types.rs @@ -28,6 +28,10 @@ pub enum RuntimeType { } impl RuntimeType { + pub fn edge() -> Self { + RuntimeType::Primitive(PrimitiveType::Edge) + } + pub fn sketch() -> Self { RuntimeType::Primitive(PrimitiveType::Sketch) } @@ -2115,4 +2119,73 @@ d = cos(30) assert_value_and_type("c", &result, 1.0, NumericType::count()); assert_value_and_type("d", &result, 0.0, NumericType::count()); } + + #[tokio::test(flavor = "multi_thread")] + async fn coerce_nested_array() { + let mut exec_state = ExecState::new(&crate::ExecutorContext::new_mock().await); + + let mixed1 = KclValue::MixedArray { + value: vec![ + KclValue::Number { + value: 0.0, + ty: NumericType::count(), + meta: Vec::new(), + }, + KclValue::Number { + value: 1.0, + ty: NumericType::count(), + meta: Vec::new(), + }, + KclValue::HomArray { + value: vec![ + KclValue::Number { + value: 2.0, + ty: NumericType::count(), + meta: Vec::new(), + }, + KclValue::Number { + value: 3.0, + ty: NumericType::count(), + meta: Vec::new(), + }, + ], + ty: RuntimeType::Primitive(PrimitiveType::Number(NumericType::count())), + }, + ], + meta: Vec::new(), + }; + + // Principal types + let tym1 = RuntimeType::Array( + Box::new(RuntimeType::Primitive(PrimitiveType::Number(NumericType::count()))), + ArrayLen::NonEmpty, + ); + + let result = KclValue::HomArray { + value: vec![ + KclValue::Number { + value: 0.0, + ty: NumericType::count(), + meta: Vec::new(), + }, + KclValue::Number { + value: 1.0, + ty: NumericType::count(), + meta: Vec::new(), + }, + KclValue::Number { + value: 2.0, + ty: NumericType::count(), + meta: Vec::new(), + }, + KclValue::Number { + value: 3.0, + ty: NumericType::count(), + meta: Vec::new(), + }, + ], + ty: RuntimeType::Primitive(PrimitiveType::Number(NumericType::count())), + }; + assert_coerce_results(&mixed1, &tym1, &result, &mut exec_state); + } } diff --git a/rust/kcl-lib/src/modules.rs b/rust/kcl-lib/src/modules.rs index bd6a869f4..dde9636a3 100644 --- a/rust/kcl-lib/src/modules.rs +++ b/rust/kcl-lib/src/modules.rs @@ -124,7 +124,7 @@ pub enum ModuleRepr { Root, // AST, memory, exported names Kcl(Node, Option<(Option, EnvironmentRef, Vec)>), - Foreign(PreImportedGeometry), + Foreign(PreImportedGeometry, Option), Dummy, } diff --git a/rust/kcl-lib/src/simulation_tests.rs b/rust/kcl-lib/src/simulation_tests.rs index 541d0f5fe..4d3731f49 100644 --- a/rust/kcl-lib/src/simulation_tests.rs +++ b/rust/kcl-lib/src/simulation_tests.rs @@ -2579,6 +2579,28 @@ mod loop_tag { super::execute(TEST_NAME, true).await } } +mod multiple_foreign_imports_all_render { + const TEST_NAME: &str = "multiple-foreign-imports-all-render"; + + /// Test parsing KCL. + #[test] + fn parse() { + super::parse(TEST_NAME) + } + + /// Test that parsing and unparsing KCL produces the original KCL input. + #[tokio::test(flavor = "multi_thread")] + async fn unparse() { + super::unparse(TEST_NAME).await + } + + /// Test that KCL is executed correctly. + #[tokio::test(flavor = "multi_thread")] + async fn kcl_test_execute() { + super::execute(TEST_NAME, true).await + } +} + mod involute_fail { const TEST_NAME: &str = "involute_fail"; diff --git a/rust/kcl-lib/src/std/args.rs b/rust/kcl-lib/src/std/args.rs index d4dda688b..dec978fae 100644 --- a/rust/kcl-lib/src/std/args.rs +++ b/rust/kcl-lib/src/std/args.rs @@ -659,13 +659,6 @@ impl Args { Ok((sketches, sketch)) } - pub(crate) fn get_data<'a, T>(&'a self) -> Result - where - T: FromArgs<'a>, - { - FromArgs::from_args(self, 0) - } - pub(crate) fn get_data_and_sketch_surface(&self) -> Result<([TyF64; 2], SketchSurface, Option), KclError> { FromArgs::from_args(self, 0) } diff --git a/rust/kcl-lib/src/std/clone.rs b/rust/kcl-lib/src/std/clone.rs index e391cebbe..ba52ec386 100644 --- a/rust/kcl-lib/src/std/clone.rs +++ b/rust/kcl-lib/src/std/clone.rs @@ -559,6 +559,8 @@ clonedCube = clone(cube) assert_eq!(cube.tags.len(), 0); assert_eq!(cloned_cube.tags.len(), 0); + + ctx.close().await; } // Ensure the clone function returns a solid with different ids for all the internal paths and @@ -615,6 +617,8 @@ clonedCube = clone(cube) assert_eq!(cube.edge_cuts.len(), 0); assert_eq!(cloned_cube.edge_cuts.len(), 0); + + ctx.close().await; } // Ensure the clone function returns a sketch with different ids for all the internal paths and @@ -668,6 +672,8 @@ clonedCube = clone(cube) assert_eq!(tag_info.surface, None); assert_eq!(cloned_tag_info.surface, None); } + + ctx.close().await; } // Ensure the clone function returns a solid with different ids for all the internal paths and @@ -734,6 +740,8 @@ clonedCube = clone(cube) assert_eq!(cube.edge_cuts.len(), 0); assert_eq!(cloned_cube.edge_cuts.len(), 0); + + ctx.close().await; } // Ensure we can get all paths even on a sketch where we closed it and it was already closed. @@ -807,6 +815,8 @@ clonedCube = clone(cube) assert_ne!(edge_cut.edge_id(), cloned_edge_cut.edge_id()); assert_eq!(edge_cut.tag(), cloned_edge_cut.tag()); } + + ctx.close().await; } // Ensure the clone function returns a solid with different ids for all the internal paths and @@ -905,5 +915,7 @@ clonedCube = clone(cube) assert_ne!(edge_cut.edge_id(), cloned_edge_cut.edge_id()); assert_eq!(edge_cut.tag(), cloned_edge_cut.tag()); } + + ctx.close().await; } } diff --git a/rust/kcl-lib/src/std/edge.rs b/rust/kcl-lib/src/std/edge.rs index 41ce68b67..39b5e2093 100644 --- a/rust/kcl-lib/src/std/edge.rs +++ b/rust/kcl-lib/src/std/edge.rs @@ -8,15 +8,15 @@ use uuid::Uuid; use crate::{ errors::{KclError, KclErrorDetails}, - execution::{ExecState, ExtrudeSurface, KclValue, TagIdentifier}, + execution::{types::RuntimeType, ExecState, ExtrudeSurface, KclValue, TagIdentifier}, std::Args, }; /// Get the opposite edge to the edge given. pub async fn get_opposite_edge(exec_state: &mut ExecState, args: Args) -> Result { - let tag: TagIdentifier = args.get_data()?; + let input_edge = args.get_unlabeled_kw_arg_typed("edge", &RuntimeType::edge(), exec_state)?; - let edge = inner_get_opposite_edge(tag, exec_state, args.clone()).await?; + let edge = inner_get_opposite_edge(input_edge, exec_state, args.clone()).await?; Ok(KclValue::Uuid { value: edge, meta: vec![args.source_range.into()], @@ -53,15 +53,24 @@ pub async fn get_opposite_edge(exec_state: &mut ExecState, args: Args) -> Result /// ``` #[stdlib { name = "getOppositeEdge", + keywords = true, + unlabeled_first = true, + args = { + edge = { docs = "The tag of the edge you want to find the opposite edge of." }, + } }] -async fn inner_get_opposite_edge(tag: TagIdentifier, exec_state: &mut ExecState, args: Args) -> Result { +async fn inner_get_opposite_edge( + edge: TagIdentifier, + exec_state: &mut ExecState, + args: Args, +) -> Result { if args.ctx.no_engine_commands().await { return Ok(exec_state.next_uuid()); } - let face_id = args.get_adjacent_face_to_tag(exec_state, &tag, false).await?; + let face_id = args.get_adjacent_face_to_tag(exec_state, &edge, false).await?; let id = exec_state.next_uuid(); - let tagged_path = args.get_tag_engine_info(exec_state, &tag)?; + let tagged_path = args.get_tag_engine_info(exec_state, &edge)?; let resp = args .send_modeling_cmd( @@ -88,9 +97,9 @@ async fn inner_get_opposite_edge(tag: TagIdentifier, exec_state: &mut ExecState, /// Get the next adjacent edge to the edge given. pub async fn get_next_adjacent_edge(exec_state: &mut ExecState, args: Args) -> Result { - let tag: TagIdentifier = args.get_data()?; + let input_edge = args.get_unlabeled_kw_arg_typed("edge", &RuntimeType::edge(), exec_state)?; - let edge = inner_get_next_adjacent_edge(tag, exec_state, args.clone()).await?; + let edge = inner_get_next_adjacent_edge(input_edge, exec_state, args.clone()).await?; Ok(KclValue::Uuid { value: edge, meta: vec![args.source_range.into()], @@ -127,19 +136,24 @@ pub async fn get_next_adjacent_edge(exec_state: &mut ExecState, args: Args) -> R /// ``` #[stdlib { name = "getNextAdjacentEdge", + keywords = true, + unlabeled_first = true, + args = { + edge = { docs = "The tag of the edge you want to find the next adjacent edge of." }, + } }] async fn inner_get_next_adjacent_edge( - tag: TagIdentifier, + edge: TagIdentifier, exec_state: &mut ExecState, args: Args, ) -> Result { if args.ctx.no_engine_commands().await { return Ok(exec_state.next_uuid()); } - let face_id = args.get_adjacent_face_to_tag(exec_state, &tag, false).await?; + let face_id = args.get_adjacent_face_to_tag(exec_state, &edge, false).await?; let id = exec_state.next_uuid(); - let tagged_path = args.get_tag_engine_info(exec_state, &tag)?; + let tagged_path = args.get_tag_engine_info(exec_state, &edge)?; let resp = args .send_modeling_cmd( @@ -167,7 +181,7 @@ async fn inner_get_next_adjacent_edge( adjacent_edge.edge.ok_or_else(|| { KclError::Type(KclErrorDetails { - message: format!("No edge found next adjacent to tag: `{}`", tag.value), + message: format!("No edge found next adjacent to tag: `{}`", edge.value), source_ranges: vec![args.source_range], }) }) @@ -175,9 +189,9 @@ async fn inner_get_next_adjacent_edge( /// Get the previous adjacent edge to the edge given. pub async fn get_previous_adjacent_edge(exec_state: &mut ExecState, args: Args) -> Result { - let tag: TagIdentifier = args.get_data()?; + let input_edge = args.get_unlabeled_kw_arg_typed("edge", &RuntimeType::edge(), exec_state)?; - let edge = inner_get_previous_adjacent_edge(tag, exec_state, args.clone()).await?; + let edge = inner_get_previous_adjacent_edge(input_edge, exec_state, args.clone()).await?; Ok(KclValue::Uuid { value: edge, meta: vec![args.source_range.into()], @@ -214,19 +228,24 @@ pub async fn get_previous_adjacent_edge(exec_state: &mut ExecState, args: Args) /// ``` #[stdlib { name = "getPreviousAdjacentEdge", + keywords = true, + unlabeled_first = true, + args = { + edge = { docs = "The tag of the edge you want to find the previous adjacent edge of." }, + } }] async fn inner_get_previous_adjacent_edge( - tag: TagIdentifier, + edge: TagIdentifier, exec_state: &mut ExecState, args: Args, ) -> Result { if args.ctx.no_engine_commands().await { return Ok(exec_state.next_uuid()); } - let face_id = args.get_adjacent_face_to_tag(exec_state, &tag, false).await?; + let face_id = args.get_adjacent_face_to_tag(exec_state, &edge, false).await?; let id = exec_state.next_uuid(); - let tagged_path = args.get_tag_engine_info(exec_state, &tag)?; + let tagged_path = args.get_tag_engine_info(exec_state, &edge)?; let resp = args .send_modeling_cmd( @@ -253,7 +272,7 @@ async fn inner_get_previous_adjacent_edge( adjacent_edge.edge.ok_or_else(|| { KclError::Type(KclErrorDetails { - message: format!("No edge found previous adjacent to tag: `{}`", tag.value), + message: format!("No edge found previous adjacent to tag: `{}`", edge.value), source_ranges: vec![args.source_range], }) }) diff --git a/rust/kcl-lib/src/walk/import_graph.rs b/rust/kcl-lib/src/walk/import_graph.rs index 46c9dc795..b57b68b63 100644 --- a/rust/kcl-lib/src/walk/import_graph.rs +++ b/rust/kcl-lib/src/walk/import_graph.rs @@ -8,7 +8,7 @@ use anyhow::Result; use crate::{ errors::KclErrorDetails, modules::{ModulePath, ModuleRepr}, - parsing::ast::types::{ImportPath, ImportStatement, Node as AstNode, NodeRef, Program}, + parsing::ast::types::{ImportPath, ImportStatement, Node as AstNode}, walk::{Node, Visitable}, ExecState, ExecutorContext, KclError, ModuleId, SourceRange, }; @@ -20,7 +20,7 @@ type Dependency = (String, String); type Graph = Vec; -type DependencyInfo = (AstNode, ModuleId, ModulePath, AstNode); +type DependencyInfo = (AstNode, ModuleId, ModulePath, ModuleRepr); type Universe = HashMap; /// Process a number of programs, returning the graph of dependencies. @@ -32,9 +32,9 @@ type Universe = HashMap; pub fn import_graph(progs: &Universe, ctx: &ExecutorContext) -> Result>, KclError> { let mut graph = Graph::new(); - for (name, (_, _, _, program)) in progs.iter() { + for (name, (_, _, _, repr)) in progs.iter() { graph.extend( - import_dependencies(program, ctx)? + import_dependencies(repr, ctx)? .into_iter() .map(|(dependency, _, _)| (name.clone(), dependency)) .collect::>(), @@ -118,28 +118,42 @@ fn topsort(all_modules: &[&str], graph: Graph) -> Result>, KclEr type ImportDependencies = Vec<(String, AstNode, ModulePath)>; -pub(crate) fn import_dependencies( - prog: NodeRef, - ctx: &ExecutorContext, -) -> Result { - let ret = Arc::new(Mutex::new(vec![])); +pub(crate) fn import_dependencies(repr: &ModuleRepr, ctx: &ExecutorContext) -> Result { + let ModuleRepr::Kcl(prog, _) = repr else { + // It has no dependencies, so return an empty list. + return Ok(vec![]); + }; + let ret = Arc::new(Mutex::new(vec![])); fn walk(ret: Arc>, node: Node<'_>, ctx: &ExecutorContext) -> Result<(), KclError> { if let Node::ImportStatement(is) = node { - // We only care about Kcl imports for now. - if let ImportPath::Kcl { filename } = &is.path { - let resolved_path = ModulePath::from_import_path(&is.path, &ctx.settings.project_directory); - - // We need to lock the mutex to push the dependency. - // This is a bit of a hack, but it works for now. - ret.lock() - .map_err(|err| { - KclError::Internal(KclErrorDetails { - message: format!("Failed to lock mutex: {}", err), - source_ranges: Default::default(), - }) - })? - .push((filename.to_string(), is.clone(), resolved_path)); + // We only care about Kcl and Foreign imports for now. + let resolved_path = ModulePath::from_import_path(&is.path, &ctx.settings.project_directory); + match &is.path { + ImportPath::Kcl { filename } => { + // We need to lock the mutex to push the dependency. + // This is a bit of a hack, but it works for now. + ret.lock() + .map_err(|err| { + KclError::Internal(KclErrorDetails { + message: format!("Failed to lock mutex: {}", err), + source_ranges: Default::default(), + }) + })? + .push((filename.to_string(), is.clone(), resolved_path)); + } + ImportPath::Foreign { path } => { + ret.lock() + .map_err(|err| { + KclError::Internal(KclErrorDetails { + message: format!("Failed to lock mutex: {}", err), + source_ranges: Default::default(), + }) + })? + .push((path.to_string(), is.clone(), resolved_path)); + } + ImportPath::Std { .. } => { // do nothing + } } } @@ -164,11 +178,11 @@ pub(crate) fn import_dependencies( pub(crate) async fn import_universe( ctx: &ExecutorContext, - prog: NodeRef<'_, Program>, + repr: &ModuleRepr, out: &mut Universe, exec_state: &mut ExecState, ) -> Result<(), KclError> { - let modules = import_dependencies(prog, ctx)?; + let modules = import_dependencies(repr, ctx)?; for (filename, import_stmt, module_path) in modules { if out.contains_key(&filename) { continue; @@ -178,26 +192,21 @@ pub(crate) async fn import_universe( .open_module(&import_stmt.path, &[], exec_state, Default::default()) .await?; - let program = { + let repr = { let Some(module_info) = exec_state.get_module(module_id) else { return Err(KclError::Internal(KclErrorDetails { message: format!("Module {} not found", module_id), source_ranges: vec![import_stmt.into()], })); }; - let ModuleRepr::Kcl(program, _) = &module_info.repr else { - // if it's not a KCL module we can skip it since it has no - // dependencies. - continue; - }; - program.clone() + module_info.repr.clone() }; out.insert( filename.clone(), - (import_stmt.clone(), module_id, module_path.clone(), program.clone()), + (import_stmt.clone(), module_id, module_path.clone(), repr.clone()), ); - Box::pin(import_universe(ctx, &program, out, exec_state)).await?; + Box::pin(import_universe(ctx, &repr, out, exec_state)).await?; } Ok(()) @@ -206,7 +215,7 @@ pub(crate) async fn import_universe( #[cfg(test)] mod tests { use super::*; - use crate::parsing::ast::types::ImportSelector; + use crate::parsing::ast::types::{ImportSelector, Program}; macro_rules! kcl { ( $kcl:expr ) => {{ @@ -224,7 +233,7 @@ mod tests { }), ModuleId::default(), ModulePath::Local { value: "".into() }, - program, + ModuleRepr::Kcl(program, None), ) } diff --git a/rust/kcl-lib/tests/kcl_samples/80-20-rail/rendered_model.png b/rust/kcl-lib/tests/kcl_samples/80-20-rail/rendered_model.png index 4a8b011a6..e005eff3c 100644 Binary files a/rust/kcl-lib/tests/kcl_samples/80-20-rail/rendered_model.png and b/rust/kcl-lib/tests/kcl_samples/80-20-rail/rendered_model.png differ diff --git a/rust/kcl-lib/tests/kcl_samples/color-cube/rendered_model.png b/rust/kcl-lib/tests/kcl_samples/color-cube/rendered_model.png index bfa4877fd..38f5ecc3d 100644 Binary files a/rust/kcl-lib/tests/kcl_samples/color-cube/rendered_model.png and b/rust/kcl-lib/tests/kcl_samples/color-cube/rendered_model.png differ diff --git a/rust/kcl-lib/tests/kcl_samples/i-beam/rendered_model.png b/rust/kcl-lib/tests/kcl_samples/i-beam/rendered_model.png index 7e97b598c..19411c20e 100644 Binary files a/rust/kcl-lib/tests/kcl_samples/i-beam/rendered_model.png and b/rust/kcl-lib/tests/kcl_samples/i-beam/rendered_model.png differ diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/anothercube.kcl b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/anothercube.kcl new file mode 100644 index 000000000..59e5f233d --- /dev/null +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/anothercube.kcl @@ -0,0 +1,3 @@ +import "../inputs/cube.step" as cube + +clone(cube) diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_commands.snap b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_commands.snap new file mode 100644 index 000000000..75ec9a78f --- /dev/null +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_commands.snap @@ -0,0 +1,16040 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact commands multiple-foreign-imports-all-render.kcl +--- +[ + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "import_files", + "files": [ + { + "path": "cube.step", + "data": [ + 73, + 83, + 79, + 45, + 49, + 48, + 51, + 48, + 51, + 45, + 50, + 49, + 59, + 13, + 10, + 72, + 69, + 65, + 68, + 69, + 82, + 59, + 13, + 10, + 70, + 73, + 76, + 69, + 95, + 68, + 69, + 83, + 67, + 82, + 73, + 80, + 84, + 73, + 79, + 78, + 32, + 40, + 40, + 32, + 39, + 83, + 84, + 69, + 80, + 32, + 65, + 80, + 50, + 48, + 51, + 39, + 32, + 41, + 44, + 13, + 10, + 32, + 32, + 32, + 32, + 39, + 49, + 39, + 32, + 41, + 59, + 13, + 10, + 70, + 73, + 76, + 69, + 95, + 78, + 65, + 77, + 69, + 32, + 40, + 39, + 67, + 117, + 98, + 101, + 95, + 49, + 109, + 46, + 83, + 84, + 69, + 80, + 39, + 44, + 13, + 10, + 32, + 32, + 32, + 32, + 39, + 50, + 48, + 50, + 51, + 45, + 48, + 55, + 45, + 51, + 49, + 84, + 49, + 53, + 58, + 49, + 48, + 58, + 49, + 57, + 39, + 44, + 13, + 10, + 32, + 32, + 32, + 32, + 40, + 32, + 39, + 39, + 32, + 41, + 44, + 13, + 10, + 32, + 32, + 32, + 32, + 40, + 32, + 39, + 39, + 32, + 41, + 44, + 13, + 10, + 32, + 32, + 32, + 32, + 39, + 83, + 119, + 83, + 84, + 69, + 80, + 32, + 50, + 46, + 48, + 39, + 44, + 13, + 10, + 32, + 32, + 32, + 32, + 39, + 83, + 111, + 108, + 105, + 100, + 87, + 111, + 114, + 107, + 115, + 32, + 50, + 48, + 50, + 51, + 39, + 44, + 13, + 10, + 32, + 32, + 32, + 32, + 39, + 39, + 32, + 41, + 59, + 13, + 10, + 70, + 73, + 76, + 69, + 95, + 83, + 67, + 72, + 69, + 77, + 65, + 32, + 40, + 40, + 32, + 39, + 67, + 79, + 78, + 70, + 73, + 71, + 95, + 67, + 79, + 78, + 84, + 82, + 79, + 76, + 95, + 68, + 69, + 83, + 73, + 71, + 78, + 39, + 32, + 41, + 41, + 59, + 13, + 10, + 69, + 78, + 68, + 83, + 69, + 67, + 59, + 13, + 10, + 13, + 10, + 68, + 65, + 84, + 65, + 59, + 13, + 10, + 35, + 49, + 32, + 61, + 32, + 65, + 88, + 73, + 83, + 50, + 95, + 80, + 76, + 65, + 67, + 69, + 77, + 69, + 78, + 84, + 95, + 51, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 51, + 51, + 44, + 32, + 35, + 49, + 49, + 54, + 44, + 32, + 35, + 55, + 50, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 32, + 61, + 40, + 32, + 76, + 69, + 78, + 71, + 84, + 72, + 95, + 85, + 78, + 73, + 84, + 32, + 40, + 32, + 41, + 32, + 78, + 65, + 77, + 69, + 68, + 95, + 85, + 78, + 73, + 84, + 32, + 40, + 32, + 42, + 32, + 41, + 32, + 83, + 73, + 95, + 85, + 78, + 73, + 84, + 32, + 40, + 32, + 46, + 77, + 73, + 76, + 76, + 73, + 46, + 44, + 32, + 46, + 77, + 69, + 84, + 82, + 69, + 46, + 32, + 41, + 32, + 41, + 59, + 13, + 10, + 35, + 51, + 32, + 61, + 32, + 70, + 65, + 67, + 69, + 95, + 79, + 85, + 84, + 69, + 82, + 95, + 66, + 79, + 85, + 78, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 57, + 57, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 52, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 53, + 32, + 61, + 32, + 86, + 69, + 67, + 84, + 79, + 82, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 51, + 51, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 54, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 53, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 55, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 56, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 55, + 53, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 57, + 32, + 61, + 32, + 86, + 69, + 67, + 84, + 79, + 82, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 48, + 53, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 48, + 32, + 61, + 32, + 76, + 79, + 67, + 65, + 76, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 49, + 49, + 44, + 32, + 49, + 48, + 44, + 32, + 49, + 57, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 35, + 56, + 56, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 49, + 32, + 61, + 32, + 80, + 76, + 65, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 35, + 50, + 50, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 50, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 51, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 52, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 53, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 67, + 85, + 82, + 86, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 52, + 48, + 44, + 32, + 35, + 53, + 56, + 44, + 32, + 35, + 49, + 51, + 57, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 54, + 32, + 61, + 32, + 67, + 65, + 76, + 69, + 78, + 68, + 65, + 82, + 95, + 68, + 65, + 84, + 69, + 32, + 40, + 32, + 50, + 48, + 50, + 51, + 44, + 32, + 51, + 49, + 44, + 32, + 55, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 55, + 32, + 61, + 32, + 65, + 88, + 73, + 83, + 50, + 95, + 80, + 76, + 65, + 67, + 69, + 77, + 69, + 78, + 84, + 95, + 51, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 55, + 53, + 44, + 32, + 35, + 55, + 51, + 44, + 32, + 35, + 49, + 50, + 54, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 56, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 49, + 51, + 52, + 44, + 32, + 35, + 50, + 50, + 56, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 57, + 32, + 61, + 32, + 80, + 76, + 65, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 35, + 49, + 52, + 53, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 48, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 49, + 51, + 52, + 44, + 32, + 35, + 50, + 50, + 56, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 49, + 32, + 61, + 40, + 32, + 71, + 69, + 79, + 77, + 69, + 84, + 82, + 73, + 67, + 95, + 82, + 69, + 80, + 82, + 69, + 83, + 69, + 78, + 84, + 65, + 84, + 73, + 79, + 78, + 95, + 67, + 79, + 78, + 84, + 69, + 88, + 84, + 32, + 40, + 32, + 51, + 32, + 41, + 32, + 71, + 76, + 79, + 66, + 65, + 76, + 95, + 85, + 78, + 67, + 69, + 82, + 84, + 65, + 73, + 78, + 84, + 89, + 95, + 65, + 83, + 83, + 73, + 71, + 78, + 69, + 68, + 95, + 67, + 79, + 78, + 84, + 69, + 88, + 84, + 32, + 40, + 32, + 40, + 32, + 35, + 49, + 53, + 50, + 32, + 41, + 32, + 41, + 32, + 71, + 76, + 79, + 66, + 65, + 76, + 95, + 85, + 78, + 73, + 84, + 95, + 65, + 83, + 83, + 73, + 71, + 78, + 69, + 68, + 95, + 67, + 79, + 78, + 84, + 69, + 88, + 84, + 32, + 40, + 32, + 40, + 32, + 35, + 50, + 44, + 32, + 35, + 49, + 54, + 56, + 44, + 32, + 35, + 49, + 55, + 52, + 32, + 41, + 32, + 41, + 32, + 82, + 69, + 80, + 82, + 69, + 83, + 69, + 78, + 84, + 65, + 84, + 73, + 79, + 78, + 95, + 67, + 79, + 78, + 84, + 69, + 88, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 39, + 87, + 79, + 82, + 75, + 65, + 83, + 80, + 65, + 67, + 69, + 39, + 32, + 41, + 32, + 41, + 59, + 13, + 10, + 35, + 50, + 50, + 32, + 61, + 32, + 70, + 65, + 67, + 69, + 95, + 79, + 85, + 84, + 69, + 82, + 95, + 66, + 79, + 85, + 78, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 51, + 55, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 51, + 32, + 61, + 32, + 80, + 82, + 79, + 68, + 85, + 67, + 84, + 95, + 68, + 69, + 70, + 73, + 78, + 73, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 85, + 78, + 75, + 78, + 79, + 87, + 78, + 39, + 44, + 32, + 39, + 39, + 44, + 32, + 35, + 53, + 49, + 44, + 32, + 35, + 56, + 54, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 52, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 53, + 32, + 61, + 32, + 65, + 80, + 80, + 76, + 73, + 67, + 65, + 84, + 73, + 79, + 78, + 95, + 80, + 82, + 79, + 84, + 79, + 67, + 79, + 76, + 95, + 68, + 69, + 70, + 73, + 78, + 73, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 105, + 110, + 116, + 101, + 114, + 110, + 97, + 116, + 105, + 111, + 110, + 97, + 108, + 32, + 115, + 116, + 97, + 110, + 100, + 97, + 114, + 100, + 39, + 44, + 32, + 39, + 99, + 111, + 110, + 102, + 105, + 103, + 95, + 99, + 111, + 110, + 116, + 114, + 111, + 108, + 95, + 100, + 101, + 115, + 105, + 103, + 110, + 39, + 44, + 32, + 49, + 57, + 57, + 52, + 44, + 32, + 35, + 53, + 57, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 54, + 32, + 61, + 32, + 80, + 76, + 65, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 35, + 49, + 55, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 55, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 76, + 79, + 79, + 80, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 49, + 52, + 49, + 44, + 32, + 35, + 56, + 44, + 32, + 35, + 49, + 50, + 49, + 44, + 32, + 35, + 49, + 50, + 51, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 56, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 57, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 51, + 48, + 32, + 61, + 32, + 70, + 65, + 67, + 69, + 95, + 79, + 85, + 84, + 69, + 82, + 95, + 66, + 79, + 85, + 78, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 55, + 56, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 51, + 49, + 32, + 61, + 32, + 76, + 73, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 56, + 51, + 44, + 32, + 35, + 49, + 55, + 57, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 51, + 50, + 32, + 61, + 32, + 80, + 76, + 65, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 35, + 49, + 55, + 51, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 51, + 51, + 32, + 61, + 32, + 86, + 69, + 67, + 84, + 79, + 82, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 52, + 52, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 51, + 52, + 32, + 61, + 32, + 68, + 65, + 84, + 69, + 95, + 65, + 78, + 68, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 35, + 49, + 54, + 44, + 32, + 35, + 50, + 50, + 52, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 51, + 53, + 32, + 61, + 32, + 65, + 68, + 86, + 65, + 78, + 67, + 69, + 68, + 95, + 70, + 65, + 67, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 49, + 57, + 56, + 32, + 41, + 44, + 32, + 35, + 50, + 54, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 51, + 54, + 32, + 61, + 32, + 67, + 65, + 76, + 69, + 78, + 68, + 65, + 82, + 95, + 68, + 65, + 84, + 69, + 32, + 40, + 32, + 50, + 48, + 50, + 51, + 44, + 32, + 51, + 49, + 44, + 32, + 55, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 51, + 55, + 32, + 61, + 32, + 86, + 69, + 67, + 84, + 79, + 82, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 54, + 49, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 51, + 56, + 32, + 61, + 32, + 67, + 67, + 95, + 68, + 69, + 83, + 73, + 71, + 78, + 95, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 32, + 40, + 32, + 35, + 50, + 49, + 48, + 44, + 32, + 40, + 32, + 35, + 53, + 49, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 51, + 57, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 52, + 48, + 32, + 61, + 32, + 86, + 69, + 82, + 84, + 69, + 88, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 57, + 56, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 52, + 49, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 49, + 57, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 52, + 50, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 54, + 57, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 52, + 51, + 32, + 61, + 32, + 67, + 67, + 95, + 68, + 69, + 83, + 73, + 71, + 78, + 95, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 95, + 65, + 83, + 83, + 73, + 71, + 78, + 77, + 69, + 78, + 84, + 32, + 40, + 32, + 35, + 49, + 54, + 55, + 44, + 32, + 35, + 49, + 56, + 56, + 44, + 32, + 40, + 32, + 35, + 49, + 56, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 52, + 52, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 52, + 53, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 52, + 54, + 32, + 61, + 32, + 65, + 80, + 80, + 76, + 73, + 67, + 65, + 84, + 73, + 79, + 78, + 95, + 67, + 79, + 78, + 84, + 69, + 88, + 84, + 32, + 40, + 32, + 39, + 99, + 111, + 110, + 102, + 105, + 103, + 117, + 114, + 97, + 116, + 105, + 111, + 110, + 32, + 99, + 111, + 110, + 116, + 114, + 111, + 108, + 108, + 101, + 100, + 32, + 51, + 100, + 32, + 100, + 101, + 115, + 105, + 103, + 110, + 115, + 32, + 111, + 102, + 32, + 109, + 101, + 99, + 104, + 97, + 110, + 105, + 99, + 97, + 108, + 32, + 112, + 97, + 114, + 116, + 115, + 32, + 97, + 110, + 100, + 32, + 97, + 115, + 115, + 101, + 109, + 98, + 108, + 105, + 101, + 115, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 52, + 55, + 32, + 61, + 32, + 76, + 73, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 48, + 51, + 44, + 32, + 35, + 49, + 48, + 49, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 52, + 56, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 52, + 52, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 52, + 57, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 53, + 48, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 53, + 49, + 32, + 61, + 32, + 80, + 82, + 79, + 68, + 85, + 67, + 84, + 95, + 68, + 69, + 70, + 73, + 78, + 73, + 84, + 73, + 79, + 78, + 95, + 70, + 79, + 82, + 77, + 65, + 84, + 73, + 79, + 78, + 95, + 87, + 73, + 84, + 72, + 95, + 83, + 80, + 69, + 67, + 73, + 70, + 73, + 69, + 68, + 95, + 83, + 79, + 85, + 82, + 67, + 69, + 32, + 40, + 32, + 39, + 65, + 78, + 89, + 39, + 44, + 32, + 39, + 39, + 44, + 32, + 35, + 54, + 56, + 44, + 32, + 46, + 78, + 79, + 84, + 95, + 75, + 78, + 79, + 87, + 78, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 53, + 50, + 32, + 61, + 32, + 68, + 65, + 84, + 69, + 95, + 65, + 78, + 68, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 35, + 49, + 49, + 48, + 44, + 32, + 35, + 49, + 56, + 54, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 53, + 51, + 32, + 61, + 32, + 67, + 67, + 95, + 68, + 69, + 83, + 73, + 71, + 78, + 95, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 95, + 65, + 83, + 83, + 73, + 71, + 78, + 77, + 69, + 78, + 84, + 32, + 40, + 32, + 35, + 49, + 57, + 50, + 44, + 32, + 35, + 57, + 50, + 44, + 32, + 40, + 32, + 35, + 54, + 56, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 53, + 52, + 32, + 61, + 32, + 68, + 65, + 84, + 69, + 95, + 65, + 78, + 68, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 35, + 49, + 49, + 55, + 44, + 32, + 35, + 57, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 53, + 53, + 32, + 61, + 32, + 86, + 69, + 67, + 84, + 79, + 82, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 48, + 57, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 53, + 54, + 32, + 61, + 32, + 80, + 76, + 65, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 35, + 49, + 50, + 57, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 53, + 55, + 32, + 61, + 32, + 86, + 69, + 82, + 84, + 69, + 88, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 50, + 55, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 53, + 56, + 32, + 61, + 32, + 86, + 69, + 82, + 84, + 69, + 88, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 52, + 57, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 53, + 57, + 32, + 61, + 32, + 65, + 80, + 80, + 76, + 73, + 67, + 65, + 84, + 73, + 79, + 78, + 95, + 67, + 79, + 78, + 84, + 69, + 88, + 84, + 32, + 40, + 32, + 39, + 99, + 111, + 110, + 102, + 105, + 103, + 117, + 114, + 97, + 116, + 105, + 111, + 110, + 32, + 99, + 111, + 110, + 116, + 114, + 111, + 108, + 108, + 101, + 100, + 32, + 51, + 100, + 32, + 100, + 101, + 115, + 105, + 103, + 110, + 115, + 32, + 111, + 102, + 32, + 109, + 101, + 99, + 104, + 97, + 110, + 105, + 99, + 97, + 108, + 32, + 112, + 97, + 114, + 116, + 115, + 32, + 97, + 110, + 100, + 32, + 97, + 115, + 115, + 101, + 109, + 98, + 108, + 105, + 101, + 115, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 54, + 48, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 67, + 85, + 82, + 86, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 53, + 55, + 44, + 32, + 35, + 56, + 48, + 44, + 32, + 35, + 49, + 56, + 53, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 54, + 49, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 54, + 50, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 50, + 49, + 49, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 54, + 51, + 32, + 61, + 32, + 76, + 73, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 51, + 50, + 44, + 32, + 35, + 50, + 51, + 54, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 54, + 52, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 57, + 54, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 54, + 53, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 54, + 54, + 32, + 61, + 32, + 80, + 76, + 65, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 35, + 55, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 54, + 55, + 32, + 61, + 32, + 67, + 76, + 79, + 83, + 69, + 68, + 95, + 83, + 72, + 69, + 76, + 76, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 50, + 50, + 54, + 44, + 32, + 35, + 49, + 54, + 52, + 44, + 32, + 35, + 49, + 54, + 57, + 44, + 32, + 35, + 50, + 51, + 52, + 44, + 32, + 35, + 51, + 53, + 44, + 32, + 35, + 50, + 49, + 57, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 54, + 56, + 32, + 61, + 32, + 80, + 82, + 79, + 68, + 85, + 67, + 84, + 32, + 40, + 32, + 39, + 67, + 117, + 98, + 101, + 95, + 49, + 109, + 39, + 44, + 32, + 39, + 67, + 117, + 98, + 101, + 95, + 49, + 109, + 39, + 44, + 32, + 39, + 39, + 44, + 32, + 40, + 32, + 35, + 49, + 53, + 53, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 54, + 57, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 67, + 85, + 82, + 86, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 56, + 48, + 44, + 32, + 35, + 49, + 50, + 48, + 44, + 32, + 35, + 51, + 49, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 55, + 48, + 32, + 61, + 32, + 65, + 88, + 73, + 83, + 50, + 95, + 80, + 76, + 65, + 67, + 69, + 77, + 69, + 78, + 84, + 95, + 51, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 51, + 56, + 44, + 32, + 35, + 49, + 48, + 53, + 44, + 32, + 35, + 50, + 49, + 55, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 55, + 49, + 32, + 61, + 32, + 68, + 65, + 84, + 69, + 95, + 65, + 78, + 68, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 35, + 49, + 55, + 50, + 44, + 32, + 35, + 49, + 57, + 52, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 55, + 50, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 55, + 51, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 55, + 52, + 32, + 61, + 32, + 86, + 69, + 82, + 84, + 69, + 88, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 50, + 52, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 55, + 53, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 67, + 85, + 82, + 86, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 56, + 48, + 44, + 32, + 35, + 49, + 51, + 53, + 44, + 32, + 35, + 56, + 49, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 55, + 54, + 32, + 61, + 32, + 76, + 73, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 53, + 48, + 44, + 32, + 35, + 49, + 55, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 55, + 55, + 32, + 61, + 32, + 67, + 67, + 95, + 68, + 69, + 83, + 73, + 71, + 78, + 95, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 32, + 40, + 32, + 35, + 49, + 54, + 54, + 44, + 32, + 40, + 32, + 35, + 50, + 51, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 55, + 56, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 76, + 79, + 79, + 80, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 57, + 55, + 44, + 32, + 35, + 49, + 57, + 57, + 44, + 32, + 35, + 50, + 51, + 48, + 44, + 32, + 35, + 52, + 50, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 55, + 57, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 56, + 48, + 32, + 61, + 32, + 86, + 69, + 82, + 84, + 69, + 88, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 56, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 56, + 49, + 32, + 61, + 32, + 76, + 73, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 48, + 51, + 44, + 32, + 35, + 56, + 53, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 56, + 50, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 56, + 51, + 32, + 61, + 32, + 67, + 67, + 95, + 68, + 69, + 83, + 73, + 71, + 78, + 95, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 95, + 65, + 83, + 83, + 73, + 71, + 78, + 77, + 69, + 78, + 84, + 32, + 40, + 32, + 35, + 57, + 51, + 44, + 32, + 35, + 49, + 49, + 53, + 44, + 32, + 40, + 32, + 35, + 50, + 51, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 56, + 52, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 95, + 68, + 65, + 84, + 69, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 35, + 49, + 49, + 50, + 44, + 32, + 35, + 50, + 49, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 56, + 53, + 32, + 61, + 32, + 86, + 69, + 67, + 84, + 79, + 82, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 56, + 50, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 56, + 54, + 32, + 61, + 32, + 68, + 69, + 83, + 73, + 71, + 78, + 95, + 67, + 79, + 78, + 84, + 69, + 88, + 84, + 32, + 40, + 32, + 39, + 100, + 101, + 116, + 97, + 105, + 108, + 101, + 100, + 32, + 100, + 101, + 115, + 105, + 103, + 110, + 39, + 44, + 32, + 35, + 53, + 57, + 44, + 32, + 39, + 100, + 101, + 115, + 105, + 103, + 110, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 56, + 55, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 95, + 83, + 84, + 65, + 84, + 85, + 83, + 32, + 40, + 32, + 39, + 110, + 111, + 116, + 95, + 121, + 101, + 116, + 95, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 100, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 56, + 56, + 32, + 61, + 32, + 67, + 79, + 79, + 82, + 68, + 73, + 78, + 65, + 84, + 69, + 68, + 95, + 85, + 78, + 73, + 86, + 69, + 82, + 83, + 65, + 76, + 95, + 84, + 73, + 77, + 69, + 95, + 79, + 70, + 70, + 83, + 69, + 84, + 32, + 40, + 32, + 53, + 44, + 32, + 48, + 44, + 32, + 46, + 66, + 69, + 72, + 73, + 78, + 68, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 56, + 57, + 32, + 61, + 32, + 67, + 79, + 79, + 82, + 68, + 73, + 78, + 65, + 84, + 69, + 68, + 95, + 85, + 78, + 73, + 86, + 69, + 82, + 83, + 65, + 76, + 95, + 84, + 73, + 77, + 69, + 95, + 79, + 70, + 70, + 83, + 69, + 84, + 32, + 40, + 32, + 53, + 44, + 32, + 48, + 44, + 32, + 46, + 66, + 69, + 72, + 73, + 78, + 68, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 57, + 48, + 32, + 61, + 32, + 76, + 79, + 67, + 65, + 76, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 49, + 49, + 44, + 32, + 49, + 48, + 44, + 32, + 49, + 57, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 35, + 49, + 53, + 52, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 57, + 49, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 49, + 51, + 52, + 44, + 32, + 35, + 50, + 50, + 56, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 57, + 50, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 95, + 82, + 79, + 76, + 69, + 32, + 40, + 32, + 39, + 100, + 101, + 115, + 105, + 103, + 110, + 95, + 111, + 119, + 110, + 101, + 114, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 57, + 51, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 49, + 51, + 52, + 44, + 32, + 35, + 50, + 50, + 56, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 57, + 52, + 32, + 61, + 32, + 65, + 80, + 80, + 76, + 73, + 67, + 65, + 84, + 73, + 79, + 78, + 95, + 80, + 82, + 79, + 84, + 79, + 67, + 79, + 76, + 95, + 68, + 69, + 70, + 73, + 78, + 73, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 105, + 110, + 116, + 101, + 114, + 110, + 97, + 116, + 105, + 111, + 110, + 97, + 108, + 32, + 115, + 116, + 97, + 110, + 100, + 97, + 114, + 100, + 39, + 44, + 32, + 39, + 99, + 111, + 110, + 102, + 105, + 103, + 95, + 99, + 111, + 110, + 116, + 114, + 111, + 108, + 95, + 100, + 101, + 115, + 105, + 103, + 110, + 39, + 44, + 32, + 49, + 57, + 57, + 52, + 44, + 32, + 35, + 52, + 54, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 57, + 53, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 32, + 40, + 32, + 35, + 56, + 55, + 44, + 32, + 39, + 85, + 78, + 83, + 80, + 69, + 67, + 73, + 70, + 73, + 69, + 68, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 57, + 54, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 67, + 85, + 82, + 86, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 55, + 52, + 44, + 32, + 35, + 53, + 55, + 44, + 32, + 35, + 49, + 54, + 50, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 57, + 55, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 52, + 52, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 57, + 56, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 57, + 57, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 76, + 79, + 79, + 80, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 54, + 44, + 32, + 35, + 49, + 50, + 53, + 44, + 32, + 35, + 54, + 52, + 44, + 32, + 35, + 49, + 49, + 56, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 48, + 48, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 48, + 49, + 32, + 61, + 32, + 86, + 69, + 67, + 84, + 79, + 82, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 48, + 52, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 48, + 50, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 76, + 79, + 79, + 80, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 49, + 55, + 56, + 44, + 32, + 35, + 50, + 48, + 50, + 44, + 32, + 35, + 52, + 49, + 44, + 32, + 35, + 52, + 56, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 48, + 51, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 48, + 52, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 48, + 53, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 48, + 54, + 32, + 61, + 32, + 80, + 82, + 79, + 68, + 85, + 67, + 84, + 95, + 82, + 69, + 76, + 65, + 84, + 69, + 68, + 95, + 80, + 82, + 79, + 68, + 85, + 67, + 84, + 95, + 67, + 65, + 84, + 69, + 71, + 79, + 82, + 89, + 32, + 40, + 32, + 39, + 100, + 101, + 116, + 97, + 105, + 108, + 39, + 44, + 32, + 39, + 39, + 44, + 32, + 40, + 32, + 35, + 54, + 56, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 48, + 55, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 67, + 85, + 82, + 86, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 51, + 53, + 44, + 32, + 35, + 50, + 49, + 53, + 44, + 32, + 35, + 49, + 52, + 48, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 48, + 56, + 32, + 61, + 32, + 67, + 67, + 95, + 68, + 69, + 83, + 73, + 71, + 78, + 95, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 32, + 40, + 32, + 35, + 57, + 53, + 44, + 32, + 40, + 32, + 35, + 49, + 56, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 48, + 57, + 32, + 61, + 32, + 83, + 72, + 65, + 80, + 69, + 95, + 68, + 69, + 70, + 73, + 78, + 73, + 84, + 73, + 79, + 78, + 95, + 82, + 69, + 80, + 82, + 69, + 83, + 69, + 78, + 84, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 49, + 52, + 54, + 44, + 32, + 35, + 50, + 50, + 50, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 49, + 48, + 32, + 61, + 32, + 67, + 65, + 76, + 69, + 78, + 68, + 65, + 82, + 95, + 68, + 65, + 84, + 69, + 32, + 40, + 32, + 50, + 48, + 50, + 51, + 44, + 32, + 51, + 49, + 44, + 32, + 55, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 49, + 49, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 49, + 51, + 52, + 44, + 32, + 35, + 50, + 50, + 56, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 49, + 50, + 32, + 61, + 32, + 68, + 65, + 84, + 69, + 95, + 65, + 78, + 68, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 35, + 51, + 54, + 44, + 32, + 35, + 49, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 49, + 51, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 95, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 49, + 56, + 44, + 32, + 35, + 57, + 53, + 44, + 32, + 35, + 49, + 51, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 49, + 52, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 95, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 49, + 49, + 49, + 44, + 32, + 35, + 50, + 49, + 48, + 44, + 32, + 35, + 49, + 51, + 50, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 49, + 53, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 95, + 82, + 79, + 76, + 69, + 32, + 40, + 32, + 39, + 99, + 114, + 101, + 97, + 116, + 111, + 114, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 49, + 54, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 49, + 55, + 32, + 61, + 32, + 67, + 65, + 76, + 69, + 78, + 68, + 65, + 82, + 95, + 68, + 65, + 84, + 69, + 32, + 40, + 32, + 50, + 48, + 50, + 51, + 44, + 32, + 51, + 49, + 44, + 32, + 55, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 49, + 56, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 50, + 56, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 49, + 57, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 67, + 85, + 82, + 86, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 49, + 53, + 44, + 32, + 35, + 52, + 48, + 44, + 32, + 35, + 54, + 51, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 50, + 48, + 32, + 61, + 32, + 86, + 69, + 82, + 84, + 69, + 88, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 53, + 57, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 50, + 49, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 50, + 49, + 49, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 50, + 50, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 50, + 51, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 57, + 54, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 50, + 52, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 50, + 53, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 56, + 57, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 50, + 54, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 50, + 55, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 50, + 56, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 67, + 85, + 82, + 86, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 55, + 52, + 44, + 32, + 35, + 52, + 48, + 44, + 32, + 35, + 49, + 52, + 50, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 50, + 57, + 32, + 61, + 32, + 65, + 88, + 73, + 83, + 50, + 95, + 80, + 76, + 65, + 67, + 69, + 77, + 69, + 78, + 84, + 95, + 51, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 52, + 44, + 32, + 35, + 49, + 57, + 53, + 44, + 32, + 35, + 49, + 55, + 49, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 51, + 48, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 95, + 82, + 79, + 76, + 69, + 32, + 40, + 32, + 39, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 51, + 49, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 95, + 68, + 65, + 84, + 69, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 35, + 55, + 49, + 44, + 32, + 35, + 49, + 54, + 54, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 51, + 50, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 95, + 82, + 79, + 76, + 69, + 32, + 40, + 32, + 39, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 51, + 51, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 51, + 52, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 32, + 40, + 32, + 39, + 85, + 78, + 83, + 80, + 69, + 67, + 73, + 70, + 73, + 69, + 68, + 39, + 44, + 32, + 39, + 85, + 78, + 83, + 80, + 69, + 67, + 73, + 70, + 73, + 69, + 68, + 39, + 44, + 32, + 39, + 85, + 78, + 83, + 80, + 69, + 67, + 73, + 70, + 73, + 69, + 68, + 39, + 44, + 32, + 40, + 39, + 85, + 78, + 83, + 80, + 69, + 67, + 73, + 70, + 73, + 69, + 68, + 39, + 41, + 44, + 32, + 40, + 39, + 85, + 78, + 83, + 80, + 69, + 67, + 73, + 70, + 73, + 69, + 68, + 39, + 41, + 44, + 32, + 40, + 39, + 85, + 78, + 83, + 80, + 69, + 67, + 73, + 70, + 73, + 69, + 68, + 39, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 51, + 53, + 32, + 61, + 32, + 86, + 69, + 82, + 84, + 69, + 88, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 49, + 52, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 51, + 54, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 95, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 57, + 49, + 44, + 32, + 35, + 49, + 54, + 54, + 44, + 32, + 35, + 49, + 53, + 49, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 51, + 55, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 76, + 79, + 79, + 80, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 49, + 53, + 56, + 44, + 32, + 35, + 49, + 55, + 54, + 44, + 32, + 35, + 49, + 53, + 55, + 44, + 32, + 35, + 50, + 49, + 50, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 51, + 56, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 51, + 57, + 32, + 61, + 32, + 76, + 73, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 52, + 53, + 44, + 32, + 35, + 53, + 53, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 52, + 48, + 32, + 61, + 32, + 76, + 73, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 55, + 55, + 44, + 32, + 35, + 51, + 55, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 52, + 49, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 54, + 48, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 52, + 50, + 32, + 61, + 32, + 76, + 73, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 51, + 49, + 44, + 32, + 35, + 49, + 57, + 51, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 52, + 51, + 32, + 61, + 32, + 70, + 65, + 67, + 69, + 95, + 79, + 85, + 84, + 69, + 82, + 95, + 66, + 79, + 85, + 78, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 50, + 55, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 52, + 52, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 67, + 85, + 82, + 86, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 50, + 48, + 44, + 32, + 35, + 50, + 49, + 53, + 44, + 32, + 35, + 52, + 55, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 52, + 53, + 32, + 61, + 32, + 65, + 88, + 73, + 83, + 50, + 95, + 80, + 76, + 65, + 67, + 69, + 77, + 69, + 78, + 84, + 95, + 51, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 51, + 57, + 44, + 32, + 35, + 50, + 52, + 44, + 32, + 35, + 50, + 48, + 55, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 52, + 54, + 32, + 61, + 32, + 80, + 82, + 79, + 68, + 85, + 67, + 84, + 95, + 68, + 69, + 70, + 73, + 78, + 73, + 84, + 73, + 79, + 78, + 95, + 83, + 72, + 65, + 80, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 35, + 50, + 51, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 52, + 55, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 95, + 82, + 79, + 76, + 69, + 32, + 40, + 32, + 39, + 99, + 114, + 101, + 97, + 116, + 111, + 114, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 52, + 56, + 32, + 61, + 32, + 67, + 67, + 95, + 68, + 69, + 83, + 73, + 71, + 78, + 95, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 95, + 65, + 83, + 83, + 73, + 71, + 78, + 77, + 69, + 78, + 84, + 32, + 40, + 32, + 35, + 49, + 54, + 53, + 44, + 32, + 35, + 49, + 52, + 55, + 44, + 32, + 40, + 32, + 35, + 53, + 49, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 52, + 57, + 32, + 61, + 32, + 68, + 65, + 84, + 69, + 95, + 84, + 73, + 77, + 69, + 95, + 82, + 79, + 76, + 69, + 32, + 40, + 32, + 39, + 99, + 108, + 97, + 115, + 115, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 111, + 110, + 95, + 100, + 97, + 116, + 101, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 53, + 48, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 67, + 85, + 82, + 86, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 53, + 56, + 44, + 32, + 35, + 49, + 50, + 48, + 44, + 32, + 35, + 49, + 54, + 51, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 53, + 49, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 95, + 82, + 79, + 76, + 69, + 32, + 40, + 32, + 39, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 53, + 50, + 32, + 61, + 32, + 85, + 78, + 67, + 69, + 82, + 84, + 65, + 73, + 78, + 84, + 89, + 95, + 77, + 69, + 65, + 83, + 85, + 82, + 69, + 95, + 87, + 73, + 84, + 72, + 95, + 85, + 78, + 73, + 84, + 32, + 40, + 76, + 69, + 78, + 71, + 84, + 72, + 95, + 77, + 69, + 65, + 83, + 85, + 82, + 69, + 40, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 56, + 50, + 69, + 45, + 48, + 53, + 32, + 41, + 44, + 32, + 35, + 50, + 44, + 32, + 39, + 100, + 105, + 115, + 116, + 97, + 110, + 99, + 101, + 95, + 97, + 99, + 99, + 117, + 114, + 97, + 99, + 121, + 95, + 118, + 97, + 108, + 117, + 101, + 39, + 44, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 41, + 59, + 13, + 10, + 35, + 49, + 53, + 51, + 32, + 61, + 32, + 67, + 67, + 95, + 68, + 69, + 83, + 73, + 71, + 78, + 95, + 83, + 69, + 67, + 85, + 82, + 73, + 84, + 89, + 95, + 67, + 76, + 65, + 83, + 83, + 73, + 70, + 73, + 67, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 49, + 56, + 48, + 44, + 32, + 40, + 32, + 35, + 53, + 49, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 53, + 52, + 32, + 61, + 32, + 67, + 79, + 79, + 82, + 68, + 73, + 78, + 65, + 84, + 69, + 68, + 95, + 85, + 78, + 73, + 86, + 69, + 82, + 83, + 65, + 76, + 95, + 84, + 73, + 77, + 69, + 95, + 79, + 70, + 70, + 83, + 69, + 84, + 32, + 40, + 32, + 53, + 44, + 32, + 48, + 44, + 32, + 46, + 66, + 69, + 72, + 73, + 78, + 68, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 53, + 53, + 32, + 61, + 32, + 77, + 69, + 67, + 72, + 65, + 78, + 73, + 67, + 65, + 76, + 95, + 67, + 79, + 78, + 84, + 69, + 88, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 52, + 54, + 44, + 32, + 39, + 109, + 101, + 99, + 104, + 97, + 110, + 105, + 99, + 97, + 108, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 53, + 54, + 32, + 61, + 32, + 86, + 69, + 67, + 84, + 79, + 82, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 50, + 57, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 53, + 55, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 54, + 48, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 53, + 56, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 53, + 48, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 53, + 57, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 54, + 48, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 49, + 57, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 54, + 49, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 54, + 50, + 32, + 61, + 32, + 76, + 73, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 50, + 44, + 32, + 35, + 57, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 54, + 51, + 32, + 61, + 32, + 76, + 73, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 54, + 53, + 44, + 32, + 35, + 53, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 54, + 52, + 32, + 61, + 32, + 65, + 68, + 86, + 65, + 78, + 67, + 69, + 68, + 95, + 70, + 65, + 67, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 51, + 48, + 32, + 41, + 44, + 32, + 35, + 51, + 50, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 54, + 53, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 49, + 51, + 52, + 44, + 32, + 35, + 50, + 50, + 56, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 54, + 54, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 32, + 40, + 32, + 35, + 49, + 57, + 54, + 44, + 32, + 39, + 85, + 78, + 83, + 80, + 69, + 67, + 73, + 70, + 73, + 69, + 68, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 54, + 55, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 49, + 51, + 52, + 44, + 32, + 35, + 50, + 50, + 56, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 54, + 56, + 32, + 61, + 40, + 32, + 78, + 65, + 77, + 69, + 68, + 95, + 85, + 78, + 73, + 84, + 32, + 40, + 32, + 42, + 32, + 41, + 32, + 80, + 76, + 65, + 78, + 69, + 95, + 65, + 78, + 71, + 76, + 69, + 95, + 85, + 78, + 73, + 84, + 32, + 40, + 32, + 41, + 32, + 83, + 73, + 95, + 85, + 78, + 73, + 84, + 32, + 40, + 32, + 36, + 44, + 32, + 46, + 82, + 65, + 68, + 73, + 65, + 78, + 46, + 32, + 41, + 32, + 41, + 59, + 13, + 10, + 35, + 49, + 54, + 57, + 32, + 61, + 32, + 65, + 68, + 86, + 65, + 78, + 67, + 69, + 68, + 95, + 70, + 65, + 67, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 49, + 52, + 51, + 32, + 41, + 44, + 32, + 35, + 54, + 54, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 55, + 48, + 32, + 61, + 32, + 86, + 69, + 67, + 84, + 79, + 82, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 55, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 55, + 49, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 55, + 50, + 32, + 61, + 32, + 67, + 65, + 76, + 69, + 78, + 68, + 65, + 82, + 95, + 68, + 65, + 84, + 69, + 32, + 40, + 32, + 50, + 48, + 50, + 51, + 44, + 32, + 51, + 49, + 44, + 32, + 55, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 55, + 51, + 32, + 61, + 32, + 65, + 88, + 73, + 83, + 50, + 95, + 80, + 76, + 65, + 67, + 69, + 77, + 69, + 78, + 84, + 95, + 51, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 48, + 52, + 44, + 32, + 35, + 49, + 56, + 52, + 44, + 32, + 35, + 49, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 55, + 52, + 32, + 61, + 40, + 32, + 78, + 65, + 77, + 69, + 68, + 95, + 85, + 78, + 73, + 84, + 32, + 40, + 32, + 42, + 32, + 41, + 32, + 83, + 73, + 95, + 85, + 78, + 73, + 84, + 32, + 40, + 32, + 36, + 44, + 32, + 46, + 83, + 84, + 69, + 82, + 65, + 68, + 73, + 65, + 78, + 46, + 32, + 41, + 32, + 83, + 79, + 76, + 73, + 68, + 95, + 65, + 78, + 71, + 76, + 69, + 95, + 85, + 78, + 73, + 84, + 32, + 40, + 32, + 41, + 32, + 41, + 59, + 13, + 10, + 35, + 49, + 55, + 53, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 55, + 54, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 54, + 57, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 55, + 55, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 55, + 56, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 53, + 48, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 55, + 57, + 32, + 61, + 32, + 86, + 69, + 67, + 84, + 79, + 82, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 51, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 56, + 48, + 32, + 61, + 32, + 83, + 69, + 67, + 85, + 82, + 73, + 84, + 89, + 95, + 67, + 76, + 65, + 83, + 83, + 73, + 70, + 73, + 67, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 39, + 44, + 32, + 39, + 39, + 44, + 32, + 35, + 50, + 50, + 51, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 56, + 49, + 32, + 61, + 32, + 70, + 65, + 67, + 69, + 95, + 79, + 85, + 84, + 69, + 82, + 95, + 66, + 79, + 85, + 78, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 48, + 50, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 56, + 50, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 48, + 55, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 56, + 51, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 56, + 52, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 56, + 53, + 32, + 61, + 32, + 76, + 73, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 52, + 44, + 32, + 35, + 49, + 53, + 54, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 56, + 54, + 32, + 61, + 32, + 76, + 79, + 67, + 65, + 76, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 49, + 49, + 44, + 32, + 49, + 48, + 44, + 32, + 49, + 57, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 35, + 50, + 50, + 49, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 56, + 55, + 32, + 61, + 32, + 67, + 67, + 95, + 68, + 69, + 83, + 73, + 71, + 78, + 95, + 68, + 65, + 84, + 69, + 95, + 65, + 78, + 68, + 95, + 84, + 73, + 77, + 69, + 95, + 65, + 83, + 83, + 73, + 71, + 78, + 77, + 69, + 78, + 84, + 32, + 40, + 32, + 35, + 53, + 52, + 44, + 32, + 35, + 49, + 57, + 55, + 44, + 32, + 40, + 32, + 35, + 50, + 51, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 56, + 56, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 95, + 82, + 79, + 76, + 69, + 32, + 40, + 32, + 39, + 99, + 108, + 97, + 115, + 115, + 105, + 102, + 105, + 99, + 97, + 116, + 105, + 111, + 110, + 95, + 111, + 102, + 102, + 105, + 99, + 101, + 114, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 56, + 57, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 67, + 85, + 82, + 86, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 53, + 55, + 44, + 32, + 35, + 53, + 56, + 44, + 32, + 35, + 55, + 54, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 57, + 48, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 95, + 83, + 84, + 65, + 84, + 85, + 83, + 32, + 40, + 32, + 39, + 110, + 111, + 116, + 95, + 121, + 101, + 116, + 95, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 100, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 57, + 49, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 95, + 82, + 79, + 76, + 69, + 32, + 40, + 32, + 39, + 100, + 101, + 115, + 105, + 103, + 110, + 95, + 115, + 117, + 112, + 112, + 108, + 105, + 101, + 114, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 57, + 50, + 32, + 61, + 32, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 35, + 49, + 51, + 52, + 44, + 32, + 35, + 50, + 50, + 56, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 57, + 51, + 32, + 61, + 32, + 86, + 69, + 67, + 84, + 79, + 82, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 49, + 54, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 57, + 52, + 32, + 61, + 32, + 76, + 79, + 67, + 65, + 76, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 49, + 49, + 44, + 32, + 49, + 48, + 44, + 32, + 49, + 57, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 35, + 50, + 48, + 56, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 57, + 53, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 57, + 54, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 95, + 83, + 84, + 65, + 84, + 85, + 83, + 32, + 40, + 32, + 39, + 110, + 111, + 116, + 95, + 121, + 101, + 116, + 95, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 100, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 57, + 55, + 32, + 61, + 32, + 68, + 65, + 84, + 69, + 95, + 84, + 73, + 77, + 69, + 95, + 82, + 79, + 76, + 69, + 32, + 40, + 32, + 39, + 99, + 114, + 101, + 97, + 116, + 105, + 111, + 110, + 95, + 100, + 97, + 116, + 101, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 57, + 56, + 32, + 61, + 32, + 70, + 65, + 67, + 69, + 95, + 79, + 85, + 84, + 69, + 82, + 95, + 66, + 79, + 85, + 78, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 55, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 49, + 57, + 57, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 48, + 55, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 48, + 48, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 50, + 56, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 48, + 49, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 48, + 50, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 53, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 48, + 51, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 48, + 52, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 48, + 53, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 48, + 54, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 48, + 55, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 48, + 56, + 32, + 61, + 32, + 67, + 79, + 79, + 82, + 68, + 73, + 78, + 65, + 84, + 69, + 68, + 95, + 85, + 78, + 73, + 86, + 69, + 82, + 83, + 65, + 76, + 95, + 84, + 73, + 77, + 69, + 95, + 79, + 70, + 70, + 83, + 69, + 84, + 32, + 40, + 32, + 53, + 44, + 32, + 48, + 44, + 32, + 46, + 66, + 69, + 72, + 73, + 78, + 68, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 48, + 57, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 49, + 48, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 32, + 40, + 32, + 35, + 49, + 57, + 48, + 44, + 32, + 39, + 85, + 78, + 83, + 80, + 69, + 67, + 73, + 70, + 73, + 69, + 68, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 49, + 49, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 67, + 85, + 82, + 86, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 51, + 53, + 44, + 32, + 35, + 55, + 52, + 44, + 32, + 35, + 50, + 49, + 51, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 49, + 50, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 49, + 56, + 57, + 44, + 32, + 46, + 84, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 49, + 51, + 32, + 61, + 32, + 76, + 73, + 78, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 48, + 49, + 44, + 32, + 35, + 51, + 51, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 49, + 52, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 49, + 53, + 32, + 61, + 32, + 86, + 69, + 82, + 84, + 69, + 88, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 50, + 57, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 49, + 54, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 49, + 55, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 49, + 56, + 32, + 61, + 32, + 67, + 67, + 95, + 68, + 69, + 83, + 73, + 71, + 78, + 95, + 68, + 65, + 84, + 69, + 95, + 65, + 78, + 68, + 95, + 84, + 73, + 77, + 69, + 95, + 65, + 83, + 83, + 73, + 71, + 78, + 77, + 69, + 78, + 84, + 32, + 40, + 32, + 35, + 53, + 50, + 44, + 32, + 35, + 49, + 52, + 57, + 44, + 32, + 40, + 32, + 35, + 49, + 56, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 49, + 57, + 32, + 61, + 32, + 65, + 68, + 86, + 65, + 78, + 67, + 69, + 68, + 95, + 70, + 65, + 67, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 49, + 56, + 49, + 32, + 41, + 44, + 32, + 35, + 49, + 49, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 50, + 48, + 32, + 61, + 32, + 65, + 88, + 73, + 83, + 50, + 95, + 80, + 76, + 65, + 67, + 69, + 77, + 69, + 78, + 84, + 95, + 51, + 68, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 55, + 57, + 44, + 32, + 35, + 49, + 54, + 49, + 44, + 32, + 35, + 50, + 48, + 54, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 50, + 49, + 32, + 61, + 32, + 67, + 79, + 79, + 82, + 68, + 73, + 78, + 65, + 84, + 69, + 68, + 95, + 85, + 78, + 73, + 86, + 69, + 82, + 83, + 65, + 76, + 95, + 84, + 73, + 77, + 69, + 95, + 79, + 70, + 70, + 83, + 69, + 84, + 32, + 40, + 32, + 53, + 44, + 32, + 48, + 44, + 32, + 46, + 66, + 69, + 72, + 73, + 78, + 68, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 50, + 50, + 32, + 61, + 32, + 65, + 68, + 86, + 65, + 78, + 67, + 69, + 68, + 95, + 66, + 82, + 69, + 80, + 95, + 83, + 72, + 65, + 80, + 69, + 95, + 82, + 69, + 80, + 82, + 69, + 83, + 69, + 78, + 84, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 67, + 117, + 98, + 101, + 95, + 49, + 109, + 39, + 44, + 32, + 40, + 32, + 35, + 50, + 51, + 53, + 44, + 32, + 35, + 49, + 32, + 41, + 44, + 32, + 35, + 50, + 49, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 50, + 51, + 32, + 61, + 32, + 83, + 69, + 67, + 85, + 82, + 73, + 84, + 89, + 95, + 67, + 76, + 65, + 83, + 83, + 73, + 70, + 73, + 67, + 65, + 84, + 73, + 79, + 78, + 95, + 76, + 69, + 86, + 69, + 76, + 32, + 40, + 32, + 39, + 117, + 110, + 99, + 108, + 97, + 115, + 115, + 105, + 102, + 105, + 101, + 100, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 50, + 52, + 32, + 61, + 32, + 76, + 79, + 67, + 65, + 76, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 49, + 49, + 44, + 32, + 49, + 48, + 44, + 32, + 49, + 57, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 35, + 56, + 57, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 50, + 53, + 32, + 61, + 32, + 67, + 67, + 95, + 68, + 69, + 83, + 73, + 71, + 78, + 95, + 80, + 69, + 82, + 83, + 79, + 78, + 95, + 65, + 78, + 68, + 95, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 95, + 65, + 83, + 83, + 73, + 71, + 78, + 77, + 69, + 78, + 84, + 32, + 40, + 32, + 35, + 50, + 48, + 44, + 32, + 35, + 49, + 57, + 49, + 44, + 32, + 40, + 32, + 35, + 53, + 49, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 50, + 54, + 32, + 61, + 32, + 65, + 68, + 86, + 65, + 78, + 67, + 69, + 68, + 95, + 70, + 65, + 67, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 50, + 50, + 32, + 41, + 44, + 32, + 35, + 53, + 54, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 50, + 55, + 32, + 61, + 32, + 69, + 68, + 71, + 69, + 95, + 76, + 79, + 79, + 80, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 49, + 54, + 48, + 44, + 32, + 35, + 50, + 48, + 48, + 44, + 32, + 35, + 54, + 50, + 44, + 32, + 35, + 49, + 56, + 50, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 50, + 56, + 32, + 61, + 32, + 79, + 82, + 71, + 65, + 78, + 73, + 90, + 65, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 85, + 78, + 83, + 80, + 69, + 67, + 73, + 70, + 73, + 69, + 68, + 39, + 44, + 32, + 39, + 85, + 78, + 83, + 80, + 69, + 67, + 73, + 70, + 73, + 69, + 68, + 39, + 44, + 32, + 39, + 39, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 50, + 57, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 51, + 48, + 32, + 61, + 32, + 79, + 82, + 73, + 69, + 78, + 84, + 69, + 68, + 95, + 69, + 68, + 71, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 42, + 44, + 32, + 42, + 44, + 32, + 35, + 55, + 53, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 51, + 49, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 51, + 50, + 32, + 61, + 32, + 67, + 65, + 82, + 84, + 69, + 83, + 73, + 65, + 78, + 95, + 80, + 79, + 73, + 78, + 84, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 53, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 51, + 51, + 32, + 61, + 32, + 68, + 73, + 82, + 69, + 67, + 84, + 73, + 79, + 78, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 32, + 40, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 44, + 32, + 45, + 49, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 51, + 52, + 32, + 61, + 32, + 65, + 68, + 86, + 65, + 78, + 67, + 69, + 68, + 95, + 70, + 65, + 67, + 69, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 40, + 32, + 35, + 51, + 32, + 41, + 44, + 32, + 35, + 49, + 57, + 44, + 32, + 46, + 70, + 46, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 51, + 53, + 32, + 61, + 32, + 77, + 65, + 78, + 73, + 70, + 79, + 76, + 68, + 95, + 83, + 79, + 76, + 73, + 68, + 95, + 66, + 82, + 69, + 80, + 32, + 40, + 32, + 39, + 66, + 111, + 115, + 115, + 45, + 69, + 120, + 116, + 114, + 117, + 100, + 101, + 49, + 39, + 44, + 32, + 35, + 54, + 55, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 51, + 54, + 32, + 61, + 32, + 86, + 69, + 67, + 84, + 79, + 82, + 32, + 40, + 32, + 39, + 78, + 79, + 78, + 69, + 39, + 44, + 32, + 35, + 49, + 50, + 50, + 44, + 32, + 49, + 48, + 48, + 48, + 46, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 32, + 41, + 32, + 59, + 13, + 10, + 35, + 50, + 51, + 55, + 32, + 61, + 32, + 65, + 80, + 80, + 82, + 79, + 86, + 65, + 76, + 95, + 68, + 65, + 84, + 69, + 95, + 84, + 73, + 77, + 69, + 32, + 40, + 32, + 35, + 51, + 52, + 44, + 32, + 35, + 57, + 53, + 32, + 41, + 32, + 59, + 13, + 10, + 69, + 78, + 68, + 83, + 69, + 67, + 59, + 13, + 10, + 69, + 78, + 68, + 45, + 73, + 83, + 79, + 45, + 49, + 48, + 51, + 48, + 51, + 45, + 50, + 49, + 59, + 13, + 10 + ] + } + ], + "format": { + "type": "step", + "split_closed_faces": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_object_transform", + "object_id": "[uuid]", + "transforms": [ + { + "translate": { + "property": { + "x": 1020.0, + "y": 0.0, + "z": 0.0 + }, + "set": false, + "is_local": true + }, + "rotate_rpy": null, + "rotate_angle_axis": null, + "scale": null + } + ] + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_set_material_params_pbr", + "object_id": "[uuid]", + "color": { + "r": 1.0, + "g": 0.0, + "b": 0.12156863, + "a": 100.0 + }, + "metalness": 0.5, + "roughness": 0.5, + "ambient_occlusion": 0.0 + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_object_transform", + "object_id": "[uuid]", + "transforms": [ + { + "translate": { + "property": { + "x": -1020.0, + "y": 0.0, + "z": 0.0 + }, + "set": false, + "is_local": true + }, + "rotate_rpy": null, + "rotate_angle_axis": null, + "scale": null + } + ] + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_set_material_params_pbr", + "object_id": "[uuid]", + "color": { + "r": 1.0, + "g": 0.0, + "b": 0.0, + "a": 100.0 + }, + "metalness": 0.5, + "roughness": 0.5, + "ambient_occlusion": 0.0 + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "entity_clone", + "entity_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "entity_get_all_child_uuids", + "entity_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "entity_get_all_child_uuids", + "entity_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "entity_clone", + "entity_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "entity_get_all_child_uuids", + "entity_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "entity_get_all_child_uuids", + "entity_id": "[uuid]" + } + } +] diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_graph_flowchart.snap b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_graph_flowchart.snap new file mode 100644 index 000000000..a9d7d8847 --- /dev/null +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_graph_flowchart.snap @@ -0,0 +1,6 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact graph flowchart multiple-foreign-imports-all-render.kcl +extension: md +snapshot_kind: binary +--- diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_graph_flowchart.snap.md new file mode 100644 index 000000000..13e533509 --- /dev/null +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_graph_flowchart.snap.md @@ -0,0 +1,3 @@ +```mermaid +flowchart LR +``` diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/ast.snap b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/ast.snap new file mode 100644 index 000000000..bf8aa47a3 --- /dev/null +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/ast.snap @@ -0,0 +1,504 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of parsing multiple-foreign-imports-all-render.kcl +--- +{ + "Ok": { + "body": [ + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Foreign", + "path": "../inputs/cube.step" + }, + "selector": { + "type": "None", + "alias": { + "commentStart": 0, + "end": 0, + "name": "cube", + "start": 0, + "type": "Identifier" + } + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Kcl", + "filename": "othercube.kcl" + }, + "selector": { + "type": "None", + "alias": { + "commentStart": 0, + "end": 0, + "name": "othercube", + "start": 0, + "type": "Identifier" + } + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "end": 0, + "path": { + "type": "Kcl", + "filename": "anothercube.kcl" + }, + "selector": { + "type": "None", + "alias": { + "commentStart": 0, + "end": 0, + "name": "anothercube", + "start": 0, + "type": "Identifier" + } + }, + "start": 0, + "type": "ImportStatement", + "type": "ImportStatement" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "model", + "start": 0, + "type": "Identifier" + }, + "init": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "cube", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "body": [ + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "othercube", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "x", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "1020", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1020.0, + "suffix": "None" + } + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "translate", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "color", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "\"#ff001f\"", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": "#ff001f" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "metalness", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "50", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 50.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "roughness", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "50", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 50.0, + "suffix": "None" + } + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "appearance", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "body": [ + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "anothercube", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "x", + "start": 0, + "type": "Identifier" + }, + "arg": { + "argument": { + "commentStart": 0, + "end": 0, + "raw": "1020", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1020.0, + "suffix": "None" + } + }, + "commentStart": 0, + "end": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "translate", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "color", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "\"#ff0000\"", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": "#ff0000" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "metalness", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "50", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 50.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "roughness", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "raw": "50", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 50.0, + "suffix": "None" + } + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "appearance", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + } + ], + "commentStart": 0, + "end": 0, + "nonCodeMeta": { + "nonCodeNodes": { + "2": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ], + "3": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ], + "4": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ], + "5": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ] + }, + "startNodes": [] + }, + "start": 0 + } +} diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/input.kcl b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/input.kcl new file mode 100644 index 000000000..bab3abe34 --- /dev/null +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/input.kcl @@ -0,0 +1,22 @@ +import "../inputs/cube.step" as cube +import "othercube.kcl" as othercube +import "anothercube.kcl" as anothercube + +model = cube + +othercube + |> translate(x=1020) + |> appearance( + color = "#ff001f", + metalness = 50, + roughness = 50 + ) + +anothercube + |> translate(x=-1020) + |> appearance( + color = "#ff0000", + metalness = 50, + roughness = 50 + ) + diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/ops.snap b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/ops.snap new file mode 100644 index 000000000..08715ecd8 --- /dev/null +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/ops.snap @@ -0,0 +1,96 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Operations executed multiple-foreign-imports-all-render.kcl +--- +[ + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "cube", + "moduleId": 6 + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "othercube", + "moduleId": 7 + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "cube", + "moduleId": 6 + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "labeledArgs": { + "geometry": { + "value": { + "type": "ImportedGeometry", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + } + }, + "name": "clone", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": null + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "anothercube", + "moduleId": 8 + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "ModuleInstance", + "name": "cube", + "moduleId": 6 + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "labeledArgs": { + "geometry": { + "value": { + "type": "ImportedGeometry", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + } + }, + "name": "clone", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": null + }, + { + "type": "GroupEnd" + } +] diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/othercube.kcl b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/othercube.kcl new file mode 100644 index 000000000..59e5f233d --- /dev/null +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/othercube.kcl @@ -0,0 +1,3 @@ +import "../inputs/cube.step" as cube + +clone(cube) diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/program_memory.snap b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/program_memory.snap new file mode 100644 index 000000000..ea2a86513 --- /dev/null +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/program_memory.snap @@ -0,0 +1,25 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Variables in memory after executing multiple-foreign-imports-all-render.kcl +--- +{ + "anothercube": { + "type": "Module", + "value": 8 + }, + "cube": { + "type": "Module", + "value": 6 + }, + "model": { + "type": "ImportedGeometry", + "id": "[uuid]", + "value": [ + "cube.step" + ] + }, + "othercube": { + "type": "Module", + "value": 7 + } +} diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/rendered_model.png b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/rendered_model.png new file mode 100644 index 000000000..434ba67e3 Binary files /dev/null and b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/rendered_model.png differ diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/unparsed.snap b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/unparsed.snap new file mode 100644 index 000000000..22a29c083 --- /dev/null +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/unparsed.snap @@ -0,0 +1,17 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of unparsing multiple-foreign-imports-all-render.kcl +--- +import "../inputs/cube.step" as cube +import "othercube.kcl" as othercube +import "anothercube.kcl" as anothercube + +model = cube + +othercube + |> translate(x = 1020) + |> appearance(color = "#ff001f", metalness = 50, roughness = 50) + +anothercube + |> translate(x = -1020) + |> appearance(color = "#ff0000", metalness = 50, roughness = 50) diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/unparsed@anothercube.kcl.snap b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/unparsed@anothercube.kcl.snap new file mode 100644 index 000000000..3aab90f30 --- /dev/null +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/unparsed@anothercube.kcl.snap @@ -0,0 +1,7 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of unparsing tests/multiple-foreign-imports-all-render/anothercube.kcl +--- +import "../inputs/cube.step" as cube + +clone(cube) diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/unparsed@othercube.kcl.snap b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/unparsed@othercube.kcl.snap new file mode 100644 index 000000000..ac56b1f84 --- /dev/null +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/unparsed@othercube.kcl.snap @@ -0,0 +1,7 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of unparsing tests/multiple-foreign-imports-all-render/othercube.kcl +--- +import "../inputs/cube.step" as cube + +clone(cube) diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_hole1.png b/rust/kcl-lib/tests/outputs/serial_test_example_hole1.png index ef3bdb543..399c5e7c4 100644 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_hole1.png and b/rust/kcl-lib/tests/outputs/serial_test_example_hole1.png differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_hollow1.png b/rust/kcl-lib/tests/outputs/serial_test_example_hollow1.png index f78db1301..0eb238b5d 100644 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_hollow1.png and b/rust/kcl-lib/tests/outputs/serial_test_example_hollow1.png differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_hollow2.png b/rust/kcl-lib/tests/outputs/serial_test_example_hollow2.png index 79c7e6a7d..3e549e7d8 100644 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_hollow2.png and b/rust/kcl-lib/tests/outputs/serial_test_example_hollow2.png differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_shell1.png b/rust/kcl-lib/tests/outputs/serial_test_example_shell1.png index 4247c54a5..2c4add6eb 100644 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_shell1.png and b/rust/kcl-lib/tests/outputs/serial_test_example_shell1.png differ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_shell4.png b/rust/kcl-lib/tests/outputs/serial_test_example_shell4.png index af2779855..b5ec6d68c 100644 Binary files a/rust/kcl-lib/tests/outputs/serial_test_example_shell4.png and b/rust/kcl-lib/tests/outputs/serial_test_example_shell4.png differ diff --git a/scripts/diff.js b/scripts/diff.js new file mode 100644 index 000000000..807f68d1d --- /dev/null +++ b/scripts/diff.js @@ -0,0 +1,59 @@ +const fs = require('fs') +const latestRun = fs.readFileSync('/tmp/circular-deps.txt','utf-8') +const knownCircular = fs.readFileSync('./known-circular.txt','utf-8') + +function parseLine (line) { + let num = null + let depPath = null + const res = line.split(")",2) + if (res.length === 2) { + // should be a dep line + num = parseInt(res[0]) + depPath = res[1] + } + return { + num, + depPath + } +} + +function makeDependencyHash (file) { + const deps = {} + file.split("\n").forEach((line)=>{ + const {num, depPath} = parseLine(line) + if (depPath && !isNaN(num)) { + deps[depPath] = 1 + } + }) + return deps +} + +const latestRunDepHash = makeDependencyHash(latestRun) +const knownDepHash = makeDependencyHash(knownCircular) + +const dup1 = JSON.parse(JSON.stringify(latestRunDepHash)) +const dup2 = JSON.parse(JSON.stringify(knownDepHash)) +Object.keys(knownDepHash).forEach((key)=>{ + delete dup1[key] +}) + +Object.keys(latestRunDepHash).forEach((key)=>{ + delete dup2[key] +}) + +console.log(" ") +console.log("diff.js - line item diff") +console.log(" ") +console.log("Added(+)") +Object.keys(dup1).forEach((dep, index)=>{ + console.log(`${index+1}) ${dep}`) +}) + +console.log(" ") +console.log("Removed(-)") +if (Object.keys(dup2).length === 0) { + console.log("None") +} +Object.keys(dup2).forEach((dep, index)=>{ + console.log(`${index+1}) ${dep}`) +}) diff --git a/src/App.tsx b/src/App.tsx index 931798ade..4e501a20e 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -28,13 +28,9 @@ import { PATHS } from '@src/lib/paths' import { takeScreenshotOfVideoStreamCanvas } from '@src/lib/screenshot' import { sceneInfra } from '@src/lib/singletons' import { maybeWriteToDisk } from '@src/lib/telemetry' -import type { IndexLoaderData } from '@src/lib/types' -import { - engineStreamActor, - useSettings, - useToken, -} from '@src/machines/appMachine' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { type IndexLoaderData } from '@src/lib/types' +import { engineStreamActor, useSettings, useToken } from '@src/lib/singletons' +import { commandBarActor } from '@src/lib/singletons' import { EngineStreamTransition } from '@src/machines/engineStreamMachine' import { onboardingPaths } from '@src/routes/Onboarding/paths' import { CommandBarOpenButton } from '@src/components/CommandBarOpenButton' diff --git a/src/Auth.tsx b/src/Auth.tsx index 5ccc6e801..e4df0e622 100644 --- a/src/Auth.tsx +++ b/src/Auth.tsx @@ -1,5 +1,5 @@ import Loading from '@src/components/Loading' -import { useAuthState } from '@src/machines/appMachine' +import { useAuthState } from '@src/lib/singletons' // Wrapper around protected routes, used in src/Router.tsx export const Auth = ({ children }: React.PropsWithChildren) => { diff --git a/src/Root.tsx b/src/Root.tsx new file mode 100644 index 000000000..9986bc772 --- /dev/null +++ b/src/Root.tsx @@ -0,0 +1,35 @@ +import { AppStateProvider } from '@src/AppState' +import LspProvider from '@src/components/LspProvider' +import { MachineManagerProvider } from '@src/components/MachineManagerProvider' +import { OpenInDesktopAppHandler } from '@src/components/OpenInDesktopAppHandler' +import { SystemIOMachineLogicListenerDesktop } from '@src/components/Providers/SystemIOProviderDesktop' +import { SystemIOMachineLogicListenerWeb } from '@src/components/Providers/SystemIOProviderWeb' +import { RouteProvider } from '@src/components/RouteProvider' +import { KclContextProvider } from '@src/lang/KclProvider' +import { Outlet } from 'react-router-dom' +import { isDesktop } from '@src/lib/isDesktop' +// Root component will live for the entire applications runtime +function RootLayout() { + return ( + + + + + + + {isDesktop() ? ( + + ) : ( + + )} + + + + + + + + ) +} + +export default RootLayout diff --git a/src/Router.tsx b/src/Router.tsx index 16e0a720f..f592783de 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -9,22 +9,15 @@ import { } from 'react-router-dom' import { App } from '@src/App' -import { AppStateProvider } from '@src/AppState' import { Auth } from '@src/Auth' import { CommandBar } from '@src/components/CommandBar/CommandBar' import DownloadAppBanner from '@src/components/DownloadAppBanner' import { ErrorPage } from '@src/components/ErrorPage' import FileMachineProvider from '@src/components/FileMachineProvider' -import LspProvider from '@src/components/LspProvider' -import { MachineManagerProvider } from '@src/components/MachineManagerProvider' import ModelingMachineProvider from '@src/components/ModelingMachineProvider' -import { OpenInDesktopAppHandler } from '@src/components/OpenInDesktopAppHandler' -import { ProjectsContextProvider } from '@src/components/ProjectsContextProvider' -import { RouteProvider } from '@src/components/RouteProvider' import { WasmErrBanner } from '@src/components/WasmErrBanner' import { NetworkContext } from '@src/hooks/useNetworkContext' import { useNetworkStatus } from '@src/hooks/useNetworkStatus' -import { KclContextProvider } from '@src/lang/KclProvider' import { coreDump } from '@src/lang/wasm' import { ASK_TO_OPEN_QUERY_PARAM, @@ -42,7 +35,8 @@ import { rustContext, } from '@src/lib/singletons' import { reportRejection } from '@src/lib/trap' -import { useToken } from '@src/machines/appMachine' +import { useToken } from '@src/lib/singletons' +import RootLayout from '@src/Root' import Home from '@src/routes/Home' import Onboarding, { onboardingRoutes } from '@src/routes/Onboarding' import { Settings } from '@src/routes/Settings' @@ -54,27 +48,13 @@ const createRouter = isDesktop() ? createHashRouter : createBrowserRouter const router = createRouter([ { id: PATHS.INDEX, - element: ( - - - - - - - - - - - - - - - - ), - errorElement: , + element: , + // Gotcha: declaring errorElement on the root will unmount the element causing our forever React components to unmount. + // Leave errorElement on the child components, this allows for the entire react context on error pages as well. children: [ { path: PATHS.INDEX, + errorElement: , loader: async ({ request }) => { const onDesktop = isDesktop() const url = new URL(request.url) @@ -95,6 +75,7 @@ const router = createRouter([ loader: fileLoader, id: PATHS.FILE, path: PATHS.FILE + '/:id', + errorElement: , element: ( @@ -141,6 +122,7 @@ const router = createRouter([ }, { path: PATHS.HOME, + errorElement: , element: ( @@ -169,6 +151,7 @@ const router = createRouter([ }, { path: PATHS.SIGN_IN, + errorElement: , element: , }, ], diff --git a/src/Toolbar.tsx b/src/Toolbar.tsx index fc9aa65d2..872fc9d96 100644 --- a/src/Toolbar.tsx +++ b/src/Toolbar.tsx @@ -26,7 +26,7 @@ import type { } from '@src/lib/toolbar' import { isToolbarItemResolvedDropdown, toolbarConfig } from '@src/lib/toolbar' import { isArray } from '@src/lib/utils' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' export function Toolbar({ className = '', diff --git a/src/clientSideScene/ClientSideSceneComp.tsx b/src/clientSideScene/ClientSideSceneComp.tsx index 58a36be52..566e1e01a 100644 --- a/src/clientSideScene/ClientSideSceneComp.tsx +++ b/src/clientSideScene/ClientSideSceneComp.tsx @@ -40,8 +40,8 @@ import { } from '@src/lib/singletons' import { err, reportRejection, trap } from '@src/lib/trap' import { throttle, toSync } from '@src/lib/utils' -import type { useSettings } from '@src/machines/appMachine' -import { commandBarActor } from '@src/machines/commandBarMachine' +import type { useSettings } from '@src/lib/singletons' +import { commandBarActor } from '@src/lib/singletons' import type { SegmentOverlay } from '@src/machines/modelingMachine' function useShouldHideScene(): { hideClient: boolean; hideServer: boolean } { diff --git a/src/clientSideScene/segments.ts b/src/clientSideScene/segments.ts index d5b1ce334..a70177918 100644 --- a/src/clientSideScene/segments.ts +++ b/src/clientSideScene/segments.ts @@ -84,7 +84,7 @@ import { getThemeColorForThreeJs } from '@src/lib/theme' import { err } from '@src/lib/trap' import { isClockwise, normaliseAngle, roundOff } from '@src/lib/utils' import { getTangentPointFromPreviousArc } from '@src/lib/utils2d' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' import type { SegmentOverlay, SegmentOverlayPayload, diff --git a/src/components/AppHeader.tsx b/src/components/AppHeader.tsx index 552c3068b..d6b3eb61c 100644 --- a/src/components/AppHeader.tsx +++ b/src/components/AppHeader.tsx @@ -4,7 +4,7 @@ import ProjectSidebarMenu from '@src/components/ProjectSidebarMenu' import UserSidebarMenu from '@src/components/UserSidebarMenu' import { isDesktop } from '@src/lib/isDesktop' import { type IndexLoaderData } from '@src/lib/types' -import { useUser } from '@src/machines/appMachine' +import { useUser } from '@src/lib/singletons' import styles from './AppHeader.module.css' diff --git a/src/components/CameraProjectionToggle.tsx b/src/components/CameraProjectionToggle.tsx index 314fc56f5..aa0c3f7b3 100644 --- a/src/components/CameraProjectionToggle.tsx +++ b/src/components/CameraProjectionToggle.tsx @@ -1,7 +1,7 @@ import { Switch } from '@headlessui/react' import { useEffect, useState } from 'react' -import { settingsActor, useSettings } from '@src/machines/appMachine' +import { settingsActor, useSettings } from '@src/lib/singletons' export function CameraProjectionToggle() { const settings = useSettings() diff --git a/src/components/CommandBar/CommandArgOptionInput.tsx b/src/components/CommandBar/CommandArgOptionInput.tsx index ac4195f0f..a7b34ab1f 100644 --- a/src/components/CommandBar/CommandArgOptionInput.tsx +++ b/src/components/CommandBar/CommandArgOptionInput.tsx @@ -8,10 +8,7 @@ import type { CommandArgument, CommandArgumentOption, } from '@src/lib/commandTypes' -import { - commandBarActor, - useCommandBarState, -} from '@src/machines/commandBarMachine' +import { commandBarActor, useCommandBarState } from '@src/lib/singletons' const contextSelector = (snapshot: StateFrom | undefined) => snapshot?.context diff --git a/src/components/CommandBar/CommandBar.tsx b/src/components/CommandBar/CommandBar.tsx index 09d157699..5bc3efc6f 100644 --- a/src/components/CommandBar/CommandBar.tsx +++ b/src/components/CommandBar/CommandBar.tsx @@ -11,10 +11,7 @@ import { useNetworkContext } from '@src/hooks/useNetworkContext' import { EngineConnectionStateType } from '@src/lang/std/engineConnection' import useHotkeyWrapper from '@src/lib/hotkeyWrapper' import { engineCommandManager } from '@src/lib/singletons' -import { - commandBarActor, - useCommandBarState, -} from '@src/machines/commandBarMachine' +import { commandBarActor, useCommandBarState } from '@src/lib/singletons' import toast from 'react-hot-toast' export const COMMAND_PALETTE_HOTKEY = 'mod+k' diff --git a/src/components/CommandBar/CommandBarArgument.tsx b/src/components/CommandBar/CommandBarArgument.tsx index 6f15e9630..64d6c1f22 100644 --- a/src/components/CommandBar/CommandBarArgument.tsx +++ b/src/components/CommandBar/CommandBarArgument.tsx @@ -7,10 +7,7 @@ import CommandBarSelectionInput from '@src/components/CommandBar/CommandBarSelec import CommandBarSelectionMixedInput from '@src/components/CommandBar/CommandBarSelectionMixedInput' import CommandBarTextareaInput from '@src/components/CommandBar/CommandBarTextareaInput' import type { CommandArgument } from '@src/lib/commandTypes' -import { - commandBarActor, - useCommandBarState, -} from '@src/machines/commandBarMachine' +import { commandBarActor, useCommandBarState } from '@src/lib/singletons' function CommandBarArgument({ stepBack }: { stepBack: () => void }) { const commandBarState = useCommandBarState() diff --git a/src/components/CommandBar/CommandBarBasicInput.tsx b/src/components/CommandBar/CommandBarBasicInput.tsx index 137653bc1..fa315a1bb 100644 --- a/src/components/CommandBar/CommandBarBasicInput.tsx +++ b/src/components/CommandBar/CommandBarBasicInput.tsx @@ -3,10 +3,7 @@ import { useEffect, useMemo, useRef } from 'react' import { useHotkeys } from 'react-hotkeys-hook' import type { CommandArgument } from '@src/lib/commandTypes' -import { - commandBarActor, - useCommandBarState, -} from '@src/machines/commandBarMachine' +import { commandBarActor, useCommandBarState } from '@src/lib/singletons' import type { AnyStateMachine, SnapshotFrom } from 'xstate' // TODO: remove the need for this selector once we decouple all actors from React diff --git a/src/components/CommandBar/CommandBarHeader.tsx b/src/components/CommandBar/CommandBarHeader.tsx index 7d72e31dd..5b95bdd7f 100644 --- a/src/components/CommandBar/CommandBarHeader.tsx +++ b/src/components/CommandBar/CommandBarHeader.tsx @@ -11,10 +11,7 @@ import type { import type { Selections } from '@src/lib/selections' import { getSelectionTypeDisplayText } from '@src/lib/selections' import { roundOff } from '@src/lib/utils' -import { - commandBarActor, - useCommandBarState, -} from '@src/machines/commandBarMachine' +import { commandBarActor, useCommandBarState } from '@src/lib/singletons' function CommandBarHeader({ children }: React.PropsWithChildren) { const commandBarState = useCommandBarState() diff --git a/src/components/CommandBar/CommandBarKclInput.tsx b/src/components/CommandBar/CommandBarKclInput.tsx index 68204a2a7..283ae46b9 100644 --- a/src/components/CommandBar/CommandBarKclInput.tsx +++ b/src/components/CommandBar/CommandBarKclInput.tsx @@ -29,11 +29,8 @@ import { err } from '@src/lib/trap' import { useCalculateKclExpression } from '@src/lib/useCalculateKclExpression' import { roundOff } from '@src/lib/utils' import { varMentions } from '@src/lib/varCompletionExtension' -import { useSettings } from '@src/machines/appMachine' -import { - commandBarActor, - useCommandBarState, -} from '@src/machines/commandBarMachine' +import { useSettings } from '@src/lib/singletons' +import { commandBarActor, useCommandBarState } from '@src/lib/singletons' import styles from './CommandBarKclInput.module.css' diff --git a/src/components/CommandBar/CommandBarPathInput.tsx b/src/components/CommandBar/CommandBarPathInput.tsx index 3f57c4acb..a90f02c9a 100644 --- a/src/components/CommandBar/CommandBarPathInput.tsx +++ b/src/components/CommandBar/CommandBarPathInput.tsx @@ -5,10 +5,7 @@ import { ActionButton } from '@src/components/ActionButton' import type { CommandArgument } from '@src/lib/commandTypes' import { reportRejection } from '@src/lib/trap' import { isArray, toSync } from '@src/lib/utils' -import { - commandBarActor, - useCommandBarState, -} from '@src/machines/commandBarMachine' +import { commandBarActor, useCommandBarState } from '@src/lib/singletons' import { useSelector } from '@xstate/react' import type { AnyStateMachine, SnapshotFrom } from 'xstate' diff --git a/src/components/CommandBar/CommandBarReview.tsx b/src/components/CommandBar/CommandBarReview.tsx index 8eb52e9ad..6eb37309e 100644 --- a/src/components/CommandBar/CommandBarReview.tsx +++ b/src/components/CommandBar/CommandBarReview.tsx @@ -1,10 +1,7 @@ import { useHotkeys } from 'react-hotkeys-hook' import CommandBarHeader from '@src/components/CommandBar/CommandBarHeader' -import { - commandBarActor, - useCommandBarState, -} from '@src/machines/commandBarMachine' +import { commandBarActor, useCommandBarState } from '@src/lib/singletons' function CommandBarReview({ stepBack }: { stepBack: () => void }) { const commandBarState = useCommandBarState() diff --git a/src/components/CommandBar/CommandBarSelectionInput.tsx b/src/components/CommandBar/CommandBarSelectionInput.tsx index db06d6473..9b97a2f8b 100644 --- a/src/components/CommandBar/CommandBarSelectionInput.tsx +++ b/src/components/CommandBar/CommandBarSelectionInput.tsx @@ -12,10 +12,7 @@ import { import { engineCommandManager, kclManager } from '@src/lib/singletons' import { reportRejection } from '@src/lib/trap' import { toSync } from '@src/lib/utils' -import { - commandBarActor, - useCommandBarState, -} from '@src/machines/commandBarMachine' +import { commandBarActor, useCommandBarState } from '@src/lib/singletons' import type { modelingMachine } from '@src/machines/modelingMachine' const semanticEntityNames: { diff --git a/src/components/CommandBar/CommandBarSelectionMixedInput.tsx b/src/components/CommandBar/CommandBarSelectionMixedInput.tsx index f1291c874..a68c556ac 100644 --- a/src/components/CommandBar/CommandBarSelectionMixedInput.tsx +++ b/src/components/CommandBar/CommandBarSelectionMixedInput.tsx @@ -8,10 +8,7 @@ import { getSelectionCountByType, } from '@src/lib/selections' import { kclManager } from '@src/lib/singletons' -import { - commandBarActor, - useCommandBarState, -} from '@src/machines/commandBarMachine' +import { commandBarActor, useCommandBarState } from '@src/lib/singletons' const selectionSelector = (snapshot: any) => snapshot?.context.selectionRanges diff --git a/src/components/CommandBar/CommandBarTextareaInput.tsx b/src/components/CommandBar/CommandBarTextareaInput.tsx index 78c9cb885..ab20a9917 100644 --- a/src/components/CommandBar/CommandBarTextareaInput.tsx +++ b/src/components/CommandBar/CommandBarTextareaInput.tsx @@ -3,10 +3,7 @@ import { useEffect, useRef } from 'react' import { useHotkeys } from 'react-hotkeys-hook' import type { CommandArgument } from '@src/lib/commandTypes' -import { - commandBarActor, - useCommandBarState, -} from '@src/machines/commandBarMachine' +import { commandBarActor, useCommandBarState } from '@src/lib/singletons' function CommandBarTextareaInput({ arg, diff --git a/src/components/CommandBarOpenButton.tsx b/src/components/CommandBarOpenButton.tsx index e90dff26a..4e8d0b844 100644 --- a/src/components/CommandBarOpenButton.tsx +++ b/src/components/CommandBarOpenButton.tsx @@ -1,7 +1,7 @@ import { COMMAND_PALETTE_HOTKEY } from '@src/components/CommandBar/CommandBar' import usePlatform from '@src/hooks/usePlatform' import { hotkeyDisplay } from '@src/lib/hotkeyWrapper' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' import { CustomIcon } from '@src/components/CustomIcon' export function CommandBarOpenButton() { diff --git a/src/components/CommandComboBox.tsx b/src/components/CommandComboBox.tsx index 983dfea61..7c3905ea6 100644 --- a/src/components/CommandComboBox.tsx +++ b/src/components/CommandComboBox.tsx @@ -6,7 +6,7 @@ import { CustomIcon } from '@src/components/CustomIcon' import type { Command } from '@src/lib/commandTypes' import { sortCommands } from '@src/lib/commandUtils' import { getActorNextEvents } from '@src/lib/utils' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' function CommandComboBox({ options, diff --git a/src/components/DownloadAppBanner.tsx b/src/components/DownloadAppBanner.tsx index ee955a4fa..0081e1b75 100644 --- a/src/components/DownloadAppBanner.tsx +++ b/src/components/DownloadAppBanner.tsx @@ -3,7 +3,7 @@ import { useState } from 'react' import { ActionButton } from '@src/components/ActionButton' import { CREATE_FILE_URL_PARAM } from '@src/lib/constants' -import { useSettings } from '@src/machines/appMachine' +import { useSettings } from '@src/lib/singletons' import { useSearchParams } from 'react-router-dom' const DownloadAppBanner = () => { diff --git a/src/components/EngineStream.tsx b/src/components/EngineStream.tsx index 842b8b7bb..761a8e066 100644 --- a/src/components/EngineStream.tsx +++ b/src/components/EngineStream.tsx @@ -18,8 +18,8 @@ import { REASONABLE_TIME_TO_REFRESH_STREAM_SIZE } from '@src/lib/timings' import { err, reportRejection, trap } from '@src/lib/trap' import type { IndexLoaderData } from '@src/lib/types' import { uuidv4 } from '@src/lib/utils' -import { engineStreamActor, useSettings } from '@src/machines/appMachine' -import { useCommandBarState } from '@src/machines/commandBarMachine' +import { engineStreamActor, useSettings } from '@src/lib/singletons' +import { useCommandBarState } from '@src/lib/singletons' import { EngineStreamState, EngineStreamTransition, diff --git a/src/components/FileMachineProvider.tsx b/src/components/FileMachineProvider.tsx index 4f596a59f..2d9ffb3c8 100644 --- a/src/components/FileMachineProvider.tsx +++ b/src/components/FileMachineProvider.tsx @@ -33,8 +33,8 @@ import { markOnce } from '@src/lib/performance' import { codeManager, kclManager } from '@src/lib/singletons' import { err, reportRejection } from '@src/lib/trap' import { type IndexLoaderData } from '@src/lib/types' -import { useSettings, useToken } from '@src/machines/appMachine' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { useSettings, useToken } from '@src/lib/singletons' +import { commandBarActor } from '@src/lib/singletons' import { fileMachine } from '@src/machines/fileMachine' import { modelingMenuCallbackMostActions } from '@src/menu/register' @@ -194,6 +194,14 @@ export const FileMachineProvider = ({ navigate(`..${PATHS.FILE}/${encodeURIComponent(event.output.path)}`) } }, + openFileInNewWindow: ({ event }) => { + if (event.type !== 'Open file in new window') { + return + } + + commandBarActor.send({ type: 'Close' }) + window.electron.openInNewWindow(event.data.name) + }, }, actors: { readFiles: fromPromise(async ({ input }) => { diff --git a/src/components/FileTree.tsx b/src/components/FileTree.tsx index da5bc0ec8..342a92bc3 100644 --- a/src/components/FileTree.tsx +++ b/src/components/FileTree.tsx @@ -24,14 +24,15 @@ import { sortFilesAndDirectories } from '@src/lib/desktopFS' import useHotkeyWrapper from '@src/lib/hotkeyWrapper' import { PATHS } from '@src/lib/paths' import type { FileEntry } from '@src/lib/project' -import { codeManager, kclManager } from '@src/lib/singletons' +import { codeManager, kclManager, rustContext } from '@src/lib/singletons' import { reportRejection } from '@src/lib/trap' import type { IndexLoaderData } from '@src/lib/types' import { ToastInsert } from '@src/components/ToastInsert' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' import toast from 'react-hot-toast' import styles from './FileTree.module.css' +import { jsAppSettings } from '@src/lib/settings/settingsUtils' function getIndentationCSS(level: number) { return `calc(1rem * ${level + 1})` @@ -163,6 +164,7 @@ const FileTreeItem = ({ onCreateFile, onCreateFolder, onCloneFileOrFolder, + onOpenInNewWindow, newTreeEntry, level = 0, treeSelection, @@ -183,6 +185,7 @@ const FileTreeItem = ({ onCreateFile: (name: string) => void onCreateFolder: (name: string) => void onCloneFileOrFolder: (path: string) => void + onOpenInNewWindow: (path: string) => void newTreeEntry: TreeEntry level?: number treeSelection: FileEntry | undefined @@ -212,10 +215,25 @@ const FileTreeItem = ({ return } + // TODO: make this not just name based but sub path instead + const isImportedInCurrentFile = kclManager.ast.body.some( + (n) => + n.type === 'ImportStatement' && + ((n.path.type === 'Kcl' && + n.path.filename.includes(fileOrDir.name)) || + (n.path.type === 'Foreign' && n.path.path.includes(fileOrDir.name))) + ) + if (isCurrentFile && eventType === 'change') { let code = await window.electron.readFile(path, { encoding: 'utf-8' }) code = normalizeLineEndings(code) codeManager.updateCodeStateEditor(code) + } else if (isImportedInCurrentFile && eventType === 'change') { + await rustContext.clearSceneAndBustCache( + { settings: await jsAppSettings() }, + codeManager?.currentFilePath || undefined + ) + await kclManager.executeAst() } fileSend({ type: 'Refresh' }) }, @@ -439,6 +457,7 @@ const FileTreeItem = ({ onCreateFile={onCreateFile} onCreateFolder={onCreateFolder} onCloneFileOrFolder={onCloneFileOrFolder} + onOpenInNewWindow={onOpenInNewWindow} newTreeEntry={newTreeEntry} lastDirectoryClicked={lastDirectoryClicked} onClickDirectory={onClickDirectory} @@ -479,6 +498,7 @@ const FileTreeItem = ({ onRename={addCurrentItemToRenaming} onDelete={() => setIsConfirmingDelete(true)} onClone={() => onCloneFileOrFolder(fileOrDir.path)} + onOpenInNewWindow={() => onOpenInNewWindow(fileOrDir.path)} /> ) @@ -489,6 +509,7 @@ interface FileTreeContextMenuProps { onRename: () => void onDelete: () => void onClone: () => void + onOpenInNewWindow: () => void } function FileTreeContextMenu({ @@ -496,6 +517,7 @@ function FileTreeContextMenu({ onRename, onDelete, onClone, + onOpenInNewWindow, }: FileTreeContextMenuProps) { const platform = usePlatform() const metaKey = platform === 'macos' ? '⌘' : 'Ctrl' @@ -525,6 +547,12 @@ function FileTreeContextMenu({ > Clone , + + Open in new window + , ]} /> ) @@ -636,11 +664,21 @@ export const useFileTreeOperations = () => { }) } + function openInNewWindow(args: { path: string }) { + send({ + type: 'Open file in new window', + data: { + name: args.path, + }, + }) + } + return { createFile, createFolder, cloneFileOrDir, newTreeEntry, + openInNewWindow, } } @@ -648,8 +686,13 @@ export const FileTree = ({ className = '', onNavigateToFile: closePanel, }: FileTreeProps) => { - const { createFile, createFolder, cloneFileOrDir, newTreeEntry } = - useFileTreeOperations() + const { + createFile, + createFolder, + cloneFileOrDir, + openInNewWindow, + newTreeEntry, + } = useFileTreeOperations() return (
@@ -666,6 +709,7 @@ export const FileTree = ({ onCreateFile={(name: string) => createFile({ dryRun: false, name })} onCreateFolder={(name: string) => createFolder({ dryRun: false, name })} onCloneFileOrFolder={(path: string) => cloneFileOrDir({ path })} + onOpenInNewWindow={(path: string) => openInNewWindow({ path })} />
) @@ -676,11 +720,13 @@ export const FileTreeInner = ({ onCreateFile, onCreateFolder, onCloneFileOrFolder, + onOpenInNewWindow, newTreeEntry, }: { onCreateFile: (name: string) => void onCreateFolder: (name: string) => void onCloneFileOrFolder: (path: string) => void + onOpenInNewWindow: (path: string) => void newTreeEntry: TreeEntry onNavigateToFile?: () => void }) => { @@ -792,6 +838,7 @@ export const FileTreeInner = ({ onCreateFile={onCreateFile} onCreateFolder={onCreateFolder} onCloneFileOrFolder={onCloneFileOrFolder} + onOpenInNewWindow={onOpenInNewWindow} newTreeEntry={newTreeEntry} onClickDirectory={onClickDirectory} onNavigateToFile={onNavigateToFile_} diff --git a/src/components/Gizmo.tsx b/src/components/Gizmo.tsx index b05dddd88..fadd0d14e 100644 --- a/src/components/Gizmo.tsx +++ b/src/components/Gizmo.tsx @@ -27,7 +27,7 @@ import { useModelingContext } from '@src/hooks/useModelingContext' import { AxisNames } from '@src/lib/constants' import { sceneInfra } from '@src/lib/singletons' import { reportRejection } from '@src/lib/trap' -import { useSettings } from '@src/machines/appMachine' +import { useSettings } from '@src/lib/singletons' const CANVAS_SIZE = 80 const FRUSTUM_SIZE = 0.5 diff --git a/src/components/HelpMenu.tsx b/src/components/HelpMenu.tsx index 64c83063d..7274658a4 100644 --- a/src/components/HelpMenu.tsx +++ b/src/components/HelpMenu.tsx @@ -10,7 +10,7 @@ import { createAndOpenNewTutorialProject } from '@src/lib/desktopFS' import { openExternalBrowserIfDesktop } from '@src/lib/openWindow' import { PATHS } from '@src/lib/paths' import { reportRejection } from '@src/lib/trap' -import { settingsActor } from '@src/machines/appMachine' +import { settingsActor } from '@src/lib/singletons' import type { WebContentSendPayload } from '@src/menu/channels' const HelpMenuDivider = () => ( diff --git a/src/components/LspProvider.tsx b/src/components/LspProvider.tsx index 8fd358065..5e9155bec 100644 --- a/src/components/LspProvider.tsx +++ b/src/components/LspProvider.tsx @@ -27,7 +27,7 @@ import { PATHS } from '@src/lib/paths' import type { FileEntry } from '@src/lib/project' import { codeManager } from '@src/lib/singletons' import { err } from '@src/lib/trap' -import { useToken } from '@src/machines/appMachine' +import { useToken } from '@src/lib/singletons' function getWorkspaceFolders(): LSP.WorkspaceFolder[] { return [] diff --git a/src/components/MachineManagerProvider.tsx b/src/components/MachineManagerProvider.tsx index 8a4ca2e3c..6bb2c214f 100644 --- a/src/components/MachineManagerProvider.tsx +++ b/src/components/MachineManagerProvider.tsx @@ -5,7 +5,7 @@ import type { components } from '@src/lib/machine-api' import { engineCommandManager } from '@src/lib/singletons' import { reportRejection } from '@src/lib/trap' import { toSync } from '@src/lib/utils' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' export type MachinesListing = Array< components['schemas']['MachineInfoResponse'] diff --git a/src/components/ModelingMachineProvider.tsx b/src/components/ModelingMachineProvider.tsx index 8840e6e1a..5624ff039 100644 --- a/src/components/ModelingMachineProvider.tsx +++ b/src/components/ModelingMachineProvider.tsx @@ -111,8 +111,8 @@ import { submitAndAwaitTextToKcl } from '@src/lib/textToCad' import { err, reject, reportRejection, trap } from '@src/lib/trap' import type { IndexLoaderData } from '@src/lib/types' import { platform, uuidv4 } from '@src/lib/utils' -import { useSettings, useToken } from '@src/machines/appMachine' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { useSettings, useToken } from '@src/lib/singletons' +import { commandBarActor } from '@src/lib/singletons' import { kclEditorActor } from '@src/machines/kclEditorMachine' import { getPersistedContext, diff --git a/src/components/ModelingSidebar/ModelingPane.tsx b/src/components/ModelingSidebar/ModelingPane.tsx index 734b8dbd6..b919b8ff0 100644 --- a/src/components/ModelingSidebar/ModelingPane.tsx +++ b/src/components/ModelingSidebar/ModelingPane.tsx @@ -5,7 +5,7 @@ import { ActionButton } from '@src/components/ActionButton' import { ActionIcon } from '@src/components/ActionIcon' import type { CustomIconName } from '@src/components/CustomIcon' import Tooltip from '@src/components/Tooltip' -import { useSettings } from '@src/machines/appMachine' +import { useSettings } from '@src/lib/singletons' import { onboardingPaths } from '@src/routes/Onboarding/paths' import styles from './ModelingPane.module.css' diff --git a/src/components/ModelingSidebar/ModelingPanes/FeatureTreeMenu.tsx b/src/components/ModelingSidebar/ModelingPanes/FeatureTreeMenu.tsx index 964c950f3..bfd99f176 100644 --- a/src/components/ModelingSidebar/ModelingPanes/FeatureTreeMenu.tsx +++ b/src/components/ModelingSidebar/ModelingPanes/FeatureTreeMenu.tsx @@ -2,7 +2,7 @@ import { Menu } from '@headlessui/react' import type { PropsWithChildren } from 'react' import { ActionIcon } from '@src/components/ActionIcon' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' import styles from './KclEditorMenu.module.css' diff --git a/src/components/ModelingSidebar/ModelingPanes/KclEditorMenu.tsx b/src/components/ModelingSidebar/ModelingPanes/KclEditorMenu.tsx index 21f38f75c..c21e4db13 100644 --- a/src/components/ModelingSidebar/ModelingPanes/KclEditorMenu.tsx +++ b/src/components/ModelingSidebar/ModelingPanes/KclEditorMenu.tsx @@ -9,7 +9,7 @@ import { useConvertToVariable } from '@src/hooks/useToolbarGuards' import { openExternalBrowserIfDesktop } from '@src/lib/openWindow' import { kclManager } from '@src/lib/singletons' import { reportRejection } from '@src/lib/trap' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' import styles from './KclEditorMenu.module.css' diff --git a/src/components/ModelingSidebar/ModelingPanes/KclEditorPane.tsx b/src/components/ModelingSidebar/ModelingPanes/KclEditorPane.tsx index 79daaef53..66d847d7a 100644 --- a/src/components/ModelingSidebar/ModelingPanes/KclEditorPane.tsx +++ b/src/components/ModelingSidebar/ModelingPanes/KclEditorPane.tsx @@ -47,7 +47,7 @@ import { codeManagerHistoryCompartment } from '@src/lang/codeManager' import { codeManager, editorManager, kclManager } from '@src/lib/singletons' import { Themes, getSystemTheme } from '@src/lib/theme' import { onMouseDragMakeANewNumber, onMouseDragRegex } from '@src/lib/utils' -import { useSettings } from '@src/machines/appMachine' +import { useSettings } from '@src/lib/singletons' import { editorIsMountedSelector, kclEditorActor, diff --git a/src/components/ModelingSidebar/ModelingPanes/index.tsx b/src/components/ModelingSidebar/ModelingPanes/index.tsx index 00ef6224e..ebfcb9020 100644 --- a/src/components/ModelingSidebar/ModelingPanes/index.tsx +++ b/src/components/ModelingSidebar/ModelingPanes/index.tsx @@ -132,8 +132,13 @@ export const sidebarPanes: SidebarPane[] = [ icon: 'folder', sidebarName: 'Project Files', Content: (props: { id: SidebarType; onClose: () => void }) => { - const { createFile, createFolder, cloneFileOrDir, newTreeEntry } = - useFileTreeOperations() + const { + createFile, + createFolder, + cloneFileOrDir, + openInNewWindow, + newTreeEntry, + } = useFileTreeOperations() return ( <> @@ -155,6 +160,7 @@ export const sidebarPanes: SidebarPane[] = [ createFolder({ dryRun: false, name }) } onCloneFileOrFolder={(path: string) => cloneFileOrDir({ path })} + onOpenInNewWindow={(path: string) => openInNewWindow({ path })} newTreeEntry={newTreeEntry} /> diff --git a/src/components/ModelingSidebar/ModelingSidebar.tsx b/src/components/ModelingSidebar/ModelingSidebar.tsx index c19ed466e..146e4c366 100644 --- a/src/components/ModelingSidebar/ModelingSidebar.tsx +++ b/src/components/ModelingSidebar/ModelingSidebar.tsx @@ -22,8 +22,8 @@ import { useKclContext } from '@src/lang/KclProvider' import { EngineConnectionStateType } from '@src/lang/std/engineConnection' import { SIDEBAR_BUTTON_SUFFIX } from '@src/lib/constants' import { isDesktop } from '@src/lib/isDesktop' -import { useSettings } from '@src/machines/appMachine' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { useSettings } from '@src/lib/singletons' +import { commandBarActor } from '@src/lib/singletons' import { onboardingPaths } from '@src/routes/Onboarding/paths' import { reportRejection } from '@src/lib/trap' import { refreshPage } from '@src/lib/utils' diff --git a/src/components/ProjectSidebarMenu.tsx b/src/components/ProjectSidebarMenu.tsx index 37af452bd..799a8b18f 100644 --- a/src/components/ProjectSidebarMenu.tsx +++ b/src/components/ProjectSidebarMenu.tsx @@ -23,8 +23,8 @@ import { kclManager, } from '@src/lib/singletons' import { type IndexLoaderData } from '@src/lib/types' -import { useToken } from '@src/machines/appMachine' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { useToken } from '@src/lib/singletons' +import { commandBarActor } from '@src/lib/singletons' const ProjectSidebarMenu = ({ project, diff --git a/src/components/ProjectsContextProvider.tsx b/src/components/ProjectsContextProvider.tsx deleted file mode 100644 index 1766f54ff..000000000 --- a/src/components/ProjectsContextProvider.tsx +++ /dev/null @@ -1,492 +0,0 @@ -import { useMachine } from '@xstate/react' -import { createContext, useCallback, useEffect, useState } from 'react' -import toast from 'react-hot-toast' -import { useLocation, useNavigate, useSearchParams } from 'react-router-dom' -import type { Actor, AnyStateMachine, Prop, StateFrom } from 'xstate' -import { fromPromise } from 'xstate' - -import { useLspContext } from '@src/components/LspProvider' -import { useFileSystemWatcher } from '@src/hooks/useFileSystemWatcher' -import { useProjectsLoader } from '@src/hooks/useProjectsLoader' -import useStateMachineCommands from '@src/hooks/useStateMachineCommands' -import { newKclFile } from '@src/lang/project' -import { projectsCommandBarConfig } from '@src/lib/commandBarConfigs/projectsCommandConfig' -import { - CREATE_FILE_URL_PARAM, - FILE_EXT, - PROJECT_ENTRYPOINT, -} from '@src/lib/constants' -import { - createNewProjectDirectory, - listProjects, - renameProjectDirectory, -} from '@src/lib/desktop' -import { - doesProjectNameNeedInterpolated, - getNextFileName, - getNextProjectIndex, - getUniqueProjectName, - interpolateProjectNameWithIndex, -} from '@src/lib/desktopFS' -import { isDesktop } from '@src/lib/isDesktop' -import { PATHS } from '@src/lib/paths' -import type { Project } from '@src/lib/project' -import { codeManager, kclManager } from '@src/lib/singletons' -import { err } from '@src/lib/trap' -import { useSettings } from '@src/machines/appMachine' -import { commandBarActor } from '@src/machines/commandBarMachine' -import { projectsMachine } from '@src/machines/projectsMachine' - -type MachineContext = { - state?: StateFrom - send: Prop, 'send'> -} - -export const ProjectsMachineContext = createContext( - {} as MachineContext -) - -/** - * Watches the project directory and provides project management-related commands, - * like "Create project", "Open project", "Delete project", etc. - * - * If in the future we implement full-fledge project management in the web version, - * we can unify these components but for now, we need this to be only for the desktop version. - */ -export const ProjectsContextProvider = ({ - children, -}: { - children: React.ReactNode -}) => { - return isDesktop() ? ( - {children} - ) : ( - {children} - ) -} - -/** - * We need some of the functionality of the ProjectsContextProvider in the web version - * but we can't perform file system operations in the browser, - * so most of the behavior of this machine is stubbed out. - */ -const ProjectsContextWeb = ({ children }: { children: React.ReactNode }) => { - const [searchParams, setSearchParams] = useSearchParams() - const clearImportSearchParams = useCallback(() => { - // Clear the search parameters related to the "Import file from URL" command - // or we'll never be able cancel or submit it. - searchParams.delete(CREATE_FILE_URL_PARAM) - searchParams.delete('code') - searchParams.delete('name') - searchParams.delete('units') - setSearchParams(searchParams) - }, [searchParams, setSearchParams]) - const settings = useSettings() - - const [state, send, actor] = useMachine( - projectsMachine.provide({ - actions: { - navigateToProject: () => {}, - navigateToProjectIfNeeded: () => {}, - navigateToFile: () => {}, - toastSuccess: ({ event }) => - toast.success( - ('data' in event && typeof event.data === 'string' && event.data) || - ('output' in event && - 'message' in event.output && - typeof event.output.message === 'string' && - event.output.message) || - '' - ), - toastError: ({ event }) => - toast.error( - ('data' in event && typeof event.data === 'string' && event.data) || - ('output' in event && - typeof event.output === 'string' && - event.output) || - '' - ), - }, - actors: { - readProjects: fromPromise(async () => [] as Project[]), - createProject: fromPromise(async () => ({ - message: 'not implemented on web', - })), - renameProject: fromPromise(async () => ({ - message: 'not implemented on web', - oldName: '', - newName: '', - })), - deleteProject: fromPromise(async () => ({ - message: 'not implemented on web', - name: '', - })), - createFile: fromPromise(async ({ input }) => { - // Browser version doesn't navigate, just overwrites the current file - clearImportSearchParams() - - const codeToWrite = newKclFile( - input.code, - settings.modeling.defaultUnit.current - ) - if (err(codeToWrite)) return Promise.reject(codeToWrite) - codeManager.updateCodeStateEditor(codeToWrite) - await codeManager.writeToFile() - await kclManager.executeCode() - - return { - message: 'File overwritten successfully', - fileName: input.name, - projectName: '', - } - }), - }, - }), - { - input: { - projects: [], - defaultProjectName: settings.projects.defaultProjectName.current, - defaultDirectory: settings.app.projectDirectory.current, - hasListedProjects: false, - }, - } - ) - - // register all project-related command palette commands - useStateMachineCommands({ - machineId: 'projects', - send, - state, - commandBarConfig: projectsCommandBarConfig, - actor, - onCancel: clearImportSearchParams, - }) - - return ( - - {children} - - ) -} - -const ProjectsContextDesktop = ({ - children, -}: { - children: React.ReactNode -}) => { - const navigate = useNavigate() - const location = useLocation() - const [searchParams, setSearchParams] = useSearchParams() - const clearImportSearchParams = useCallback(() => { - // Clear the search parameters related to the "Import file from URL" command - // or we'll never be able cancel or submit it. - searchParams.delete(CREATE_FILE_URL_PARAM) - searchParams.delete('code') - searchParams.delete('name') - searchParams.delete('units') - setSearchParams(searchParams) - }, [searchParams, setSearchParams]) - const { onProjectOpen } = useLspContext() - const settings = useSettings() - const [projectsLoaderTrigger, setProjectsLoaderTrigger] = useState(0) - const { projectPaths, projectsDir } = useProjectsLoader([ - projectsLoaderTrigger, - ]) - - const [state, send, actor] = useMachine( - projectsMachine.provide({ - actions: { - navigateToProject: ({ context, event }) => { - const nameFromEventData = - 'data' in event && - event.data && - 'name' in event.data && - event.data.name - const nameFromOutputData = - 'output' in event && - event.output && - 'name' in event.output && - event.output.name - - const name = nameFromEventData || nameFromOutputData - - if (name) { - let projectPath = - context.defaultDirectory + window.electron.path.sep + name - onProjectOpen( - { - name, - path: projectPath, - }, - null - ) - commandBarActor.send({ type: 'Close' }) - const newPathName = `${PATHS.FILE}/${encodeURIComponent( - projectPath - )}` - navigate(newPathName) - } - }, - navigateToProjectIfNeeded: ({ event }) => { - if ( - event.type.startsWith('xstate.done.actor.') && - 'output' in event - ) { - const isInAProject = location.pathname.startsWith(PATHS.FILE) - const isInDeletedProject = - event.type === 'xstate.done.actor.delete-project' && - isInAProject && - decodeURIComponent(location.pathname).includes(event.output.name) - if (isInDeletedProject) { - navigate(PATHS.HOME) - return - } - - const isInRenamedProject = - event.type === 'xstate.done.actor.rename-project' && - isInAProject && - decodeURIComponent(location.pathname).includes( - event.output.oldName - ) - - if (isInRenamedProject) { - // TODO: In future, we can navigate to the new project path - // directly, but we need to coordinate with - // @lf94's useFileSystemWatcher in SettingsAuthProvider.tsx:224 - // Because it's beating us to the punch and updating the route - // const newPathName = location.pathname.replace( - // encodeURIComponent(event.output.oldName), - // encodeURIComponent(event.output.newName) - // ) - // navigate(newPathName) - return - } - } - }, - navigateToFile: ({ context, event }) => { - if (event.type !== 'xstate.done.actor.create-file') return - // For now, the browser version of create-file doesn't need to navigate - // since it just overwrites the current file. - if (!isDesktop()) return - let projectPath = window.electron.join( - context.defaultDirectory, - event.output.projectName - ) - let filePath = window.electron.join( - projectPath, - event.output.fileName - ) - onProjectOpen( - { - name: event.output.projectName, - path: projectPath, - }, - null - ) - const pathToNavigateTo = `${PATHS.FILE}/${encodeURIComponent( - filePath - )}` - navigate(pathToNavigateTo) - }, - toastSuccess: ({ event }) => - toast.success( - ('data' in event && typeof event.data === 'string' && event.data) || - ('output' in event && - 'message' in event.output && - typeof event.output.message === 'string' && - event.output.message) || - '' - ), - toastError: ({ event }) => - toast.error( - ('data' in event && typeof event.data === 'string' && event.data) || - ('output' in event && - typeof event.output === 'string' && - event.output) || - ('error' in event && - event.error instanceof Error && - event.error.message) || - '' - ), - }, - actors: { - readProjects: fromPromise(() => { - return listProjects() - }), - createProject: fromPromise(async ({ input }) => { - let name = ( - input && 'name' in input && input.name - ? input.name - : settings.projects.defaultProjectName.current - ).trim() - - const uniqueName = getUniqueProjectName(name, input.projects) - await createNewProjectDirectory(uniqueName) - - return { - message: `Successfully created "${uniqueName}"`, - name: uniqueName, - } - }), - renameProject: fromPromise(async ({ input }) => { - const { - oldName, - newName, - defaultProjectName, - defaultDirectory, - projects, - } = input - let name = newName ? newName : defaultProjectName - if (doesProjectNameNeedInterpolated(name)) { - const nextIndex = getNextProjectIndex(name, projects) - name = interpolateProjectNameWithIndex(name, nextIndex) - } - - // Toast an error if the project name is taken - if (projects.find((p) => p.name === name)) { - return Promise.reject( - new Error(`Project with name "${name}" already exists`) - ) - } - - await renameProjectDirectory( - window.electron.path.join(defaultDirectory, oldName), - name - ) - return { - message: `Successfully renamed "${oldName}" to "${name}"`, - oldName: oldName, - newName: name, - } - }), - deleteProject: fromPromise(async ({ input }) => { - await window.electron.rm( - window.electron.path.join(input.defaultDirectory, input.name), - { - recursive: true, - } - ) - return { - message: `Successfully deleted "${input.name}"`, - name: input.name, - } - }), - createFile: fromPromise(async ({ input }) => { - let projectName = - (input.method === 'newProject' ? input.name : input.projectName) || - settings.projects.defaultProjectName.current - let fileName = - input.method === 'newProject' - ? PROJECT_ENTRYPOINT - : input.name.endsWith(FILE_EXT) - ? input.name - : input.name + FILE_EXT - let message = 'File created successfully' - - const needsInterpolated = doesProjectNameNeedInterpolated(projectName) - if (needsInterpolated) { - const nextIndex = getNextProjectIndex(projectName, input.projects) - projectName = interpolateProjectNameWithIndex( - projectName, - nextIndex - ) - } - - // Create the project around the file if newProject - let fileLoaded = false - if (input.method === 'newProject') { - await createNewProjectDirectory(projectName, input.code) - fileLoaded = true - message = `Project "${projectName}" created successfully with link contents` - } else { - message = `File "${fileName}" created successfully` - } - - // Create the file - let baseDir = window.electron.join( - settings.app.projectDirectory.current, - projectName - ) - const { name, path } = getNextFileName({ - entryName: fileName, - baseDir, - }) - - fileName = name - if (!fileLoaded) { - const codeToWrite = newKclFile( - input.code, - settings.modeling.defaultUnit.current - ) - if (err(codeToWrite)) return Promise.reject(codeToWrite) - await window.electron.writeFile(path, codeToWrite) - } - - // TODO: Return the project's file name if one was created. - return { - message, - fileName, - projectName, - } - }), - }, - }), - { - input: { - projects: projectPaths, - defaultProjectName: settings.projects.defaultProjectName.current, - defaultDirectory: settings.app.projectDirectory.current, - hasListedProjects: false, - }, - } - ) - - useFileSystemWatcher( - async () => { - // Gotcha: Chokidar is buggy. It will emit addDir or add on files that did not get created. - // This means while the application initialize and Chokidar initializes you cannot tell if - // a directory or file is actually created or they are buggy signals. This means you must - // ignore all signals during initialization because it is ambiguous. Once those signals settle - // you can actually start listening to real signals. - // If someone creates folders or files during initialization we ignore those events! - if (!actor.getSnapshot().context.hasListedProjects) { - return - } - return setProjectsLoaderTrigger(projectsLoaderTrigger + 1) - }, - projectsDir ? [projectsDir] : [] - ) - - // Gotcha: Triggers listProjects() on chokidar changes - // Gotcha: Load the projects when the projectDirectory changes. - const projectDirectory = settings.app.projectDirectory.current - useEffect(() => { - send({ type: 'Read projects', data: {} }) - }, [projectPaths, projectDirectory]) - - // register all project-related command palette commands - useStateMachineCommands({ - machineId: 'projects', - send, - state, - commandBarConfig: projectsCommandBarConfig, - actor, - onCancel: clearImportSearchParams, - }) - - return ( - - {children} - - ) -} diff --git a/src/components/Providers/SystemIOProviderDesktop.tsx b/src/components/Providers/SystemIOProviderDesktop.tsx new file mode 100644 index 000000000..f1a6028a7 --- /dev/null +++ b/src/components/Providers/SystemIOProviderDesktop.tsx @@ -0,0 +1,107 @@ +import { useFileSystemWatcher } from '@src/hooks/useFileSystemWatcher' +import { PATHS } from '@src/lib/paths' +import { systemIOActor, useSettings } from '@src/lib/singletons' +import { + useHasListedProjects, + useProjectDirectoryPath, + useRequestedFileName, + useRequestedProjectName, +} from '@src/machines/systemIO/hooks' +import { SystemIOMachineEvents } from '@src/machines/systemIO/utils' +import { useNavigate } from 'react-router-dom' +import { useEffect } from 'react' + +export function SystemIOMachineLogicListenerDesktop() { + const requestedProjectName = useRequestedProjectName() + const requestedFileName = useRequestedFileName() + const projectDirectoryPath = useProjectDirectoryPath() + const hasListedProjects = useHasListedProjects() + const navigate = useNavigate() + const settings = useSettings() + + const useGlobalProjectNavigation = () => { + useEffect(() => { + if (!requestedProjectName.name) { + return + } + let projectPathWithoutSpecificKCLFile = + projectDirectoryPath + + window.electron.path.sep + + requestedProjectName.name + + const requestedPath = `${PATHS.FILE}/${encodeURIComponent( + projectPathWithoutSpecificKCLFile + )}` + navigate(requestedPath) + }, [requestedProjectName]) + } + + const useGlobalFileNavigation = () => { + useEffect(() => { + if (!requestedFileName.file || !requestedFileName.project) { + return + } + const projectPath = window.electron.join( + projectDirectoryPath, + requestedFileName.project + ) + const filePath = window.electron.join(projectPath, requestedFileName.file) + const requestedPath = `${PATHS.FILE}/${encodeURIComponent(filePath)}` + navigate(requestedPath) + }, [requestedFileName]) + } + + const useApplicationProjectDirectory = () => { + useEffect(() => { + systemIOActor.send({ + type: SystemIOMachineEvents.setProjectDirectoryPath, + data: { + requestedProjectDirectoryPath: + settings.app.projectDirectory.current || '', + }, + }) + }, [settings.app.projectDirectory.current]) + } + + const useDefaultProjectName = () => { + useEffect(() => { + systemIOActor.send({ + type: SystemIOMachineEvents.setDefaultProjectFolderName, + data: { + requestedDefaultProjectFolderName: + settings.projects.defaultProjectName.current || '', + }, + }) + }, [settings.projects.defaultProjectName.current]) + } + + const useWatchingApplicationProjectDirectory = () => { + useFileSystemWatcher( + async () => { + // Gotcha: Chokidar is buggy. It will emit addDir or add on files that did not get created. + // This means while the application initialize and Chokidar initializes you cannot tell if + // a directory or file is actually created or they are buggy signals. This means you must + // ignore all signals during initialization because it is ambiguous. Once those signals settle + // you can actually start listening to real signals. + // If someone creates folders or files during initialization we ignore those events! + if (!hasListedProjects) { + return + } + systemIOActor.send({ + type: SystemIOMachineEvents.readFoldersFromProjectDirectory, + }) + }, + settings.app.projectDirectory.current + ? [settings.app.projectDirectory.current] + : [] + ) + } + + useGlobalProjectNavigation() + useGlobalFileNavigation() + useApplicationProjectDirectory() + useDefaultProjectName() + useWatchingApplicationProjectDirectory() + + return null +} diff --git a/src/components/Providers/SystemIOProviderWeb.tsx b/src/components/Providers/SystemIOProviderWeb.tsx new file mode 100644 index 000000000..6c342d7e4 --- /dev/null +++ b/src/components/Providers/SystemIOProviderWeb.tsx @@ -0,0 +1,29 @@ +import { useEffect, useCallback } from 'react' +import { useClearURLParams } from '@src/machines/systemIO/hooks' +import { useSearchParams } from 'react-router-dom' +import { CREATE_FILE_URL_PARAM } from '@src/lib/constants' + +export function SystemIOMachineLogicListenerWeb() { + const clearURLParams = useClearURLParams() + const [searchParams, setSearchParams] = useSearchParams() + const clearImportSearchParams = useCallback(() => { + // Clear the search parameters related to the "Import file from URL" command + // or we'll never be able cancel or submit it. + searchParams.delete(CREATE_FILE_URL_PARAM) + searchParams.delete('code') + searchParams.delete('name') + searchParams.delete('units') + setSearchParams(searchParams) + }, [searchParams, setSearchParams]) + + const useClearQueryParams = () => { + useEffect(() => { + if (clearURLParams.value) { + clearImportSearchParams() + } + }, [clearURLParams]) + } + + useClearQueryParams() + return null +} diff --git a/src/components/RouteProvider.tsx b/src/components/RouteProvider.tsx index c118d20f5..b18f55743 100644 --- a/src/components/RouteProvider.tsx +++ b/src/components/RouteProvider.tsx @@ -18,7 +18,7 @@ import { markOnce } from '@src/lib/performance' import { loadAndValidateSettings } from '@src/lib/settings/settingsUtils' import { trap } from '@src/lib/trap' import type { IndexLoaderData } from '@src/lib/types' -import { settingsActor, useSettings } from '@src/machines/appMachine' +import { settingsActor, useSettings } from '@src/lib/singletons' export const RouteProviderContext = createContext({}) diff --git a/src/components/Settings/AllSettingsFields.tsx b/src/components/Settings/AllSettingsFields.tsx index 7eda78850..9e50f2e8e 100644 --- a/src/components/Settings/AllSettingsFields.tsx +++ b/src/components/Settings/AllSettingsFields.tsx @@ -28,7 +28,7 @@ import { } from '@src/lib/settings/settingsUtils' import { reportRejection } from '@src/lib/trap' import { toSync } from '@src/lib/utils' -import { settingsActor, useSettings } from '@src/machines/appMachine' +import { settingsActor, useSettings } from '@src/lib/singletons' import { APP_VERSION, IS_NIGHTLY, getReleaseUrl } from '@src/routes/utils' import { waitFor } from 'xstate' diff --git a/src/components/Settings/SettingsFieldInput.tsx b/src/components/Settings/SettingsFieldInput.tsx index a5a45bfa3..545c0279c 100644 --- a/src/components/Settings/SettingsFieldInput.tsx +++ b/src/components/Settings/SettingsFieldInput.tsx @@ -9,7 +9,7 @@ import type { WildcardSetEvent, } from '@src/lib/settings/settingsTypes' import { getSettingInputType } from '@src/lib/settings/settingsUtils' -import { settingsActor, useSettings } from '@src/machines/appMachine' +import { settingsActor, useSettings } from '@src/lib/singletons' interface SettingsFieldInputProps { // We don't need the fancy types here, diff --git a/src/components/Settings/SettingsSearchBar.tsx b/src/components/Settings/SettingsSearchBar.tsx index b36429fb3..40e48190f 100644 --- a/src/components/Settings/SettingsSearchBar.tsx +++ b/src/components/Settings/SettingsSearchBar.tsx @@ -8,7 +8,7 @@ import { useNavigate } from 'react-router-dom' import { CustomIcon } from '@src/components/CustomIcon' import { interactionMap } from '@src/lib/settings/initialKeybindings' import type { SettingsLevel } from '@src/lib/settings/settingsTypes' -import { useSettings } from '@src/machines/appMachine' +import { useSettings } from '@src/lib/singletons' type ExtendedSettingsLevel = SettingsLevel | 'keybindings' diff --git a/src/components/Settings/SettingsSectionsList.tsx b/src/components/Settings/SettingsSectionsList.tsx index f1fbfcfd5..e3dea57a5 100644 --- a/src/components/Settings/SettingsSectionsList.tsx +++ b/src/components/Settings/SettingsSectionsList.tsx @@ -3,7 +3,7 @@ import decamelize from 'decamelize' import type { Setting } from '@src/lib/settings/initialSettings' import type { SettingsLevel } from '@src/lib/settings/settingsTypes' import { shouldHideSetting } from '@src/lib/settings/settingsUtils' -import { useSettings } from '@src/machines/appMachine' +import { useSettings } from '@src/lib/singletons' interface SettingsSectionsListProps { searchParamTab: SettingsLevel diff --git a/src/components/ShareButton.tsx b/src/components/ShareButton.tsx index 09a6e2c1e..92bfe08a6 100644 --- a/src/components/ShareButton.tsx +++ b/src/components/ShareButton.tsx @@ -2,7 +2,7 @@ import { CustomIcon } from '@src/components/CustomIcon' import Tooltip from '@src/components/Tooltip' import usePlatform from '@src/hooks/usePlatform' import { hotkeyDisplay } from '@src/lib/hotkeyWrapper' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' import { useHotkeys } from 'react-hotkeys-hook' const shareHotkey = 'mod+alt+s' diff --git a/src/components/ToastTextToCad.tsx b/src/components/ToastTextToCad.tsx index c039acef3..bb4d8e3af 100644 --- a/src/components/ToastTextToCad.tsx +++ b/src/components/ToastTextToCad.tsx @@ -33,7 +33,7 @@ import { codeManager, kclManager } from '@src/lib/singletons' import { sendTelemetry } from '@src/lib/textToCadTelemetry' import type { Themes } from '@src/lib/theme' import { reportRejection } from '@src/lib/trap' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' import type { fileMachine } from '@src/machines/fileMachine' const CANVAS_SIZE = 128 diff --git a/src/components/UserSidebarMenu.tsx b/src/components/UserSidebarMenu.tsx index 03b32c50b..6ba8085e1 100644 --- a/src/components/UserSidebarMenu.tsx +++ b/src/components/UserSidebarMenu.tsx @@ -11,7 +11,7 @@ import { useAbsoluteFilePath } from '@src/hooks/useAbsoluteFilePath' import usePlatform from '@src/hooks/usePlatform' import { isDesktop } from '@src/lib/isDesktop' import { PATHS } from '@src/lib/paths' -import { authActor } from '@src/machines/appMachine' +import { authActor } from '@src/lib/singletons' type User = Models['User_type'] diff --git a/src/components/ViewControlMenu.tsx b/src/components/ViewControlMenu.tsx index 123131beb..e8c3ce88b 100644 --- a/src/components/ViewControlMenu.tsx +++ b/src/components/ViewControlMenu.tsx @@ -12,7 +12,7 @@ import type { AxisNames } from '@src/lib/constants' import { VIEW_NAMES_SEMANTIC } from '@src/lib/constants' import { sceneInfra } from '@src/lib/singletons' import { reportRejection } from '@src/lib/trap' -import { useSettings } from '@src/machines/appMachine' +import { useSettings } from '@src/lib/singletons' export function useViewControlMenuItems() { const { state: modelingState, send: modelingSend } = useModelingContext() diff --git a/src/hooks/useAuthNavigation.tsx b/src/hooks/useAuthNavigation.tsx index 86414a2f3..6b337fc9c 100644 --- a/src/hooks/useAuthNavigation.tsx +++ b/src/hooks/useAuthNavigation.tsx @@ -2,7 +2,7 @@ import { useEffect } from 'react' import { useLocation, useNavigate } from 'react-router-dom' import { PATHS } from '@src/lib/paths' -import { useAuthState } from '@src/machines/appMachine' +import { useAuthState } from '@src/lib/singletons' /** * A simple hook that listens to the auth state of the app and navigates diff --git a/src/hooks/useCreateFileLinkQueryWatcher.ts b/src/hooks/useCreateFileLinkQueryWatcher.ts index 1a0f8cdb0..eff918925 100644 --- a/src/hooks/useCreateFileLinkQueryWatcher.ts +++ b/src/hooks/useCreateFileLinkQueryWatcher.ts @@ -9,7 +9,7 @@ import { CREATE_FILE_URL_PARAM, DEFAULT_FILE_NAME } from '@src/lib/constants' import { isDesktop } from '@src/lib/isDesktop' import type { FileLinkParams } from '@src/lib/links' import { PATHS } from '@src/lib/paths' -import { useSettings } from '@src/machines/appMachine' +import { useSettings } from '@src/lib/singletons' // For initializing the command arguments, we actually want `method` to be undefined // so that we don't skip it in the command palette. diff --git a/src/hooks/useEngineConnectionSubscriptions.ts b/src/hooks/useEngineConnectionSubscriptions.ts index e0137c58a..860e5047e 100644 --- a/src/hooks/useEngineConnectionSubscriptions.ts +++ b/src/hooks/useEngineConnectionSubscriptions.ts @@ -27,7 +27,7 @@ import { } from '@src/lib/singletons' import { err, reportRejection } from '@src/lib/trap' import { getModuleId } from '@src/lib/utils' -import { engineStreamActor } from '@src/machines/appMachine' +import { engineStreamActor } from '@src/lib/singletons' import { EngineStreamState } from '@src/machines/engineStreamMachine' import type { EdgeCutInfo, diff --git a/src/hooks/useMenu.ts b/src/hooks/useMenu.ts index 2e7813d6a..e1d2c1124 100644 --- a/src/hooks/useMenu.ts +++ b/src/hooks/useMenu.ts @@ -2,7 +2,7 @@ import { NetworkHealthState } from '@src/hooks/useNetworkStatus' import { isDesktop } from '@src/lib/isDesktop' import type { ToolbarModeName } from '@src/lib/toolbar' import { reportRejection } from '@src/lib/trap' -import { useCommandBarState } from '@src/machines/commandBarMachine' +import { useCommandBarState } from '@src/lib/singletons' import type { MenuLabels, WebContentSendPayload } from '@src/menu/channels' import { useEffect } from 'react' diff --git a/src/hooks/useProjectsContext.ts b/src/hooks/useProjectsContext.ts deleted file mode 100644 index 2e68535a7..000000000 --- a/src/hooks/useProjectsContext.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { useContext } from 'react' - -import { ProjectsMachineContext } from '@src/components/ProjectsContextProvider' - -export const useProjectsContext = () => { - return useContext(ProjectsMachineContext) -} diff --git a/src/hooks/useResolvedTheme.ts b/src/hooks/useResolvedTheme.ts index 4f13c94cc..8778071d0 100644 --- a/src/hooks/useResolvedTheme.ts +++ b/src/hooks/useResolvedTheme.ts @@ -1,5 +1,5 @@ import { Themes, getSystemTheme } from '@src/lib/theme' -import { useSettings } from '@src/machines/appMachine' +import { useSettings } from '@src/lib/singletons' /** * Resolves the current theme based on the theme setting diff --git a/src/hooks/useStateMachineCommands.ts b/src/hooks/useStateMachineCommands.ts index 47c110092..56c29944a 100644 --- a/src/hooks/useStateMachineCommands.ts +++ b/src/hooks/useStateMachineCommands.ts @@ -12,9 +12,8 @@ import type { } from '@src/lib/commandTypes' import { createMachineCommand } from '@src/lib/createMachineCommand' import type { authMachine } from '@src/machines/authMachine' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' import type { modelingMachine } from '@src/machines/modelingMachine' -import type { projectsMachine } from '@src/machines/projectsMachine' import type { settingsMachine } from '@src/machines/settingsMachine' // This might not be necessary, AnyStateMachine from xstate is working @@ -22,7 +21,6 @@ export type AllMachines = | typeof modelingMachine | typeof settingsMachine | typeof authMachine - | typeof projectsMachine interface UseStateMachineCommandsArgs< T extends AllMachines, diff --git a/src/index.tsx b/src/index.tsx index 59d23eac4..1ae0620a2 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -13,7 +13,7 @@ import { initializeWindowExceptionHandler } from '@src/lib/exceptions' import { isDesktop } from '@src/lib/isDesktop' import { markOnce } from '@src/lib/performance' import { reportRejection } from '@src/lib/trap' -import { appActor } from '@src/machines/appMachine' +import { appActor } from '@src/lib/singletons' import reportWebVitals from '@src/reportWebVitals' markOnce('code/willAuth') diff --git a/src/lang/modifyAst/addEdgeTreatment.ts b/src/lang/modifyAst/addEdgeTreatment.ts index 0cdee28dc..bc840c50b 100644 --- a/src/lang/modifyAst/addEdgeTreatment.ts +++ b/src/lang/modifyAst/addEdgeTreatment.ts @@ -7,7 +7,6 @@ import type CodeManager from '@src/lang/codeManager' import { ARG_TAG } from '@src/lang/constants' import { createArrayExpression, - createCallExpressionStdLib, createCallExpressionStdLibKw, createLabeledArg, createLocalName, @@ -355,9 +354,9 @@ export function getEdgeTagCall( // Modify the tag based on selectionType if (artifact.type === 'sweepEdge' && artifact.subType === 'opposite') { - tagCall = createCallExpressionStdLib('getOppositeEdge', [tagCall]) + tagCall = createCallExpressionStdLibKw('getOppositeEdge', tagCall, []) } else if (artifact.type === 'sweepEdge' && artifact.subType === 'adjacent') { - tagCall = createCallExpressionStdLib('getNextAdjacentEdge', [tagCall]) + tagCall = createCallExpressionStdLibKw('getNextAdjacentEdge', tagCall, []) } return tagCall } diff --git a/src/lang/std/sketch.ts b/src/lang/std/sketch.ts index 6560db5a7..693dd567f 100644 --- a/src/lang/std/sketch.ts +++ b/src/lang/std/sketch.ts @@ -3468,23 +3468,36 @@ function addTagToChamfer( // e.g. chamfer(tags: [getOppositeEdge(tagOfInterest), tag2]) // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + // Note: Single unlabeled arg calls could be either CallExpression or + // CallExpressionKw. const tagMatchesOppositeTagType = edgeCutMeta?.subType === 'opposite' && - tag.type === 'CallExpression' && - tag.callee.name.name === 'getOppositeEdge' && - tag.arguments[0].type === 'Name' && - tag.arguments[0].name.name === edgeCutMeta.tagName + ((tag.type === 'CallExpression' && + tag.callee.name.name === 'getOppositeEdge' && + tag.arguments[0].type === 'Name' && + tag.arguments[0].name.name === edgeCutMeta.tagName) || + (tag.type === 'CallExpressionKw' && + tag.callee.name.name === 'getOppositeEdge' && + tag.unlabeled?.type === 'Name' && + tag.unlabeled.name.name === edgeCutMeta.tagName)) if (tagMatchesOppositeTagType) return true // e.g. chamfer(tags: [getNextAdjacentEdge(tagOfInterest), tag2]) // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + // Note: Single unlabeled arg calls could be either CallExpression or + // CallExpressionKw. const tagMatchesAdjacentTagType = edgeCutMeta?.subType === 'adjacent' && - tag.type === 'CallExpression' && - (tag.callee.name.name === 'getNextAdjacentEdge' || - tag.callee.name.name === 'getPrevAdjacentEdge') && - tag.arguments[0].type === 'Name' && - tag.arguments[0].name.name === edgeCutMeta.tagName + ((tag.type === 'CallExpression' && + (tag.callee.name.name === 'getNextAdjacentEdge' || + tag.callee.name.name === 'getPrevAdjacentEdge') && + tag.arguments[0].type === 'Name' && + tag.arguments[0].name.name === edgeCutMeta.tagName) || + (tag.type === 'CallExpressionKw' && + (tag.callee.name.name === 'getNextAdjacentEdge' || + tag.callee.name.name === 'getPrevAdjacentEdge') && + tag.unlabeled?.type === 'Name' && + tag.unlabeled.name.name === edgeCutMeta.tagName)) if (tagMatchesAdjacentTagType) return true return false }) diff --git a/src/lang/wasm.test.ts b/src/lang/wasm.test.ts index e8b094310..c47ec4591 100644 --- a/src/lang/wasm.test.ts +++ b/src/lang/wasm.test.ts @@ -2,7 +2,7 @@ import type { Node } from '@rust/kcl-lib/bindings/Node' import type { Program } from '@rust/kcl-lib/bindings/Program' import type { ParseResult } from '@src/lang/wasm' -import { formatNumber, parse } from '@src/lang/wasm' +import { formatNumber, parse, errFromErrWithOutputs } from '@src/lang/wasm' import { initPromise } from '@src/lang/wasmUtils' import { enginelessExecutor } from '@src/lib/testHelpers' import { err } from '@src/lib/trap' @@ -32,3 +32,15 @@ it('formats numbers with units', () => { expect(formatNumber(0.5, 'Mm')).toEqual('0.5mm') expect(formatNumber(-0.5, 'Mm')).toEqual('-0.5mm') }) + +describe('test errFromErrWithOutputs', () => { + it('converts KclErrorWithOutputs to KclError', () => { + const blob = + '{"error":{"kind":"internal","sourceRanges":[],"msg":"Cache busted"},"operations":[],"artifactCommands":[],"artifactGraph":{"map":{}},"filenames":{},"sourceFiles":{},"defaultPlanes":null}' + const error = errFromErrWithOutputs(blob) + const errorStr = JSON.stringify(error) + expect(errorStr).toEqual( + '{"kind":"internal","sourceRange":[0,0,0],"msg":"Cache busted","operations":[],"artifactCommands":[],"artifactGraph":{},"filenames":{},"defaultPlanes":null}' + ) + }) +}) diff --git a/src/lib/commandBarConfigs/authCommandConfig.ts b/src/lib/commandBarConfigs/authCommandConfig.ts index ad3f6af49..92040491e 100644 --- a/src/lib/commandBarConfigs/authCommandConfig.ts +++ b/src/lib/commandBarConfigs/authCommandConfig.ts @@ -1,26 +1,32 @@ import type { Command } from '@src/lib/commandTypes' -import { authActor } from '@src/machines/appMachine' import { ACTOR_IDS } from '@src/machines/machineConstants' import { refreshPage } from '@src/lib/utils' import { reportRejection } from '@src/lib/trap' +import type { ActorRefFrom } from 'xstate' +import type { authMachine } from '@src/machines/authMachine' -export const authCommands: Command[] = [ - { - groupId: ACTOR_IDS.AUTH, - name: 'log-out', - displayName: 'Log out', - icon: 'arrowLeft', - needsReview: false, - onSubmit: () => authActor.send({ type: 'Log out' }), - }, - { - groupId: ACTOR_IDS.AUTH, - name: 'refresh', - displayName: 'Refresh app', - icon: 'arrowRotateRight', - needsReview: false, - onSubmit: () => { - refreshPage('Command palette').catch(reportRejection) +export function createAuthCommands({ + authActor, +}: { authActor: ActorRefFrom }) { + const authCommands: Command[] = [ + { + groupId: ACTOR_IDS.AUTH, + name: 'log-out', + displayName: 'Log out', + icon: 'arrowLeft', + needsReview: false, + onSubmit: () => authActor.send({ type: 'Log out' }), }, - }, -] + { + groupId: ACTOR_IDS.AUTH, + name: 'refresh', + displayName: 'Refresh app', + icon: 'arrowRotateRight', + needsReview: false, + onSubmit: () => { + refreshPage('Command palette').catch(reportRejection) + }, + }, + ] + return authCommands +} diff --git a/src/lib/commandBarConfigs/modelingCommandConfig.ts b/src/lib/commandBarConfigs/modelingCommandConfig.ts index 35d38d049..6ef285da3 100644 --- a/src/lib/commandBarConfigs/modelingCommandConfig.ts +++ b/src/lib/commandBarConfigs/modelingCommandConfig.ts @@ -742,7 +742,6 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig< Fillet: { description: 'Fillet edge', icon: 'fillet3d', - status: 'development', needsReview: true, args: { nodeToEdit: { @@ -772,7 +771,6 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig< Chamfer: { description: 'Chamfer edge', icon: 'chamfer3d', - status: 'development', needsReview: true, args: { nodeToEdit: { diff --git a/src/lib/commandBarConfigs/namedViewsConfig.ts b/src/lib/commandBarConfigs/namedViewsConfig.ts index 997e3cd16..0c21af1c4 100644 --- a/src/lib/commandBarConfigs/namedViewsConfig.ts +++ b/src/lib/commandBarConfigs/namedViewsConfig.ts @@ -12,7 +12,7 @@ import type { Command, CommandArgumentOption } from '@src/lib/commandTypes' import { engineCommandManager } from '@src/lib/singletons' import { err, reportRejection } from '@src/lib/trap' import { uuidv4 } from '@src/lib/utils' -import { getSettings, settingsActor } from '@src/machines/appMachine' +import { getSettings, settingsActor } from '@src/lib/singletons' function isWorldCoordinateSystemType( x: string diff --git a/src/lib/commandBarConfigs/projectsCommandConfig.ts b/src/lib/commandBarConfigs/projectsCommandConfig.ts index bc6b4a7bb..5e8907b89 100644 --- a/src/lib/commandBarConfigs/projectsCommandConfig.ts +++ b/src/lib/commandBarConfigs/projectsCommandConfig.ts @@ -1,23 +1,10 @@ import { CommandBarOverwriteWarning } from '@src/components/CommandBarOverwriteWarning' -import type { StateMachineCommandSetConfig } from '@src/lib/commandTypes' import { isDesktop } from '@src/lib/isDesktop' -import type { projectsMachine } from '@src/machines/projectsMachine' - +import type { Command, CommandArgumentOption } from '@src/lib/commandTypes' +import { SystemIOMachineEvents } from '@src/machines/systemIO/utils' +import type { ActorRefFrom } from 'xstate' +import type { systemIOMachine } from '@src/machines/systemIO/systemIOMachine' export type ProjectsCommandSchema = { - 'Read projects': Record - 'Create project': { - name: string - } - 'Open project': { - name: string - } - 'Delete project': { - name: string - } - 'Rename project': { - oldName: string - newName: string - } 'Import file from URL': { name: string code?: string @@ -26,43 +13,101 @@ export type ProjectsCommandSchema = { } } -export const projectsCommandBarConfig: StateMachineCommandSetConfig< - typeof projectsMachine, - ProjectsCommandSchema -> = { - 'Open project': { +export function createProjectCommands({ + systemIOActor, +}: { + systemIOActor: ActorRefFrom +}) { + /** + * Helper functions instead of importing these due to circular deps. + * unable to resolve this in a cleaner way at the moment. + * This is safe in terms of logic but visually ugly. + * TODO: https://github.com/KittyCAD/modeling-app/issues/6032 + */ + const folderSnapshot = () => { + const { folders } = systemIOActor.getSnapshot().context + return folders + } + + const defaultProjectFolderNameSnapshot = () => { + const { defaultProjectFolderName } = systemIOActor.getSnapshot().context + return defaultProjectFolderName + } + + const openProjectCommand: Command = { icon: 'arrowRight', + name: 'Open project', + displayName: `Open project`, description: 'Open a project', - status: isDesktop() ? 'active' : 'inactive', + groupId: 'projects', + needsReview: false, + onSubmit: (record) => { + if (record) { + systemIOActor.send({ + type: SystemIOMachineEvents.navigateToProject, + data: { requestedProjectName: record.name }, + }) + } + }, args: { name: { + required: true, inputType: 'options', - required: true, - options: (_, context) => - context?.projects.map((p) => ({ - name: p.name, - value: p.name, - })) || [], + options: () => { + const folders = folderSnapshot() + const options: CommandArgumentOption[] = [] + folders.forEach((folder) => { + options.push({ + name: folder.name, + value: folder.name, + isCurrent: false, + }) + }) + return options + }, }, }, - }, - 'Create project': { - icon: 'folderPlus', + } + + const createProjectCommand: Command = { + icon: 'folder', + name: 'Create project', + displayName: `Create project`, description: 'Create a project', - status: isDesktop() ? 'active' : 'inactive', + groupId: 'projects', + needsReview: false, + onSubmit: (record) => { + if (record) { + systemIOActor.send({ + type: SystemIOMachineEvents.createProject, + data: { requestedProjectName: record.name }, + }) + } + }, args: { name: { - inputType: 'string', required: true, - defaultValueFromContext: (context) => context.defaultProjectName, + inputType: 'string', + defaultValue: defaultProjectFolderNameSnapshot, }, }, - }, - 'Delete project': { - icon: 'close', + } + + const deleteProjectCommand: Command = { + icon: 'folder', + name: 'Delete project', + displayName: `Delete project`, description: 'Delete a project', - status: isDesktop() ? 'active' : 'inactive', + groupId: 'projects', needsReview: true, + onSubmit: (record) => { + if (record) { + systemIOActor.send({ + type: SystemIOMachineEvents.deleteProject, + data: { requestedProjectName: record.name }, + }) + } + }, reviewMessage: ({ argumentsToSubmit }) => CommandBarOverwriteWarning({ heading: 'Are you sure you want to delete?', @@ -72,41 +117,83 @@ export const projectsCommandBarConfig: StateMachineCommandSetConfig< name: { inputType: 'options', required: true, - options: (_, context) => - context?.projects.map((p) => ({ - name: p.name, - value: p.name, - })) || [], + options: () => { + const folders = folderSnapshot() + const options: CommandArgumentOption[] = [] + folders.forEach((folder) => { + options.push({ + name: folder.name, + value: folder.name, + isCurrent: false, + }) + }) + return options + }, }, }, - }, - 'Rename project': { + } + + const renameProjectCommand: Command = { icon: 'folder', + name: 'Rename project', + displayName: `Rename project`, description: 'Rename a project', + groupId: 'projects', needsReview: true, - status: isDesktop() ? 'active' : 'inactive', + onSubmit: (record) => { + if (record) { + systemIOActor.send({ + type: SystemIOMachineEvents.renameProject, + data: { + requestedProjectName: record.newName, + projectName: record.oldName, + }, + }) + } + }, args: { oldName: { inputType: 'options', required: true, - options: (_, context) => - context?.projects.map((p) => ({ - name: p.name, - value: p.name, - })) || [], + options: () => { + const folders = folderSnapshot() + const options: CommandArgumentOption[] = [] + folders.forEach((folder) => { + options.push({ + name: folder.name, + value: folder.name, + isCurrent: false, + }) + }) + return options + }, }, newName: { inputType: 'string', required: true, - defaultValueFromContext: (context) => context.defaultProjectName, + defaultValue: defaultProjectFolderNameSnapshot, }, }, - }, - 'Import file from URL': { + } + + const importFileFromURL: Command = { + name: 'Import file from URL', + groupId: 'projects', icon: 'file', description: 'Create a file', needsReview: true, - status: 'active', + onSubmit: (record) => { + if (record) { + systemIOActor.send({ + type: SystemIOMachineEvents.importFileFromURL, + data: { + requestedProjectName: record.projectName, + requestedCode: record.code, + requestedFileName: record.name, + }, + }) + } + }, args: { method: { inputType: 'options', @@ -134,11 +221,18 @@ export const projectsCommandBarConfig: StateMachineCommandSetConfig< isDesktop() && commandsContext.argumentsToSubmit.method === 'existingProject', skip: true, - options: (_, context) => - context?.projects.map((p) => ({ - name: p.name, - value: p.name, - })) || [], + options: (_, context) => { + const folders = folderSnapshot() + const options: CommandArgumentOption[] = [] + folders.forEach((folder) => { + options.push({ + name: folder.name, + value: folder.name, + isCurrent: false, + }) + }) + return options + }, }, name: { inputType: 'string', @@ -168,5 +262,18 @@ export const projectsCommandBarConfig: StateMachineCommandSetConfig< }".` : `Will overwrite the contents of the current file with the contents from the URL.` }, - }, + } + + /** No disk-writing commands are available in the browser */ + const projectCommands = isDesktop() + ? [ + openProjectCommand, + createProjectCommand, + deleteProjectCommand, + renameProjectCommand, + importFileFromURL, + ] + : [importFileFromURL] + + return projectCommands } diff --git a/src/lib/desktop.ts b/src/lib/desktop.ts index 94de380fe..d4fd0bae2 100644 --- a/src/lib/desktop.ts +++ b/src/lib/desktop.ts @@ -85,10 +85,23 @@ export async function ensureProjectDirectoryExists( return projectDir } +export async function mkdirOrNOOP(directoryPath: string) { + try { + await window.electron.stat(directoryPath) + } catch (e) { + if (e === 'ENOENT') { + await window.electron.mkdir(directoryPath, { recursive: true }) + } + } + + return directoryPath +} + export async function createNewProjectDirectory( projectName: string, initialCode?: string, - configuration?: DeepPartial | Error + configuration?: DeepPartial | Error, + initialFileName?: string ): Promise { if (!configuration) { configuration = await readAppSettingsFile() @@ -114,7 +127,8 @@ export async function createNewProjectDirectory( } } - const projectFile = window.electron.path.join(projectDir, PROJECT_ENTRYPOINT) + const kclFileName = initialFileName || PROJECT_ENTRYPOINT + const projectFile = window.electron.path.join(projectDir, kclFileName) // When initialCode is present, we're loading existing code. If it's not // present, we're creating a new project, and we want to incorporate the // user's settings. diff --git a/src/lib/routeLoaders.ts b/src/lib/routeLoaders.ts index 8d547e366..de46b4c4a 100644 --- a/src/lib/routeLoaders.ts +++ b/src/lib/routeLoaders.ts @@ -20,7 +20,7 @@ import type { HomeLoaderData, IndexLoaderData, } from '@src/lib/types' -import { settingsActor } from '@src/machines/appMachine' +import { settingsActor } from '@src/lib/singletons' export const telemetryLoader: LoaderFunction = async ({ params, diff --git a/src/lib/selections.ts b/src/lib/selections.ts index 428df0f5e..2de46904d 100644 --- a/src/lib/selections.ts +++ b/src/lib/selections.ts @@ -43,7 +43,7 @@ import { isOverlap, uuidv4, } from '@src/lib/utils' -import { engineStreamActor } from '@src/machines/appMachine' +import { engineStreamActor } from '@src/lib/singletons' import type { ModelingMachineEvent } from '@src/machines/modelingMachine' import { showUnsupportedSelectionToast } from '@src/components/ToastUnsupportedSelection' diff --git a/src/lib/settings/settingsUtils.ts b/src/lib/settings/settingsUtils.ts index fe78ff1bb..93d340fc2 100644 --- a/src/lib/settings/settingsUtils.ts +++ b/src/lib/settings/settingsUtils.ts @@ -191,7 +191,7 @@ export function readLocalStorageAppSettingsFile(): } } -function readLocalStorageProjectSettingsFile(): +export function readLocalStorageProjectSettingsFile(): | DeepPartial | Error { // TODO: Remove backwards compatibility after a few releases. @@ -456,7 +456,8 @@ export function getSettingInputType(setting: Setting) { export const jsAppSettings = async () => { let jsAppSettings = default_app_settings() if (!TEST) { - const settings = await import('@src/machines/appMachine').then((module) => + // TODO: https://github.com/KittyCAD/modeling-app/issues/6445 + const settings = await import('@src/lib/singletons').then((module) => module.getSettings() ) if (settings) { diff --git a/src/lib/singletons.ts b/src/lib/singletons.ts index 7ff9134d0..c81c331a0 100644 --- a/src/lib/singletons.ts +++ b/src/lib/singletons.ts @@ -9,6 +9,26 @@ import { SceneEntities } from '@src/clientSideScene/sceneEntities' import { SceneInfra } from '@src/clientSideScene/sceneInfra' import type { BaseUnit } from '@src/lib/settings/settingsTypes' +import { useSelector } from '@xstate/react' +import type { SnapshotFrom } from 'xstate' +import { createActor, setup, assign } from 'xstate' + +import { isDesktop } from '@src/lib/isDesktop' +import { createSettings } from '@src/lib/settings/initialSettings' +import { authMachine } from '@src/machines/authMachine' +import { + engineStreamContextCreate, + engineStreamMachine, +} from '@src/machines/engineStreamMachine' +import { ACTOR_IDS } from '@src/machines/machineConstants' +import { settingsMachine } from '@src/machines/settingsMachine' +import { systemIOMachineDesktop } from '@src/machines/systemIO/systemIOMachineDesktop' +import { systemIOMachineWeb } from '@src/machines/systemIO/systemIOMachineWeb' +import type { AppMachineContext } from '@src/lib/types' +import { createAuthCommands } from '@src/lib/commandBarConfigs/authCommandConfig' +import { commandBarMachine } from '@src/machines/commandBarMachine' +import { createProjectCommands } from '@src/lib/commandBarConfigs/projectsCommandConfig' + export const codeManager = new CodeManager() export const engineCommandManager = new EngineCommandManager() export const rustContext = new RustContext(engineCommandManager) @@ -90,3 +110,122 @@ if (typeof window !== 'undefined') { }, }) } +const { AUTH, SETTINGS, SYSTEM_IO, ENGINE_STREAM, COMMAND_BAR } = ACTOR_IDS +const appMachineActors = { + [AUTH]: authMachine, + [SETTINGS]: settingsMachine, + [SYSTEM_IO]: isDesktop() ? systemIOMachineDesktop : systemIOMachineWeb, + [ENGINE_STREAM]: engineStreamMachine, + [COMMAND_BAR]: commandBarMachine, +} as const + +const appMachine = setup({ + types: {} as { + context: AppMachineContext + }, + actors: appMachineActors, +}).createMachine({ + id: 'modeling-app', + context: { + codeManager: codeManager, + kclManager: kclManager, + engineCommandManager: engineCommandManager, + sceneInfra: sceneInfra, + sceneEntitiesManager: sceneEntitiesManager, + }, + entry: [ + /** + * We originally wanted to use spawnChild but the inferred type blew up. The more children we + * created the type complexity went through the roof. This functionally should act the same. + * the system and parent internals are tracked properly. After reading the documentation + * it suggests either method but this method requires manual clean up as described in the gotcha + * comment block below. If this becomes an issue we can always move this spawn into createActor functions + * in javascript above and reference those directly but the system and parent internals within xstate + * will not work. + */ + assign({ + // Gotcha, if you use spawn, make sure you remove the ActorRef from context + // to prevent memory leaks when the spawned actor is no longer needed + authActor: ({ spawn }) => spawn(AUTH, { id: AUTH, systemId: AUTH }), + settingsActor: ({ spawn }) => + spawn(SETTINGS, { + id: SETTINGS, + systemId: SETTINGS, + input: createSettings(), + }), + systemIOActor: ({ spawn }) => + spawn(SYSTEM_IO, { id: SYSTEM_IO, systemId: SYSTEM_IO }), + engineStreamActor: ({ spawn }) => + spawn(ENGINE_STREAM, { + id: ENGINE_STREAM, + systemId: ENGINE_STREAM, + input: engineStreamContextCreate(), + }), + commandBarActor: ({ spawn }) => + spawn(COMMAND_BAR, { + id: COMMAND_BAR, + systemId: COMMAND_BAR, + input: { + commands: [], + }, + }), + }), + ], +}) + +export const appActor = createActor(appMachine, { + systemId: 'root', +}) + +/** + * GOTCHA: the type coercion of this actor works because it is spawned for + * the lifetime of {appActor}, but would not work if it were invoked + * or if it were destroyed under any conditions during {appActor}'s life + */ +export const authActor = appActor.getSnapshot().context.authActor! +export const useAuthState = () => useSelector(authActor, (state) => state) +export const useToken = () => + useSelector(authActor, (state) => state.context.token) +export const useUser = () => + useSelector(authActor, (state) => state.context.user) + +/** + * GOTCHA: the type coercion of this actor works because it is spawned for + * the lifetime of {appActor}, but would not work if it were invoked + * or if it were destroyed under any conditions during {appActor}'s life + */ +export const settingsActor = appActor.getSnapshot().context.settingsActor! +export const getSettings = () => { + const { currentProject: _, ...settings } = settingsActor.getSnapshot().context + return settings +} +export const useSettings = () => + useSelector(settingsActor, (state) => { + // We have to peel everything that isn't settings off + const { currentProject, ...settings } = state.context + return settings + }) + +export const systemIOActor = appActor.getSnapshot().context.systemIOActor! + +export const engineStreamActor = + appActor.getSnapshot().context.engineStreamActor! + +export const commandBarActor = appActor.getSnapshot().context.commandBarActor! + +const cmdBarStateSelector = (state: SnapshotFrom) => + state +export const useCommandBarState = () => { + return useSelector(commandBarActor, cmdBarStateSelector) +} + +// Initialize global commands +commandBarActor.send({ + type: 'Add commands', + data: { + commands: [ + ...createAuthCommands({ authActor }), + ...createProjectCommands({ systemIOActor }), + ], + }, +}) diff --git a/src/lib/toolbar.ts b/src/lib/toolbar.ts index e027a9e22..f3909d0d7 100644 --- a/src/lib/toolbar.ts +++ b/src/lib/toolbar.ts @@ -4,7 +4,7 @@ import type { EventFrom, StateFrom } from 'xstate' import type { CustomIconName } from '@src/components/CustomIcon' import { createLiteral } from '@src/lang/create' import { isDesktop } from '@src/lib/isDesktop' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' import type { modelingMachine } from '@src/machines/modelingMachine' import { isEditingExistingSketch, @@ -190,7 +190,7 @@ export const toolbarConfig: Record = { data: { name: 'Fillet', groupId: 'modeling' }, }), icon: 'fillet3d', - status: DEV || IS_NIGHTLY_OR_DEBUG ? 'available' : 'kcl-only', + status: 'available', title: 'Fillet', hotkey: 'F', description: 'Round the edges of a 3D solid.', @@ -204,7 +204,7 @@ export const toolbarConfig: Record = { data: { name: 'Chamfer', groupId: 'modeling' }, }), icon: 'chamfer3d', - status: DEV || IS_NIGHTLY_OR_DEBUG ? 'available' : 'kcl-only', + status: 'available', title: 'Chamfer', hotkey: 'C', description: 'Bevel the edges of a 3D solid.', @@ -492,37 +492,6 @@ export const toolbarConfig: Record = { { id: 'arcs', array: [ - { - id: 'tangential-arc', - onClick: ({ modelingState, modelingSend }) => - modelingSend({ - type: 'change tool', - data: { - tool: !modelingState.matches({ Sketch: 'Tangential arc to' }) - ? 'tangentialArc' - : 'none', - }, - }), - icon: 'arc', - status: 'available', - disabled: (state) => - (!isEditingExistingSketch(state.context) && - !state.matches({ Sketch: 'Tangential arc to' })) || - pipeHasCircle(state.context), - disabledReason: (state) => - !isEditingExistingSketch(state.context) && - !state.matches({ Sketch: 'Tangential arc to' }) - ? "Cannot start a tangential arc because there's no previous line to be tangential to. Try drawing a line first or selecting an existing sketch to edit." - : undefined, - title: 'Tangential Arc', - hotkey: (state) => - state.matches({ Sketch: 'Tangential arc to' }) - ? ['Esc', 'A'] - : 'A', - description: 'Start drawing an arc tangent to the current segment', - links: [], - isActive: (state) => state.matches({ Sketch: 'Tangential arc to' }), - }, { id: 'three-point-arc', onClick: ({ modelingState, modelingSend }) => @@ -554,6 +523,37 @@ export const toolbarConfig: Record = { isActive: (state) => state.matches({ Sketch: 'Arc three point tool' }), }, + { + id: 'tangential-arc', + onClick: ({ modelingState, modelingSend }) => + modelingSend({ + type: 'change tool', + data: { + tool: !modelingState.matches({ Sketch: 'Tangential arc to' }) + ? 'tangentialArc' + : 'none', + }, + }), + icon: 'arc', + status: 'available', + disabled: (state) => + (!isEditingExistingSketch(state.context) && + !state.matches({ Sketch: 'Tangential arc to' })) || + pipeHasCircle(state.context), + disabledReason: (state) => + !isEditingExistingSketch(state.context) && + !state.matches({ Sketch: 'Tangential arc to' }) + ? "Cannot start a tangential arc because there's no previous line to be tangential to. Try drawing a line first or selecting an existing sketch to edit." + : undefined, + title: 'Tangential Arc', + hotkey: (state) => + state.matches({ Sketch: 'Tangential arc to' }) + ? ['Esc', 'A'] + : 'A', + description: 'Start drawing an arc tangent to the current segment', + links: [], + isActive: (state) => state.matches({ Sketch: 'Tangential arc to' }), + }, { id: 'arc', onClick: ({ modelingState, modelingSend }) => diff --git a/src/lib/types.ts b/src/lib/types.ts index 230a09381..db1056360 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -1,4 +1,15 @@ import type { FileEntry, Project } from '@src/lib/project' +import type CodeManager from '@src/lang/codeManager' +import type { EngineCommandManager } from '@src/lang/std/engineConnection' +import type { KclManager } from '@src/lang/KclSingleton' +import type { SceneInfra } from '@src/clientSideScene/sceneInfra' +import type { SceneEntities } from '@src/clientSideScene/sceneEntities' +import type { engineStreamMachine } from '@src/machines/engineStreamMachine' +import type { authMachine } from '@src/machines/authMachine' +import type { settingsMachine } from '@src/machines/settingsMachine' +import type { systemIOMachine } from '@src/machines/systemIO/systemIOMachine' +import type { ActorRefFrom } from 'xstate' +import type { commandBarMachine } from '@src/machines/commandBarMachine' export type IndexLoaderData = { code: string | null @@ -111,3 +122,16 @@ export type AsyncFn any> = WithReturnType< F, Promise > + +export type AppMachineContext = { + codeManager: CodeManager + kclManager: KclManager + engineCommandManager: EngineCommandManager + sceneInfra: SceneInfra + sceneEntitiesManager: SceneEntities + authActor?: ActorRefFrom + settingsActor?: ActorRefFrom + systemIOActor?: ActorRefFrom + engineStreamActor?: ActorRefFrom + commandBarActor?: ActorRefFrom +} diff --git a/src/machines/appMachine.ts b/src/machines/appMachine.ts deleted file mode 100644 index fc85a1e37..000000000 --- a/src/machines/appMachine.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { useSelector } from '@xstate/react' -import { createActor, setup, spawnChild } from 'xstate' - -import { createSettings } from '@src/lib/settings/initialSettings' -import { authMachine } from '@src/machines/authMachine' -import type { EngineStreamActor } from '@src/machines/engineStreamMachine' -import { - engineStreamContextCreate, - engineStreamMachine, -} from '@src/machines/engineStreamMachine' -import { ACTOR_IDS } from '@src/machines/machineConstants' -import { settingsMachine } from '@src/machines/settingsMachine' - -const { AUTH, SETTINGS, ENGINE_STREAM } = ACTOR_IDS -const appMachineActors = { - [AUTH]: authMachine, - [SETTINGS]: settingsMachine, - [ENGINE_STREAM]: engineStreamMachine, -} as const - -const appMachine = setup({ - types: {} as { - children: { - auth: typeof AUTH - settings: typeof SETTINGS - } - }, - actors: appMachineActors, -}).createMachine({ - id: 'modeling-app', - entry: [ - spawnChild(AUTH, { id: AUTH, systemId: AUTH }), - spawnChild(SETTINGS, { - id: SETTINGS, - systemId: SETTINGS, - input: createSettings(), - }), - spawnChild(ENGINE_STREAM, { - id: ENGINE_STREAM, - systemId: ENGINE_STREAM, - input: engineStreamContextCreate(), - }), - ], -}) - -export const appActor = createActor(appMachine) -/** - * GOTCHA: the type coercion of this actor works because it is spawned for - * the lifetime of {appActor}, but would not work if it were invoked - * or if it were destroyed under any conditions during {appActor}'s life - */ -export const authActor = appActor.getSnapshot().children.auth! -export const useAuthState = () => useSelector(authActor, (state) => state) -export const useToken = () => - useSelector(authActor, (state) => state.context.token) -export const useUser = () => - useSelector(authActor, (state) => state.context.user) - -/** - * GOTCHA: the type coercion of this actor works because it is spawned for - * the lifetime of {appActor}, but would not work if it were invoked - * or if it were destroyed under any conditions during {appActor}'s life - */ -export const settingsActor = appActor.getSnapshot().children.settings! -export const getSettings = () => { - const { currentProject: _, ...settings } = settingsActor.getSnapshot().context - return settings -} -export const useSettings = () => - useSelector(settingsActor, (state) => { - // We have to peel everything that isn't settings off - const { currentProject, ...settings } = state.context - return settings - }) - -export const engineStreamActor = appActor.system.get( - ENGINE_STREAM -) as EngineStreamActor diff --git a/src/machines/authMachine.ts b/src/machines/authMachine.ts index 7061128bf..0f69597e1 100644 --- a/src/machines/authMachine.ts +++ b/src/machines/authMachine.ts @@ -78,9 +78,7 @@ export const authMachine = setup({ getUser: fromPromise(({ input }: { input: { token?: string } }) => getUser(input) ), - logout: fromPromise(async () => - isDesktop() ? writeTokenFile('') : logout() - ), + logout: fromPromise(logout), }, }).createMachine({ /** @xstate-layout N4IgpgJg5mDOIC5QEECuAXAFgOgMabFwGsBJAMwBkB7KGCEgOwGIIqGxsBLBgNyqI75CRALQAbGnRHcA2gAYAuolAAHKrE7pObZSAAeiAIwAWQ9gBspuQCYAnAGYAHPYCsx+4ccAaEAE9E1q7YcoZyxrYR1m7mcrYAvnE+aFh4BMTk1LSQjExgAE55VHnYKmIAhuhkRQC2qcLikpDSDPJKSCBqGlo67QYI9gDs5tge5o6h5vau7oY+-v3mA9jWco4u5iu21ua2YcYJSRg4Eln0zJkABFQYrbqdmtoMun2GA7YjxuPmLqvGNh5zRCfJaOcyLUzuAYuFyGcwHEDJY6NCAAeQwTEuskUd3UDx6oD6Im2wUcAzkMJ2cjBxlMgIWLmwZLWljecjJTjh8IYVAgcF0iJxXUez0QIgGxhJZIpu2ptL8AWwtje1nCW2iq1shns8MRdXSlGRjEFeKevUQjkcy3sqwGHimbg83nlCF22GMytVUWMMUc8USCKO2BOdCN7Xu3VNBKMKsVFp2hm2vu+1id83slkVrgTxhcW0pNJ1geDkDR6GNEZFCAT1kZZLk9cMLltb0WdPMjewjjC1mzOZCtk5CSAA */ @@ -254,7 +252,11 @@ async function getAndSyncStoredToken(input: { async function logout() { localStorage.removeItem(TOKEN_PERSIST_KEY) - if (isDesktop()) return Promise.resolve(null) + if (isDesktop()) { + await writeTokenFile('') + return Promise.resolve(null) + } + return fetch(withBaseUrl('/logout'), { method: 'POST', credentials: 'include', diff --git a/src/machines/commandBarMachine.ts b/src/machines/commandBarMachine.ts index 6149c7d55..088bc547b 100644 --- a/src/machines/commandBarMachine.ts +++ b/src/machines/commandBarMachine.ts @@ -1,10 +1,6 @@ -import { useSelector } from '@xstate/react' import toast from 'react-hot-toast' -import type { SnapshotFrom } from 'xstate' -import { assign, createActor, fromPromise, setup } from 'xstate' - +import { assign, fromPromise, setup } from 'xstate' import type { MachineManager } from '@src/components/MachineManagerProvider' -import { authCommands } from '@src/lib/commandBarConfigs/authCommandConfig' import type { Command, CommandArgument, @@ -658,16 +654,3 @@ function sortCommands(a: Command, b: Command) { if (a.groupId === 'settings' && !(b.groupId === 'settings')) return 1 return a.name.localeCompare(b.name) } - -export const commandBarActor = createActor(commandBarMachine, { - input: { - commands: [...authCommands], - }, -}).start() - -/** Basic state snapshot selector */ -const cmdBarStateSelector = (state: SnapshotFrom) => - state -export const useCommandBarState = () => { - return useSelector(commandBarActor, cmdBarStateSelector) -} diff --git a/src/machines/engineStreamMachine.ts b/src/machines/engineStreamMachine.ts index 04b656bee..69ac02e1a 100644 --- a/src/machines/engineStreamMachine.ts +++ b/src/machines/engineStreamMachine.ts @@ -1,7 +1,7 @@ -import { engineCommandManager, sceneInfra } from '@src/lib/singletons' import type { MutableRefObject } from 'react' import type { ActorRefFrom } from 'xstate' import { assign, fromPromise, setup } from 'xstate' +import type { AppMachineContext } from '@src/lib/types' export enum EngineStreamState { Off = 'off', @@ -79,9 +79,13 @@ export const engineStreamMachine = setup({ actors: { [EngineStreamTransition.Play]: fromPromise( async ({ - input: { context, params }, + input: { context, params, rootContext }, }: { - input: { context: EngineStreamContext; params: { zoomToFit: boolean } } + input: { + context: EngineStreamContext + params: { zoomToFit: boolean } + rootContext: AppMachineContext + } }) => { const canvas = context.canvasRef.current if (!canvas) return false @@ -98,7 +102,7 @@ export const engineStreamMachine = setup({ return } - await sceneInfra.camControls.restoreRemoteCameraStateAndTriggerSync() + await rootContext.sceneInfra.camControls.restoreRemoteCameraStateAndTriggerSync() video.style.display = 'block' canvas.style.display = 'none' @@ -108,9 +112,9 @@ export const engineStreamMachine = setup({ ), [EngineStreamTransition.Pause]: fromPromise( async ({ - input: { context }, + input: { context, rootContext }, }: { - input: { context: EngineStreamContext } + input: { context: EngineStreamContext; rootContext: AppMachineContext } }) => { const video = context.videoRef.current if (!video) return @@ -123,7 +127,7 @@ export const engineStreamMachine = setup({ await holdOntoVideoFrameInCanvas(video, canvas) video.style.display = 'none' - await sceneInfra.camControls.saveRemoteCameraState() + await rootContext.sceneInfra.camControls.saveRemoteCameraState() // Make sure we're on the next frame for no flickering between canvas // and the video elements. @@ -138,16 +142,20 @@ export const engineStreamMachine = setup({ context.mediaStream = null video.srcObject = null - engineCommandManager.tearDown({ idleMode: true }) + rootContext.engineCommandManager.tearDown({ idleMode: true }) })() ) } ), [EngineStreamTransition.StartOrReconfigureEngine]: fromPromise( async ({ - input: { context, event }, + input: { context, event, rootContext }, }: { - input: { context: EngineStreamContext; event: any } + input: { + context: EngineStreamContext + event: any + rootContext: AppMachineContext + } }) => { if (!context.authToken) return @@ -172,10 +180,10 @@ export const engineStreamMachine = setup({ ...event.settings, } - engineCommandManager.settings = settingsNext + rootContext.engineCommandManager.settings = settingsNext window.requestAnimationFrame(() => { - engineCommandManager.start({ + rootContext.engineCommandManager.start({ setMediaStream: event.onMediaStream, setIsStreamReady: (isStreamReady: boolean) => { event.setAppState({ isStreamReady }) @@ -225,7 +233,12 @@ export const engineStreamMachine = setup({ reenter: true, invoke: { src: EngineStreamTransition.StartOrReconfigureEngine, - input: (args) => args, + input: (args) => ({ + context: args.context, + rootContext: args.self.system.get('root').getSnapshot().context, + params: { zoomToFit: args.context.zoomToFit }, + event: args.event, + }), }, on: { // Transition requested by engineConnection @@ -246,6 +259,7 @@ export const engineStreamMachine = setup({ src: EngineStreamTransition.Play, input: (args) => ({ context: args.context, + rootContext: args.self.system.get('root').getSnapshot().context, params: { zoomToFit: args.context.zoomToFit }, }), }, @@ -261,7 +275,11 @@ export const engineStreamMachine = setup({ [EngineStreamState.Reconfiguring]: { invoke: { src: EngineStreamTransition.StartOrReconfigureEngine, - input: (args) => args, + input: (args) => ({ + context: args.context, + rootContext: args.self.system.get('root').getSnapshot().context, + event: args.event, + }), onDone: { target: EngineStreamState.Playing, }, @@ -270,7 +288,10 @@ export const engineStreamMachine = setup({ [EngineStreamState.Paused]: { invoke: { src: EngineStreamTransition.Pause, - input: (args) => args, + input: (args) => ({ + context: args.context, + rootContext: args.self.system.get('root').getSnapshot().context, + }), }, on: { [EngineStreamTransition.StartOrReconfigureEngine]: { @@ -282,7 +303,11 @@ export const engineStreamMachine = setup({ reenter: true, invoke: { src: EngineStreamTransition.StartOrReconfigureEngine, - input: (args) => args, + input: (args) => ({ + context: args.context, + rootContext: args.self.system.get('root').getSnapshot().context, + event: args.event, + }), }, on: { // The stream can be paused as it's resuming. diff --git a/src/machines/featureTreeMachine.ts b/src/machines/featureTreeMachine.ts index f3942c3ca..7310d3bf2 100644 --- a/src/machines/featureTreeMachine.ts +++ b/src/machines/featureTreeMachine.ts @@ -20,7 +20,7 @@ import { } from '@src/lib/operations' import { kclManager } from '@src/lib/singletons' import { err } from '@src/lib/trap' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { commandBarActor } from '@src/lib/singletons' type FeatureTreeEvent = | { diff --git a/src/machines/fileMachine.ts b/src/machines/fileMachine.ts index a200226c5..06616ee1d 100644 --- a/src/machines/fileMachine.ts +++ b/src/machines/fileMachine.ts @@ -10,6 +10,7 @@ type FileMachineContext = { type FileMachineEvents = | { type: 'Open file'; data: { name: string } } + | { type: 'Open file in new window'; data: { name: string } } | { type: 'Rename file' data: { oldName: string; newName: string; isDir: boolean } @@ -95,6 +96,7 @@ export const fileMachine = setup({ }, }), navigateToFile: () => {}, + openFileInNewWindow: () => {}, renameToastSuccess: () => {}, createToastSuccess: () => {}, toastSuccess: () => {}, @@ -213,6 +215,10 @@ export const fileMachine = setup({ target: 'Opening file', }, + 'Open file in new window': { + target: 'Opening file in new window', + }, + 'Set selected directory': { target: 'Has files', actions: ['setSelectedDirectory'], @@ -400,6 +406,10 @@ export const fileMachine = setup({ entry: ['navigateToFile'], }, + 'Opening file in new window': { + entry: ['openFileInNewWindow'], + }, + 'Creating file': { invoke: { src: 'createFile', diff --git a/src/machines/machineConstants.ts b/src/machines/machineConstants.ts index 50986d3a3..399b7961c 100644 --- a/src/machines/machineConstants.ts +++ b/src/machines/machineConstants.ts @@ -1,5 +1,7 @@ export const ACTOR_IDS = { AUTH: 'auth', SETTINGS: 'settings', + SYSTEM_IO: 'systemIO', ENGINE_STREAM: 'engine_stream', + COMMAND_BAR: 'command_bar', } as const diff --git a/src/machines/projectsMachine.ts b/src/machines/projectsMachine.ts deleted file mode 100644 index 1be6a2d71..000000000 --- a/src/machines/projectsMachine.ts +++ /dev/null @@ -1,337 +0,0 @@ -import { assign, fromPromise, setup } from 'xstate' - -import type { ProjectsCommandSchema } from '@src/lib/commandBarConfigs/projectsCommandConfig' -import type { Project } from '@src/lib/project' -import { isArray } from '@src/lib/utils' - -export const projectsMachine = setup({ - types: { - context: {} as { - projects: Project[] - defaultProjectName: string - defaultDirectory: string - hasListedProjects: boolean - }, - events: {} as - | { type: 'Read projects'; data: ProjectsCommandSchema['Read projects'] } - | { type: 'Open project'; data: ProjectsCommandSchema['Open project'] } - | { - type: 'Rename project' - data: ProjectsCommandSchema['Rename project'] - } - | { - type: 'Create project' - data: ProjectsCommandSchema['Create project'] - } - | { - type: 'Delete project' - data: ProjectsCommandSchema['Delete project'] - } - | { - type: 'Import file from URL' - data: ProjectsCommandSchema['Import file from URL'] - } - | { type: 'navigate'; data: { name: string } } - | { - type: 'xstate.done.actor.read-projects' - output: Project[] - } - | { - type: 'xstate.done.actor.delete-project' - output: { message: string; name: string } - } - | { - type: 'xstate.done.actor.create-project' - output: { message: string; name: string } - } - | { - type: 'xstate.done.actor.rename-project' - output: { message: string; oldName: string; newName: string } - } - | { - type: 'xstate.done.actor.create-file' - output: { message: string; projectName: string; fileName: string } - } - | { type: 'assign'; data: { [key: string]: any } }, - input: {} as { - projects: Project[] - defaultProjectName: string - defaultDirectory: string - hasListedProjects: boolean - }, - }, - actions: { - setProjects: assign({ - projects: ({ context, event }) => - 'output' in event && isArray(event.output) - ? event.output - : context.projects, - }), - setHasListedProjects: assign({ - hasListedProjects: () => true, - }), - toastSuccess: () => {}, - toastError: () => {}, - navigateToProject: () => {}, - navigateToProjectIfNeeded: () => {}, - navigateToFile: () => {}, - }, - actors: { - readProjects: fromPromise(() => Promise.resolve([] as Project[])), - createProject: fromPromise( - (_: { input: { name: string; projects: Project[] } }) => - Promise.resolve({ message: '' }) - ), - renameProject: fromPromise( - (_: { - input: { - oldName: string - newName: string - defaultProjectName: string - defaultDirectory: string - projects: Project[] - } - }) => - Promise.resolve({ - message: '', - oldName: '', - newName: '', - }) - ), - deleteProject: fromPromise( - (_: { input: { defaultDirectory: string; name: string } }) => - Promise.resolve({ - message: '', - name: '', - }) - ), - createFile: fromPromise( - (_: { - input: ProjectsCommandSchema['Import file from URL'] & { - projects: Project[] - } - }) => Promise.resolve({ message: '', projectName: '', fileName: '' }) - ), - }, - guards: { - 'Has at least 1 project': ({ event }) => { - if (event.type !== 'xstate.done.actor.read-projects') return false - return event.output.length ? event.output.length >= 1 : false - }, - }, -}).createMachine({ - /** @xstate-layout N4IgpgJg5mDOIC5QAkD2BbMACdBDAxgBYCWAdmAMS6yzFSkDaADALqKgAOqtALsaqXYgAHogAsAJgA0IAJ6IAjAHYAbADoArBJVMFTCQA4mTAMwmxAXwsy0mHARLkKASXRcATjywAzYgBtsb3cMLABVACUAGWY2JBAuXn5BONEESRl5BAUFFQM1HQUxJSYATmyFAyUTKxsMbDwiMjA1ZGosUlQsDmCAKzB8HlgKcLBcCC7e-sGYoQTiPgEhVIUy9SKSiQ0NEwkclRyMxGKJNRKlMRVDU23zpRqQW3qHJpa2jonUPoGhgGF3UZ42G6nymMzicwWyVAyzKJzECg0OiYGjERhK+kOWUMSlOGiUlTEJlMxRKBnuj3sjXIr1gHy+g2Go3GwPpsDBnG48ySS0QGj0+Q0JTOGkqBg2JhKmNRJy2OyUEn0Kml5LqlMczVatJZUyGI1IuDs2oG7PinMhPIQfKYAqFShF+PFkrkRwkYjU8OUShKKhMKg0pUs1geqoa6ppdJ1FD+AKBk2NrFmZu5KV5-L9tvtYokEsxelRagUCoMiMumyUdpVdlDL01Ee+FAAImAAoC6zwTRDk9DU9b08LRY7MWd1AZcoS-aoLiYFJWnlSNW0jQyAPIcMCkNsdpOLFOWtOC-sO7NOzLbGWFbY6acmFESWdql7R3B8UhQNsUCACZpkABuqAA1s0+D-M+YAALRLluiQ7t2WRMGIbryjeBgGBIEglNsCi5sY6hMOchQqEoCLFCh97VtST4vm+S4UGA7jBO4agcH4z7eKg7joGowExhBcbtgm4LblCIiKPBiHZiKqHoZhuaFhoBbGMYBhiPBCgStUQYUuRzR6gaZDUXxH5fmov4Ac0-z6pgvEgvGsQctBwnLGJahIZJaEYdOmKEfJuQSoRRKSRcZHPNSunoPp750QxTEsTwbEcWoFkGuBkECfZXIwSJcEIS5Ekoe5MnOggXqIaUqFiiUhIInemkhiFzRNi2EU0Z+1KmYBagQM2YCAtZ9JQRljmiTlrn5dJnlFShOLwcpZjKBs+KBrUVb1WojU9c1hlRexMWsexnFdS2KV8QN5q7laNqHlmOaTcpmjoWc8L6HoYrBfOagjGMm02QyrXfqQf4dSBEB9Tqp1dllebichUkeVhRXTiU+QecUKhCps4pvWGn0QN9rJGW1ANmYlTKg98DAKHZpoORanoyqh8oImU3pKJifJ5Ohdr7CYqjIvKWMvDjeORttjHMXtCXA2T0xpdTg20+W9MSIzgorIRXlpr6ORbPs+jwQLFEgVRPj+JQf0mUTHXcaBYG+AE4OZcsxbuts5hbCK+zFmImJgSc5zPV6BQVD6RQG80lERXblCi7tcX7VxRvgVHDtDQgaE4vK2gXKiTA6ItubmJo8IoqOylERUVhBh0XXwHEWn1YmNO7mBKg+2KpzK2IpIBUwBhqUtwYre9tbvEutfpWdsFFnkPpVJnQqz15Ozur36FoypREbGH4Zj438u7tO1qIu5qK5PBGyYjebpEkS44e9oVTbxHr5tnvk9ZeXajTuW+zaHNuzYRUmoeCEp-RKlUHJbeYVhYDDfhDVIxR5IGGnISQk6E+6EkxMUBQX9c66EMMg3Q5Zt7rWNkuOBjsjilDUAqQsZQzzgOkJNUk7o7SmF-tiXOUCmQwMGBQ1OF4TgVGzFUG8yIxQGDZiYPI4oqh+mPsrDSy05xhmfm+KO-CLT+iRucEUuwFQqWzMWXM2YTAuTtL6ZBylkRcMrkAA */ - id: 'Home machine', - - initial: 'Reading projects', - - context: ({ input }) => ({ - ...input, - }), - - on: { - assign: { - actions: assign(({ event }) => ({ - ...event.data, - })), - }, - - 'Import file from URL': '.Creating file', - }, - states: { - 'Has no projects': { - on: { - 'Read projects': { - target: 'Reading projects', - }, - 'Create project': { - target: 'Creating project', - }, - }, - }, - - 'Has projects': { - on: { - 'Read projects': { - target: 'Reading projects', - }, - - 'Rename project': { - target: 'Renaming project', - }, - - 'Create project': { - target: 'Creating project', - }, - - 'Delete project': { - target: 'Deleting project', - }, - - 'Open project': { - target: 'Reading projects', - actions: 'navigateToProject', - reenter: true, - }, - }, - }, - - 'Creating project': { - invoke: { - id: 'create-project', - src: 'createProject', - input: ({ event, context }) => { - if ( - event.type !== 'Create project' && - event.type !== 'Import file from URL' - ) { - return { - name: '', - projects: context.projects, - } - } - return { - name: event.data.name, - projects: context.projects, - } - }, - onDone: [ - { - target: 'Reading projects', - actions: ['toastSuccess', 'navigateToProject'], - }, - ], - onError: [ - { - target: 'Reading projects', - actions: ['toastError'], - }, - ], - }, - }, - - 'Renaming project': { - invoke: { - id: 'rename-project', - src: 'renameProject', - input: ({ event, context }) => { - if (event.type !== 'Rename project') { - // This is to make TS happy - return { - defaultProjectName: context.defaultProjectName, - defaultDirectory: context.defaultDirectory, - oldName: '', - newName: '', - projects: context.projects, - } - } - return { - defaultProjectName: context.defaultProjectName, - defaultDirectory: context.defaultDirectory, - oldName: event.data.oldName, - newName: event.data.newName, - projects: context.projects, - } - }, - onDone: [ - { - target: '#Home machine.Reading projects', - actions: ['toastSuccess', 'navigateToProjectIfNeeded'], - }, - ], - onError: [ - { - target: '#Home machine.Reading projects', - actions: ['toastError'], - }, - ], - }, - }, - - 'Deleting project': { - invoke: { - id: 'delete-project', - src: 'deleteProject', - input: ({ event, context }) => { - if (event.type !== 'Delete project') { - // This is to make TS happy - return { - defaultDirectory: context.defaultDirectory, - name: '', - } - } - return { - defaultDirectory: context.defaultDirectory, - name: event.data.name, - } - }, - onDone: [ - { - actions: ['toastSuccess', 'navigateToProjectIfNeeded'], - target: '#Home machine.Reading projects', - }, - ], - onError: { - actions: ['toastError'], - target: '#Home machine.Has projects', - }, - }, - }, - - 'Reading projects': { - invoke: { - id: 'read-projects', - src: 'readProjects', - onDone: [ - { - guard: 'Has at least 1 project', - target: 'Has projects', - actions: ['setProjects', 'setHasListedProjects'], - }, - { - target: 'Has no projects', - actions: ['setProjects', 'setHasListedProjects'], - }, - ], - onError: [ - { - target: 'Has no projects', - actions: ['toastError'], - }, - ], - }, - }, - - 'Creating file': { - invoke: { - id: 'create-file', - src: 'createFile', - input: ({ event, context }) => { - if (event.type !== 'Import file from URL') { - return { - code: '', - name: '', - method: 'existingProject', - projects: context.projects, - } - } - return { - code: event.data.code || '', - name: event.data.name, - method: event.data.method, - projectName: event.data.projectName, - projects: context.projects, - } - }, - onDone: { - target: 'Reading projects', - actions: ['navigateToFile', 'toastSuccess'], - }, - onError: { - target: 'Reading projects', - actions: 'toastError', - }, - }, - }, - }, -}) diff --git a/src/machines/settingsMachine.ts b/src/machines/settingsMachine.ts index b51e96c71..1374a14e3 100644 --- a/src/machines/settingsMachine.ts +++ b/src/machines/settingsMachine.ts @@ -35,13 +35,6 @@ import { saveSettings, setSettingsAtLevel, } from '@src/lib/settings/settingsUtils' -import { - codeManager, - engineCommandManager, - kclManager, - sceneEntitiesManager, - sceneInfra, -} from '@src/lib/singletons' import { Themes, darkModeMatcher, @@ -50,7 +43,6 @@ import { setThemeClass, } from '@src/lib/theme' import { reportRejection } from '@src/lib/trap' -import { commandBarActor } from '@src/machines/commandBarMachine' type SettingsMachineContext = SettingsType & { currentProject?: Project @@ -95,13 +87,14 @@ export const settingsMachine = setup({ doNotPersist: boolean context: SettingsMachineContext toastCallback?: () => void + rootContext: any } >(async ({ input }) => { // Without this, when a user changes the file, it'd // create a detection loop with the file-system watcher. if (input.doNotPersist) return - codeManager.writeCausedByAppCheckedInFileTreeFileSystemWatcher = true + input.rootContext.codeManager.writeCausedByAppCheckedInFileTreeFileSystemWatcher = true const { currentProject, ...settings } = input.context const val = await saveSettings(settings, currentProject?.path) @@ -147,7 +140,9 @@ export const settingsMachine = setup({ registerCommands: fromCallback< { type: 'update' }, { settings: SettingsType; actor: AnyActorRef } - >(({ input, receive }) => { + >(({ input, receive, self }) => { + const commandBarActor = self.system.get('root').getSnapshot() + .context.commandBarActor // If the user wants to hide the settings commands //from the command bar don't add them. if (settings.commandBar.includeSettings.current === false) return @@ -190,20 +185,28 @@ export const settingsMachine = setup({ }), }, actions: { - setEngineTheme: ({ context }) => { + setEngineTheme: ({ context, self }) => { + const rootContext = self.system.get('root').getSnapshot().context + const engineCommandManager = rootContext.engineCommandManager if (engineCommandManager && context.app.theme.current) { engineCommandManager .setTheme(context.app.theme.current) .catch(reportRejection) } }, - setClientTheme: ({ context }) => { + setClientTheme: ({ context, self }) => { + const rootContext = self.system.get('root').getSnapshot().context + const sceneInfra = rootContext.sceneInfra + const sceneEntitiesManager = rootContext.sceneEntitiesManager + if (!sceneInfra || !sceneEntitiesManager) return const opposingTheme = getOppositeTheme(context.app.theme.current) sceneInfra.theme = opposingTheme sceneEntitiesManager.updateSegmentBaseColor(opposingTheme) }, - setAllowOrbitInSketchMode: ({ context }) => { + setAllowOrbitInSketchMode: ({ context, self }) => { + const rootContext = self.system.get('root').getSnapshot().context + const sceneInfra = rootContext.sceneInfra if (!sceneInfra.camControls) return sceneInfra.camControls._setting_allowOrbitInSketchMode = context.app.allowOrbitInSketchMode.current @@ -232,7 +235,9 @@ export const settingsMachine = setup({ id: `${event.type}.success`, }) }, - 'Execute AST': ({ context, event }) => { + 'Execute AST': ({ context, event, self }) => { + const rootContext = self.system.get('root').getSnapshot().context + const kclManager = rootContext.kclManager try { const relevantSetting = (s: typeof settings) => { return ( @@ -345,8 +350,10 @@ export const settingsMachine = setup({ currentTheme === Themes.System ? getSystemTheme() : currentTheme ) }, - setEngineCameraProjection: ({ context }) => { + setEngineCameraProjection: ({ context, self }) => { const newCurrentProjection = context.modeling.cameraProjection.current + const rootContext = self.system.get('root').getSnapshot().context + const sceneInfra = rootContext.sceneInfra sceneInfra.camControls.setEngineCameraProjection(newCurrentProjection) }, sendThemeToWatcher: sendTo('watchSystemTheme', ({ context }) => ({ @@ -532,7 +539,7 @@ export const settingsMachine = setup({ console.error('Error persisting settings') }, }, - input: ({ context, event }) => { + input: ({ context, event, self }) => { if ( event.type === 'set.app.namedViews' && 'toastCallback' in event.data @@ -541,12 +548,14 @@ export const settingsMachine = setup({ doNotPersist: event.doNotPersist ?? false, context, toastCallback: event.data.toastCallback, + rootContext: self.system.get('root').getSnapshot().context, } } return { doNotPersist: event.doNotPersist ?? false, context, + rootContext: self.system.get('root').getSnapshot().context, } }, }, diff --git a/src/machines/systemIO/hooks.ts b/src/machines/systemIO/hooks.ts new file mode 100644 index 000000000..b5917de4c --- /dev/null +++ b/src/machines/systemIO/hooks.ts @@ -0,0 +1,21 @@ +import { systemIOActor } from '@src/lib/singletons' +import { useSelector } from '@xstate/react' +export const useRequestedProjectName = () => + useSelector(systemIOActor, (state) => state.context.requestedProjectName) +export const useRequestedFileName = () => + useSelector(systemIOActor, (state) => state.context.requestedFileName) +export const useProjectDirectoryPath = () => + useSelector(systemIOActor, (state) => state.context.projectDirectoryPath) +export const useFolders = () => + useSelector(systemIOActor, (state) => state.context.folders) +export const useState = () => useSelector(systemIOActor, (state) => state) +export const useCanReadWriteProjectDirectory = () => + useSelector( + systemIOActor, + (state) => state.context.canReadWriteProjectDirectory + ) +export const useHasListedProjects = () => + useSelector(systemIOActor, (state) => state.context.hasListedProjects) + +export const useClearURLParams = () => + useSelector(systemIOActor, (state) => state.context.clearURLParams) diff --git a/src/machines/systemIO/snapshotContext.ts b/src/machines/systemIO/snapshotContext.ts new file mode 100644 index 000000000..b227bed92 --- /dev/null +++ b/src/machines/systemIO/snapshotContext.ts @@ -0,0 +1,11 @@ +import { systemIOActor } from '@src/lib/singletons' + +export const folderSnapshot = () => { + const { folders } = systemIOActor.getSnapshot().context + return folders +} + +export const defaultProjectFolderNameSnapshot = () => { + const { defaultProjectFolderName } = systemIOActor.getSnapshot().context + return defaultProjectFolderName +} diff --git a/src/machines/systemIO/systemIOMachine.test.ts b/src/machines/systemIO/systemIOMachine.test.ts new file mode 100644 index 000000000..36add501d --- /dev/null +++ b/src/machines/systemIO/systemIOMachine.test.ts @@ -0,0 +1,78 @@ +import { DEFAULT_PROJECT_NAME } from '@src/lib/constants' +import { systemIOMachineDesktop } from '@src/machines/systemIO/systemIOMachineDesktop' +import { + NO_PROJECT_DIRECTORY, + SystemIOMachineEvents, + SystemIOMachineStates, +} from '@src/machines/systemIO/utils' +import path from 'node:path' +import { createActor, waitFor } from 'xstate' + +describe('systemIOMachine - XState', () => { + describe('desktop', () => { + describe('when initializied', () => { + it('should contain the default context values', () => { + const actor = createActor(systemIOMachineDesktop).start() + const context = actor.getSnapshot().context + expect(context.folders).toStrictEqual([]) + expect(context.defaultProjectFolderName).toStrictEqual( + DEFAULT_PROJECT_NAME + ) + expect(context.projectDirectoryPath).toBe(NO_PROJECT_DIRECTORY) + expect(context.hasListedProjects).toBe(false) + expect(context.requestedProjectName).toStrictEqual({ + name: NO_PROJECT_DIRECTORY, + }) + expect(context.requestedFileName).toStrictEqual({ + project: NO_PROJECT_DIRECTORY, + file: NO_PROJECT_DIRECTORY, + }) + }) + it('should be in idle state', () => { + const actor = createActor(systemIOMachineDesktop).start() + const state = actor.getSnapshot().value + expect(state).toBe(SystemIOMachineStates.idle) + }) + }) + describe('when reading projects', () => { + it('should exit early when project directory is empty string', async () => { + const actor = createActor(systemIOMachineDesktop).start() + actor.send({ + type: SystemIOMachineEvents.readFoldersFromProjectDirectory, + }) + await waitFor(actor, (state) => + state.matches(SystemIOMachineStates.readingFolders) + ) + await waitFor(actor, (state) => + state.matches(SystemIOMachineStates.idle) + ) + const context = actor.getSnapshot().context + expect(context.folders).toStrictEqual([]) + }) + }) + describe('when setting project directory path', () => { + it('should set new project directory path', async () => { + const kclSamplesPath = path.join('public', 'kcl-samples') + const actor = createActor(systemIOMachineDesktop).start() + actor.send({ + type: SystemIOMachineEvents.setProjectDirectoryPath, + data: { requestedProjectDirectoryPath: kclSamplesPath }, + }) + let context = actor.getSnapshot().context + expect(context.projectDirectoryPath).toBe(kclSamplesPath) + }) + }) + describe('when setting default project folder name', () => { + it('should set a new default project folder name', async () => { + const expected = 'coolcoolcoolProjectName' + const actor = createActor(systemIOMachineDesktop).start() + actor.send({ + type: SystemIOMachineEvents.setDefaultProjectFolderName, + data: { requestedDefaultProjectFolderName: expected }, + }) + let context = actor.getSnapshot().context + expect(context.defaultProjectFolderName).toBe(expected) + }) + }) + }) +}) diff --git a/src/machines/systemIO/systemIOMachine.ts b/src/machines/systemIO/systemIOMachine.ts new file mode 100644 index 000000000..7db087c8f --- /dev/null +++ b/src/machines/systemIO/systemIOMachine.ts @@ -0,0 +1,444 @@ +import { DEFAULT_PROJECT_NAME } from '@src/lib/constants' +import type { Project } from '@src/lib/project' +import type { SystemIOContext } from '@src/machines/systemIO/utils' +import { + NO_PROJECT_DIRECTORY, + SystemIOMachineActions, + SystemIOMachineActors, + SystemIOMachineEvents, + SystemIOMachineStates, +} from '@src/machines/systemIO/utils' +import toast from 'react-hot-toast' +import { assertEvent, assign, fromPromise, setup } from 'xstate' +import type { AppMachineContext } from '@src/lib/types' + +/** + * Handles any system level I/O for folders and files + * This machine will be initializes once within the applications runtime + * and exist for the entire life cycle of the application and able to be access + * at a global level. + */ +export const systemIOMachine = setup({ + types: { + context: {} as SystemIOContext, + events: {} as + | { + type: SystemIOMachineEvents.readFoldersFromProjectDirectory + } + | { + type: SystemIOMachineEvents.done_readFoldersFromProjectDirectory + output: Project[] + } + | { + type: SystemIOMachineEvents.done_checkReadWrite + output: { value: boolean; error: unknown } + } + | { + type: SystemIOMachineEvents.setProjectDirectoryPath + data: { requestedProjectDirectoryPath: string } + } + | { + type: SystemIOMachineEvents.navigateToProject + data: { requestedProjectName: string } + } + | { + type: SystemIOMachineEvents.navigateToFile + data: { requestedProjectName: string; requestedFileName: string } + } + | { + type: SystemIOMachineEvents.createProject + data: { requestedProjectName: string } + } + | { + type: SystemIOMachineEvents.renameProject + data: { requestedProjectName: string; projectName: string } + } + | { + type: SystemIOMachineEvents.deleteProject + data: { requestedProjectName: string } + } + | { + type: SystemIOMachineEvents.createKCLFile + data: { + requestedProjectName: string + requestedFileName: string + requestedCode: string + } + } + | { + type: SystemIOMachineEvents.importFileFromURL + data: { + requestedProjectName: string + requestedFileName: string + requestedCode: string + } + } + | { + type: SystemIOMachineEvents.setDefaultProjectFolderName + data: { requestedDefaultProjectFolderName: string } + }, + }, + actions: { + [SystemIOMachineActions.setFolders]: assign({ + folders: ({ event }) => { + assertEvent( + event, + SystemIOMachineEvents.done_readFoldersFromProjectDirectory + ) + return event.output + }, + }), + [SystemIOMachineActions.setProjectDirectoryPath]: assign({ + projectDirectoryPath: ({ event }) => { + assertEvent(event, SystemIOMachineEvents.setProjectDirectoryPath) + return event.data.requestedProjectDirectoryPath + }, + }), + [SystemIOMachineActions.setRequestedProjectName]: assign({ + requestedProjectName: ({ event }) => { + assertEvent(event, SystemIOMachineEvents.navigateToProject) + return { name: event.data.requestedProjectName } + }, + }), + [SystemIOMachineActions.setRequestedFileName]: assign({ + requestedFileName: ({ event }) => { + assertEvent(event, SystemIOMachineEvents.navigateToFile) + return { + project: event.data.requestedProjectName, + file: event.data.requestedFileName, + } + }, + }), + [SystemIOMachineActions.setDefaultProjectFolderName]: assign({ + defaultProjectFolderName: ({ event }) => { + assertEvent(event, SystemIOMachineEvents.setDefaultProjectFolderName) + return event.data.requestedDefaultProjectFolderName + }, + }), + [SystemIOMachineActions.toastSuccess]: ({ event }) => { + toast.success( + ('data' in event && typeof event.data === 'string' && event.data) || + ('output' in event && + 'message' in event.output && + typeof event.output.message === 'string' && + event.output.message) || + '' + ) + }, + [SystemIOMachineActions.toastError]: ({ event }) => { + toast.error( + ('data' in event && typeof event.data === 'string' && event.data) || + ('output' in event && + typeof event.output === 'string' && + event.output) || + ('error' in event && + event.error instanceof Error && + event.error.message) || + '' + ) + }, + [SystemIOMachineActions.setReadWriteProjectDirectory]: assign({ + canReadWriteProjectDirectory: ({ event }) => { + assertEvent(event, SystemIOMachineEvents.done_checkReadWrite) + return event.output + }, + }), + }, + actors: { + [SystemIOMachineActors.readFoldersFromProjectDirectory]: fromPromise( + async ({ input: context }: { input: SystemIOContext }) => { + const folders: Project[] = [] + return folders + } + ), + [SystemIOMachineActors.createProject]: fromPromise( + async ({ + input: { context, requestedProjectName }, + }: { + input: { context: SystemIOContext; requestedProjectName: string } + }) => { + return { message: '', name: '' } + } + ), + [SystemIOMachineActors.deleteProject]: fromPromise( + async ({ + input: { context, requestedProjectName }, + }: { + input: { context: SystemIOContext; requestedProjectName: string } + }) => { + return { message: '', name: '' } + } + ), + [SystemIOMachineActors.renameProject]: fromPromise( + async ({ + input: { context, requestedProjectName, projectName }, + }: { + input: { + context: SystemIOContext + requestedProjectName: string + projectName: string + } + }): Promise<{ message: string; newName: string; oldName: string }> => { + return { message: '', newName: '', oldName: '' } + } + ), + [SystemIOMachineActors.createKCLFile]: fromPromise( + async ({ + input, + }: { + input: { + context: SystemIOContext + requestedProjectName: string + requestedFileName: string + requestedCode: string + rootContext: AppMachineContext + } + }): Promise<{ + message: string + fileName: string + projectName: string + }> => { + return { message: '', fileName: '', projectName: '' } + } + ), + [SystemIOMachineActors.checkReadWrite]: fromPromise( + async ({ + input: { context, requestedProjectDirectoryPath }, + }: { + input: { + context: SystemIOContext + requestedProjectDirectoryPath: string + } + }): Promise<{ value: boolean; error: unknown }> => { + return { value: true, error: undefined } + } + ), + }, +}).createMachine({ + initial: SystemIOMachineStates.idle, + // Remember, this machine and change its projectDirectory at any point + // '' will be no project directory, aka clear this machine out! + // To be the absolute root of someones computer we should take the string of path.resolve() in node.js which is different for each OS + context: () => ({ + folders: [], + defaultProjectFolderName: DEFAULT_PROJECT_NAME, + projectDirectoryPath: NO_PROJECT_DIRECTORY, + hasListedProjects: false, + requestedProjectName: { name: NO_PROJECT_DIRECTORY }, + requestedFileName: { + project: NO_PROJECT_DIRECTORY, + file: NO_PROJECT_DIRECTORY, + }, + canReadWriteProjectDirectory: { value: true, error: undefined }, + clearURLParams: { value: false }, + }), + states: { + [SystemIOMachineStates.idle]: { + on: { + // on can be an action + [SystemIOMachineEvents.readFoldersFromProjectDirectory]: { + target: SystemIOMachineStates.readingFolders, + }, + [SystemIOMachineEvents.setProjectDirectoryPath]: { + target: SystemIOMachineStates.checkingReadWrite, + actions: [SystemIOMachineActions.setProjectDirectoryPath], + }, + [SystemIOMachineEvents.navigateToProject]: { + actions: [SystemIOMachineActions.setRequestedProjectName], + }, + [SystemIOMachineEvents.navigateToFile]: { + actions: [SystemIOMachineActions.setRequestedFileName], + }, + [SystemIOMachineEvents.createProject]: { + target: SystemIOMachineStates.creatingProject, + }, + [SystemIOMachineEvents.renameProject]: { + target: SystemIOMachineStates.renamingProject, + }, + [SystemIOMachineEvents.deleteProject]: { + target: SystemIOMachineStates.deletingProject, + }, + [SystemIOMachineEvents.createKCLFile]: { + target: SystemIOMachineStates.creatingKCLFile, + }, + [SystemIOMachineEvents.setDefaultProjectFolderName]: { + actions: [SystemIOMachineActions.setDefaultProjectFolderName], + }, + [SystemIOMachineEvents.importFileFromURL]: { + target: SystemIOMachineStates.importFileFromURL, + }, + }, + }, + [SystemIOMachineStates.readingFolders]: { + invoke: { + id: SystemIOMachineActors.readFoldersFromProjectDirectory, + src: SystemIOMachineActors.readFoldersFromProjectDirectory, + input: ({ context }) => { + return context + }, + onDone: { + target: SystemIOMachineStates.idle, + actions: [ + SystemIOMachineActions.setFolders, + assign({ hasListedProjects: true }), + ], + }, + onError: { + target: SystemIOMachineStates.idle, + }, + }, + }, + [SystemIOMachineStates.creatingProject]: { + invoke: { + id: SystemIOMachineActors.createProject, + src: SystemIOMachineActors.createProject, + input: ({ context, event }) => { + assertEvent(event, SystemIOMachineEvents.createProject) + return { + context, + requestedProjectName: event.data.requestedProjectName, + } + }, + onDone: { + target: SystemIOMachineStates.readingFolders, + actions: [ + assign({ + requestedProjectName: ({ event }) => { + return { name: event.output.name } + }, + }), + SystemIOMachineActions.toastSuccess, + ], + }, + onError: { + target: SystemIOMachineStates.idle, + actions: [SystemIOMachineActions.toastError], + }, + }, + }, + [SystemIOMachineStates.renamingProject]: { + invoke: { + id: SystemIOMachineActors.renameProject, + src: SystemIOMachineActors.renameProject, + input: ({ context, event }) => { + assertEvent(event, SystemIOMachineEvents.renameProject) + return { + context, + requestedProjectName: event.data.requestedProjectName, + projectName: event.data.projectName, + } + }, + onDone: { + target: SystemIOMachineStates.readingFolders, + actions: [SystemIOMachineActions.toastSuccess], + }, + onError: { + target: SystemIOMachineStates.idle, + actions: [SystemIOMachineActions.toastError], + }, + }, + }, + [SystemIOMachineStates.deletingProject]: { + invoke: { + id: SystemIOMachineActors.deleteProject, + src: SystemIOMachineActors.deleteProject, + input: ({ context, event }) => { + assertEvent(event, SystemIOMachineEvents.deleteProject) + return { + context, + requestedProjectName: event.data.requestedProjectName, + } + }, + onDone: { + target: SystemIOMachineStates.readingFolders, + actions: [SystemIOMachineActions.toastSuccess], + }, + onError: { + target: SystemIOMachineStates.idle, + actions: [SystemIOMachineActions.toastError], + }, + }, + }, + [SystemIOMachineStates.creatingKCLFile]: { + invoke: { + id: SystemIOMachineActors.createKCLFile, + src: SystemIOMachineActors.createKCLFile, + input: ({ context, event, self }) => { + assertEvent(event, SystemIOMachineEvents.createKCLFile) + return { + context, + requestedProjectName: event.data.requestedProjectName, + requestedFileName: event.data.requestedFileName, + requestedCode: event.data.requestedCode, + rootContext: self.system.get('root').getSnapshot().context, + } + }, + onDone: { + target: SystemIOMachineStates.idle, + }, + onError: { + target: SystemIOMachineStates.idle, + actions: [SystemIOMachineActions.toastError], + }, + }, + }, + [SystemIOMachineStates.importFileFromURL]: { + invoke: { + id: SystemIOMachineActors.importFileFromURL, + src: SystemIOMachineActors.createKCLFile, + input: ({ context, event, self }) => { + assertEvent(event, SystemIOMachineEvents.importFileFromURL) + return { + context, + requestedProjectName: event.data.requestedProjectName, + requestedFileName: event.data.requestedFileName, + requestedCode: event.data.requestedCode, + rootContext: self.system.get('root').getSnapshot().context, + } + }, + onDone: { + target: SystemIOMachineStates.readingFolders, + // Clear on web? not desktop + actions: [ + assign({ + requestedFileName: ({ context, event }) => { + assertEvent(event, SystemIOMachineEvents.done_importFileFromURL) + // Not the entire path + return { + project: event.output.projectName, + file: event.output.fileName + '.kcl', + } + }, + }), + assign({ clearURLParams: { value: true } }), + ], + }, + onError: { + target: SystemIOMachineStates.idle, + actions: [SystemIOMachineActions.toastError], + }, + }, + }, + [SystemIOMachineStates.checkingReadWrite]: { + invoke: { + id: SystemIOMachineActors.checkReadWrite, + src: SystemIOMachineActors.checkReadWrite, + input: ({ context, event }) => { + assertEvent(event, SystemIOMachineEvents.setProjectDirectoryPath) + return { + context, + requestedProjectDirectoryPath: + event.data.requestedProjectDirectoryPath, + } + }, + onDone: { + target: SystemIOMachineStates.readingFolders, + }, + onError: { + target: SystemIOMachineStates.readingFolders, + actions: [SystemIOMachineActions.toastError], + }, + }, + }, + }, +}) diff --git a/src/machines/systemIO/systemIOMachineDesktop.ts b/src/machines/systemIO/systemIOMachineDesktop.ts new file mode 100644 index 000000000..c9443f597 --- /dev/null +++ b/src/machines/systemIO/systemIOMachineDesktop.ts @@ -0,0 +1,232 @@ +import { + createNewProjectDirectory, + getProjectInfo, + mkdirOrNOOP, + readAppSettingsFile, + renameProjectDirectory, +} from '@src/lib/desktop' +import { + doesProjectNameNeedInterpolated, + getNextFileName, + getNextProjectIndex, + getUniqueProjectName, + interpolateProjectNameWithIndex, +} from '@src/lib/desktopFS' +import type { Project } from '@src/lib/project' +import { systemIOMachine } from '@src/machines/systemIO/systemIOMachine' +import type { SystemIOContext } from '@src/machines/systemIO/utils' +import { + NO_PROJECT_DIRECTORY, + SystemIOMachineActors, +} from '@src/machines/systemIO/utils' +import { fromPromise } from 'xstate' +import type { AppMachineContext } from '@src/lib/types' + +export const systemIOMachineDesktop = systemIOMachine.provide({ + actors: { + [SystemIOMachineActors.readFoldersFromProjectDirectory]: fromPromise( + async ({ input: context }: { input: SystemIOContext }) => { + const projects = [] + const projectDirectoryPath = context.projectDirectoryPath + if (projectDirectoryPath === NO_PROJECT_DIRECTORY) { + return [] + } + await mkdirOrNOOP(projectDirectoryPath) + // Gotcha: readdir will list all folders at this project directory even if you do not have readwrite access on the directory path + const entries = await window.electron.readdir(projectDirectoryPath) + const { value: canReadWriteProjectDirectory } = + await window.electron.canReadWriteDirectory(projectDirectoryPath) + + for (let entry of entries) { + // Skip directories that start with a dot + if (entry.startsWith('.')) { + continue + } + const projectPath = window.electron.path.join( + projectDirectoryPath, + entry + ) + + // if it's not a directory ignore. + // Gotcha: statIsDirectory will work even if you do not have read write permissions on the project path + const isDirectory = await window.electron.statIsDirectory(projectPath) + if (!isDirectory) { + continue + } + const project: Project = await getProjectInfo(projectPath) + if ( + project.kcl_file_count === 0 && + project.readWriteAccess && + canReadWriteProjectDirectory + ) { + continue + } + projects.push(project) + } + return projects + } + ), + [SystemIOMachineActors.createProject]: fromPromise( + async ({ + input, + }: { + input: { context: SystemIOContext; requestedProjectName: string } + }) => { + const folders = input.context.folders + const requestedProjectName = input.requestedProjectName + const uniqueName = getUniqueProjectName(requestedProjectName, folders) + await createNewProjectDirectory(uniqueName) + return { + message: `Successfully created "${uniqueName}"`, + name: uniqueName, + } + } + ), + [SystemIOMachineActors.renameProject]: fromPromise( + async ({ + input, + }: { + input: { + context: SystemIOContext + requestedProjectName: string + projectName: string + } + }) => { + const folders = input.context.folders + const requestedProjectName = input.requestedProjectName + const projectName = input.projectName + let newProjectName: string = requestedProjectName + if (doesProjectNameNeedInterpolated(requestedProjectName)) { + const nextIndex = getNextProjectIndex(requestedProjectName, folders) + newProjectName = interpolateProjectNameWithIndex( + requestedProjectName, + nextIndex + ) + } + + // Toast an error if the project name is taken + if (folders.find((p) => p.name === newProjectName)) { + return Promise.reject( + new Error(`Project with name "${newProjectName}" already exists`) + ) + } + + await renameProjectDirectory( + window.electron.path.join( + input.context.projectDirectoryPath, + projectName + ), + newProjectName + ) + + return { + message: `Successfully renamed "${projectName}" to "${newProjectName}"`, + oldName: projectName, + newName: newProjectName, + } + } + ), + [SystemIOMachineActors.deleteProject]: fromPromise( + async ({ + input, + }: { + input: { context: SystemIOContext; requestedProjectName: string } + }) => { + await window.electron.rm( + window.electron.path.join( + input.context.projectDirectoryPath, + input.requestedProjectName + ), + { + recursive: true, + } + ) + + return { + message: `Successfully deleted "${input.requestedProjectName}"`, + name: input.requestedProjectName, + } + } + ), + [SystemIOMachineActors.createKCLFile]: fromPromise( + async ({ + input, + }: { + input: { + context: SystemIOContext + requestedProjectName: string + requestedFileName: string + requestedCode: string + rootContext: AppMachineContext + } + }) => { + const requestedProjectName = input.requestedProjectName + const requestedFileName = input.requestedFileName + const requestedCode = input.requestedCode + const folders = input.context.folders + + let newProjectName = requestedProjectName + + if (!newProjectName) { + newProjectName = getUniqueProjectName( + input.context.defaultProjectFolderName, + input.context.folders + ) + } + + const needsInterpolated = + doesProjectNameNeedInterpolated(newProjectName) + if (needsInterpolated) { + const nextIndex = getNextProjectIndex(newProjectName, folders) + newProjectName = interpolateProjectNameWithIndex( + newProjectName, + nextIndex + ) + } + + const baseDir = window.electron.join( + input.context.projectDirectoryPath, + newProjectName + ) + const { name: newFileName } = getNextFileName({ + entryName: requestedFileName, + baseDir, + }) + const configuration = await readAppSettingsFile() + + // Create the project around the file if newProject + await createNewProjectDirectory( + newProjectName, + requestedCode, + configuration, + newFileName + ) + + return { + message: 'File created successfully', + fileName: input.requestedFileName, + projectName: newProjectName, + } + } + ), + [SystemIOMachineActors.checkReadWrite]: fromPromise( + async ({ + input, + }: { + input: { + context: SystemIOContext + requestedProjectDirectoryPath: string + } + }) => { + const requestProjectDirectoryPath = input.requestedProjectDirectoryPath + if (!requestProjectDirectoryPath) { + return { value: true, error: undefined } + } + const result = await window.electron.canReadWriteDirectory( + requestProjectDirectoryPath + ) + return result + } + ), + }, +}) diff --git a/src/machines/systemIO/systemIOMachineWeb.ts b/src/machines/systemIO/systemIOMachineWeb.ts new file mode 100644 index 000000000..cac7ef9ad --- /dev/null +++ b/src/machines/systemIO/systemIOMachineWeb.ts @@ -0,0 +1,50 @@ +import { systemIOMachine } from '@src/machines/systemIO/systemIOMachine' +import type { SystemIOContext } from '@src/machines/systemIO/utils' +import { SystemIOMachineActors } from '@src/machines/systemIO/utils' +import { fromPromise } from 'xstate' +import { newKclFile } from '@src/lang/project' +import { readLocalStorageProjectSettingsFile } from '@src/lib/settings/settingsUtils' +import { err } from '@src/lib/trap' +import { DEFAULT_DEFAULT_LENGTH_UNIT } from '@src/lib/constants' +import type { AppMachineContext } from '@src/lib/types' + +export const systemIOMachineWeb = systemIOMachine.provide({ + actors: { + [SystemIOMachineActors.createKCLFile]: fromPromise( + async ({ + input, + }: { + input: { + context: SystemIOContext + requestedProjectName: string + requestedFileName: string + requestedCode: string + rootContext: AppMachineContext + } + }) => { + // Browser version doesn't navigate, just overwrites the current file + // clearImportSearchParams() + const projectSettings = readLocalStorageProjectSettingsFile() + if (err(projectSettings)) { + return Promise.reject( + 'Unable to read project settings from local storage' + ) + } + const codeToWrite = newKclFile( + input.requestedCode, + projectSettings?.settings?.modeling?.base_unit || + DEFAULT_DEFAULT_LENGTH_UNIT + ) + if (err(codeToWrite)) return Promise.reject(codeToWrite) + input.rootContext.codeManager.updateCodeStateEditor(codeToWrite) + await input.rootContext.codeManager.writeToFile() + await input.rootContext.kclManager.executeCode() + return { + message: 'File overwritten successfully', + fileName: input.requestedFileName, + projectName: '', + } + } + ), + }, +}) diff --git a/src/machines/systemIO/utils.ts b/src/machines/systemIO/utils.ts new file mode 100644 index 000000000..08e9f9c43 --- /dev/null +++ b/src/machines/systemIO/utils.ts @@ -0,0 +1,73 @@ +import type { Project } from '@src/lib/project' + +export enum SystemIOMachineActors { + readFoldersFromProjectDirectory = 'read folders from project directory', + setProjectDirectoryPath = 'set project directory path', + createProject = 'create project', + renameProject = 'rename project', + deleteProject = 'delete project', + createKCLFile = 'create kcl file', + checkReadWrite = 'check read write', + importFileFromURL = 'import file from URL', +} + +export enum SystemIOMachineStates { + idle = 'idle', + readingFolders = 'readingFolders', + settingProjectDirectoryPath = 'settingProjectDirectoryPath', + creatingProject = 'creatingProject', + renamingProject = 'renamingProject', + deletingProject = 'deletingProject', + creatingKCLFile = 'creatingKCLFile', + checkingReadWrite = 'checkingReadWrite', + importFileFromURL = 'importFileFromURL', +} + +const donePrefix = 'xstate.done.actor.' + +export enum SystemIOMachineEvents { + readFoldersFromProjectDirectory = 'read folders from project directory', + done_readFoldersFromProjectDirectory = donePrefix + + 'read folders from project directory', + setProjectDirectoryPath = 'set project directory path', + navigateToProject = 'navigate to project', + navigateToFile = 'navigate to file', + createProject = 'create project', + renameProject = 'rename project', + deleteProject = 'delete project', + createKCLFile = 'create kcl file', + setDefaultProjectFolderName = 'set default project folder name', + done_checkReadWrite = donePrefix + 'check read write', + importFileFromURL = 'import file from URL', + done_importFileFromURL = donePrefix + 'import file from URL', +} + +export enum SystemIOMachineActions { + setFolders = 'set folders', + setProjectDirectoryPath = 'set project directory path', + setRequestedProjectName = 'set requested project name', + setRequestedFileName = 'set requested file name', + setDefaultProjectFolderName = 'set default project folder name', + toastSuccess = 'toastSuccess', + toastError = 'toastError', + setReadWriteProjectDirectory = 'set read write project directory', +} + +export const NO_PROJECT_DIRECTORY = '' + +export type SystemIOContext = { + /** Only store folders under the projectDirectory, do not maintain folders outside this directory */ + folders: Project[] + /** For this machines runtime, this is the default string when creating a project + * A project is defined by creating a folder at the one level below the working project directory */ + defaultProjectFolderName: string + /** working project directory that stores all the project folders */ + projectDirectoryPath: string + /** has the application gone through the initialization of systemIOMachine at least once. + * this is required to prevent chokidar from spamming invalid events during initialization. */ + hasListedProjects: boolean + requestedProjectName: { name: string } + requestedFileName: { project: string; file: string } + canReadWriteProjectDirectory: { value: boolean; error: unknown } + clearURLParams: { value: boolean } +} diff --git a/src/main.ts b/src/main.ts index 4936effa5..81770b21a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -283,6 +283,10 @@ ipcMain.handle('shell.openExternal', (event, data) => { return shell.openExternal(data) }) +ipcMain.handle('openInNewWindow', (event, data) => { + return createWindow(data) +}) + ipcMain.handle( 'take.screenshot', async (event, data: { width: number; height: number }) => { diff --git a/src/menu/register.ts b/src/menu/register.ts index 854fefe07..8fb1dd78c 100644 --- a/src/menu/register.ts +++ b/src/menu/register.ts @@ -10,8 +10,8 @@ import { } from '@src/lib/singletons' import { reportRejection } from '@src/lib/trap' import { uuidv4 } from '@src/lib/utils' -import { authActor, settingsActor } from '@src/machines/appMachine' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { authActor, settingsActor } from '@src/lib/singletons' +import { commandBarActor } from '@src/lib/singletons' import type { WebContentSendPayload } from '@src/menu/channels' import type { NavigateFunction } from 'react-router-dom' diff --git a/src/preload.ts b/src/preload.ts index 2c0c0f873..f39e28e27 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -21,6 +21,7 @@ const resizeWindow = (width: number, height: number) => const open = (args: any) => ipcRenderer.invoke('dialog.showOpenDialog', args) const save = (args: any) => ipcRenderer.invoke('dialog.showSaveDialog', args) const openExternal = (url: any) => ipcRenderer.invoke('shell.openExternal', url) +const openInNewWindow = (url: any) => ipcRenderer.invoke('openInNewWindow', url) const takeElectronWindowScreenshot = ({ width, height, @@ -248,6 +249,7 @@ contextBridge.exposeInMainWorld('electron', { save, // opens the URL openExternal, + openInNewWindow, showInFolder, getPath, packageJson, diff --git a/src/routes/Home.tsx b/src/routes/Home.tsx index 473096669..051470756 100644 --- a/src/routes/Home.tsx +++ b/src/routes/Home.tsx @@ -1,5 +1,5 @@ import type { FormEvent } from 'react' -import { useEffect, useRef, useState } from 'react' +import { useEffect, useRef } from 'react' import { toast } from 'react-hot-toast' import { useHotkeys } from 'react-hotkeys-hook' import { Link, useNavigate, useSearchParams } from 'react-router-dom' @@ -15,7 +15,6 @@ import { } from '@src/components/ProjectSearchBar' import { useCreateFileLinkQuery } from '@src/hooks/useCreateFileLinkQueryWatcher' import { useMenuListener } from '@src/hooks/useMenu' -import { useProjectsContext } from '@src/hooks/useProjectsContext' import { isDesktop } from '@src/lib/isDesktop' import { PATHS } from '@src/lib/paths' import { markOnce } from '@src/lib/performance' @@ -27,21 +26,24 @@ import { getSortIcon, } from '@src/lib/sorting' import { reportRejection } from '@src/lib/trap' -import { authActor, useSettings } from '@src/machines/appMachine' -import { commandBarActor } from '@src/machines/commandBarMachine' +import { authActor, systemIOActor, useSettings } from '@src/lib/singletons' +import { commandBarActor } from '@src/lib/singletons' +import { + useCanReadWriteProjectDirectory, + useFolders, + useState as useSystemIOState, +} from '@src/machines/systemIO/hooks' +import { + SystemIOMachineEvents, + SystemIOMachineStates, +} from '@src/machines/systemIO/utils' import type { WebContentSendPayload } from '@src/menu/channels' // This route only opens in the desktop context for now, // as defined in Router.tsx, so we can use the desktop APIs and types. const Home = () => { - const { state, send } = useProjectsContext() - const [readWriteProjectDir, setReadWriteProjectDir] = useState<{ - value: boolean - error: unknown - }>({ - value: true, - error: undefined, - }) + const state = useSystemIOState() + const readWriteProjectDir = useCanReadWriteProjectDirectory() // Only create the native file menus on desktop useEffect(() => { @@ -156,40 +158,13 @@ const Home = () => { } ) const ref = useRef(null) - - const projects = state?.context.projects ?? [] + const projects = useFolders() const [searchParams, setSearchParams] = useSearchParams() const { searchResults, query, setQuery } = useProjectSearch(projects) const sort = searchParams.get('sort_by') ?? 'modified:desc' const isSortByModified = sort?.includes('modified') || !sort || sort === null - // Update the default project name and directory in the home machine - // when the settings change - useEffect(() => { - send({ - type: 'assign', - data: { - defaultProjectName: settings.projects.defaultProjectName.current, - defaultDirectory: settings.app.projectDirectory.current, - }, - }) - - // Must be a truthy string, not '' or null or undefined - if (settings.app.projectDirectory.current) { - window.electron - .canReadWriteDirectory(settings.app.projectDirectory.current) - .then((res) => { - setReadWriteProjectDir(res) - }) - .catch(reportRejection) - } - }, [ - settings.app.projectDirectory.current, - settings.projects.defaultProjectName.current, - send, - ]) - async function handleRenameProject( e: FormEvent, project: Project @@ -204,17 +179,20 @@ const Home = () => { } if (newProjectName !== project.name) { - send({ - type: 'Rename project', - data: { oldName: project.name, newName: newProjectName as string }, + systemIOActor.send({ + type: SystemIOMachineEvents.renameProject, + data: { + requestedProjectName: String(newProjectName), + projectName: project.name, + }, }) } } async function handleDeleteProject(project: Project) { - send({ - type: 'Delete project', - data: { name: project.name || '' }, + systemIOActor.send({ + type: SystemIOMachineEvents.deleteProject, + data: { requestedProjectName: project.name }, }) } /** Type narrowing function of unknown error to a string */ @@ -246,9 +224,6 @@ const Home = () => { data: { groupId: 'projects', name: 'Create project', - argDefaultValues: { - name: settings.projects.defaultProjectName.current, - }, }, }) } @@ -345,7 +320,7 @@ const Home = () => { data-testid="home-section" className="flex-1 overflow-y-auto pr-2 pb-24" > - {state?.matches('Reading projects') ? ( + {state?.matches(SystemIOMachineStates.readingFolders) ? ( Loading your Projects... ) : ( <> diff --git a/src/routes/Onboarding/Camera.tsx b/src/routes/Onboarding/Camera.tsx index 04e7b50fd..211cd8e7b 100644 --- a/src/routes/Onboarding/Camera.tsx +++ b/src/routes/Onboarding/Camera.tsx @@ -1,7 +1,7 @@ import { SettingsSection } from '@src/components/Settings/SettingsSection' import type { CameraSystem } from '@src/lib/cameraControls' import { cameraMouseDragGuards, cameraSystems } from '@src/lib/cameraControls' -import { settingsActor, useSettings } from '@src/machines/appMachine' +import { settingsActor, useSettings } from '@src/lib/singletons' import { onboardingPaths } from '@src/routes/Onboarding/paths' import { diff --git a/src/routes/Onboarding/Introduction.tsx b/src/routes/Onboarding/Introduction.tsx index 80460a05e..ceb0eeb17 100644 --- a/src/routes/Onboarding/Introduction.tsx +++ b/src/routes/Onboarding/Introduction.tsx @@ -13,7 +13,7 @@ import { codeManager, kclManager } from '@src/lib/singletons' import { Themes, getSystemTheme } from '@src/lib/theme' import { reportRejection } from '@src/lib/trap' import type { IndexLoaderData } from '@src/lib/types' -import { useSettings } from '@src/machines/appMachine' +import { useSettings } from '@src/lib/singletons' import { onboardingPaths } from '@src/routes/Onboarding/paths' import { OnboardingButtons, useDemoCode } from '@src/routes/Onboarding/utils' diff --git a/src/routes/Onboarding/ParametricModeling.tsx b/src/routes/Onboarding/ParametricModeling.tsx index 4360b5067..a3fb6fa24 100644 --- a/src/routes/Onboarding/ParametricModeling.tsx +++ b/src/routes/Onboarding/ParametricModeling.tsx @@ -1,7 +1,7 @@ import { bracketThicknessCalculationLine } from '@src/lib/exampleKcl' import { isDesktop } from '@src/lib/isDesktop' import { Themes, getSystemTheme } from '@src/lib/theme' -import { useSettings } from '@src/machines/appMachine' +import { useSettings } from '@src/lib/singletons' import { onboardingPaths } from '@src/routes/Onboarding/paths' import { OnboardingButtons, useDemoCode } from '@src/routes/Onboarding/utils' diff --git a/src/routes/Onboarding/Units.tsx b/src/routes/Onboarding/Units.tsx index 82e16235b..cbccf8e17 100644 --- a/src/routes/Onboarding/Units.tsx +++ b/src/routes/Onboarding/Units.tsx @@ -3,7 +3,7 @@ import { faArrowRight, faXmark } from '@fortawesome/free-solid-svg-icons' import { ActionButton } from '@src/components/ActionButton' import { SettingsSection } from '@src/components/Settings/SettingsSection' import { type BaseUnit, baseUnitsUnion } from '@src/lib/settings/settingsTypes' -import { settingsActor, useSettings } from '@src/machines/appMachine' +import { settingsActor, useSettings } from '@src/lib/singletons' import { onboardingPaths } from '@src/routes/Onboarding/paths' import { useDismiss, useNextClick } from '@src/routes/Onboarding/utils' diff --git a/src/routes/Onboarding/UserMenu.tsx b/src/routes/Onboarding/UserMenu.tsx index 30849812a..e3e03fee9 100644 --- a/src/routes/Onboarding/UserMenu.tsx +++ b/src/routes/Onboarding/UserMenu.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react' -import { useUser } from '@src/machines/appMachine' +import { useUser } from '@src/lib/singletons' import { onboardingPaths } from '@src/routes/Onboarding/paths' import { OnboardingButtons } from '@src/routes/Onboarding/utils' diff --git a/src/routes/Onboarding/utils.tsx b/src/routes/Onboarding/utils.tsx index e775e1dda..30309ad87 100644 --- a/src/routes/Onboarding/utils.tsx +++ b/src/routes/Onboarding/utils.tsx @@ -14,7 +14,7 @@ import makeUrlPathRelative from '@src/lib/makeUrlPathRelative' import { PATHS } from '@src/lib/paths' import { codeManager, editorManager, kclManager } from '@src/lib/singletons' import { reportRejection, trap } from '@src/lib/trap' -import { settingsActor } from '@src/machines/appMachine' +import { settingsActor } from '@src/lib/singletons' import { onboardingRoutes } from '@src/routes/Onboarding' import { onboardingPaths } from '@src/routes/Onboarding/paths' import { parse, resultIsOk } from '@src/lang/wasm' diff --git a/src/routes/SignIn.tsx b/src/routes/SignIn.tsx index fb17dd638..67e48f30f 100644 --- a/src/routes/SignIn.tsx +++ b/src/routes/SignIn.tsx @@ -14,7 +14,7 @@ import { PATHS } from '@src/lib/paths' import { Themes, getSystemTheme } from '@src/lib/theme' import { reportRejection } from '@src/lib/trap' import { toSync } from '@src/lib/utils' -import { authActor, useSettings } from '@src/machines/appMachine' +import { authActor, useSettings } from '@src/lib/singletons' import { APP_VERSION, IS_NIGHTLY } from '@src/routes/utils' const subtleBorder = diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..41ea4c373 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,10706 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"7zip-bin@~5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.2.0.tgz#7a03314684dd6572b7dfa89e68ce31d60286854d" + integrity sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A== + +"@adobe/css-tools@^4.0.1": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.2.tgz#c836b1bd81e6d62cd6cdf3ee4948bcdce8ea79c8" + integrity sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A== + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@azure/abort-controller@^2.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-2.1.2.tgz#42fe0ccab23841d9905812c58f1082d27784566d" + integrity sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA== + dependencies: + tslib "^2.6.2" + +"@azure/core-auth@^1.4.0", "@azure/core-auth@^1.8.0", "@azure/core-auth@^1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.9.0.tgz#ac725b03fabe3c892371065ee9e2041bee0fd1ac" + integrity sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-util" "^1.11.0" + tslib "^2.6.2" + +"@azure/core-client@^1.9.2": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.9.3.tgz#9ca8f3bdc730d10d58f65c9c2c9ca992bc15bb67" + integrity sha512-/wGw8fJ4mdpJ1Cum7s1S+VQyXt1ihwKLzfabS1O/RDADnmzVc01dHn44qD0BvGH6KlZNzOMW95tEpKqhkCChPA== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.4.0" + "@azure/core-rest-pipeline" "^1.9.1" + "@azure/core-tracing" "^1.0.0" + "@azure/core-util" "^1.6.1" + "@azure/logger" "^1.0.0" + tslib "^2.6.2" + +"@azure/core-rest-pipeline@^1.17.0", "@azure/core-rest-pipeline@^1.9.1": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.19.1.tgz#e740676444777a04dc55656d8660131dfd926924" + integrity sha512-zHeoI3NCs53lLBbWNzQycjnYKsA1CVKlnzSNuSFcUDwBp8HHVObePxrM7HaX+Ha5Ks639H7chNC9HOaIhNS03w== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.8.0" + "@azure/core-tracing" "^1.0.1" + "@azure/core-util" "^1.11.0" + "@azure/logger" "^1.0.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + tslib "^2.6.2" + +"@azure/core-tracing@^1.0.0", "@azure/core-tracing@^1.0.1": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.2.0.tgz#7be5d53c3522d639cf19042cbcdb19f71bc35ab2" + integrity sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg== + dependencies: + tslib "^2.6.2" + +"@azure/core-util@^1.11.0", "@azure/core-util@^1.6.1": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.11.0.tgz#f530fc67e738aea872fbdd1cc8416e70219fada7" + integrity sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g== + dependencies: + "@azure/abort-controller" "^2.0.0" + tslib "^2.6.2" + +"@azure/identity@^4.1.0": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@azure/identity/-/identity-4.9.1.tgz#ee4b9435f1b96bea5985e7dec989760a67d9a119" + integrity sha512-986D7Cf1AOwYqSDtO/FnMAyk/Jc8qpftkGsxuehoh4F85MhQ4fICBGX/44+X1y78lN4Sqib3Bsoaoh/FvOGgmg== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.9.0" + "@azure/core-client" "^1.9.2" + "@azure/core-rest-pipeline" "^1.17.0" + "@azure/core-tracing" "^1.0.0" + "@azure/core-util" "^1.11.0" + "@azure/logger" "^1.0.0" + "@azure/msal-browser" "^4.2.0" + "@azure/msal-node" "^3.5.0" + open "^10.1.0" + tslib "^2.2.0" + +"@azure/logger@^1.0.0": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.1.4.tgz#223cbf2b424dfa66478ce9a4f575f59c6f379768" + integrity sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ== + dependencies: + tslib "^2.6.2" + +"@azure/msal-browser@^4.2.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@azure/msal-browser/-/msal-browser-4.11.0.tgz#e9d9651d692969e68c78ef873ed9a69e02389a64" + integrity sha512-0p5Ut3wORMP+975AKvaSPIO4UytgsfAvJ7RxaTx+nkP+Hpkmm93AuiMkBWKI2x9tApU/SLgIyPz/ZwLYUIWb5Q== + dependencies: + "@azure/msal-common" "15.5.1" + +"@azure/msal-common@15.5.1": + version "15.5.1" + resolved "https://registry.yarnpkg.com/@azure/msal-common/-/msal-common-15.5.1.tgz#3b34c81013530e1425a1fad40f3ac1238e1780f8" + integrity sha512-oxK0khbc4Bg1bKQnqDr7ikULhVL2OHgSrIq0Vlh4b6+hm4r0lr6zPMQE8ZvmacJuh+ZZGKBM5iIObhF1q1QimQ== + +"@azure/msal-node@^3.5.0": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@azure/msal-node/-/msal-node-3.5.1.tgz#8bb233cbeeda83f64af4cc29569f1b5312c9b9ad" + integrity sha512-dkgMYM5B6tI88r/oqf5bYd93WkenQpaWwiszJDk7avVjso8cmuKRTW97dA1RMi6RhihZFLtY1VtWxU9+sW2T5g== + dependencies: + "@azure/msal-common" "15.5.1" + jsonwebtoken "^9.0.0" + uuid "^8.3.0" + +"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.26.2": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" + integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.26.8": + version "7.26.8" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" + integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== + +"@babel/core@^7.21.4", "@babel/core@^7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" + integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.10" + "@babel/helper-compilation-targets" "^7.26.5" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.10" + "@babel/parser" "^7.26.10" + "@babel/template" "^7.26.9" + "@babel/traverse" "^7.26.10" + "@babel/types" "^7.26.10" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.26.10", "@babel/generator@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.0.tgz#764382b5392e5b9aff93cadb190d0745866cbc2c" + integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw== + dependencies: + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" + integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== + dependencies: + "@babel/types" "^7.25.9" + +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9", "@babel/helper-compilation-targets@^7.26.5": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz#de0c753b1cd1d9ab55d473c5a5cf7170f0a81880" + integrity sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA== + dependencies: + "@babel/compat-data" "^7.26.8" + "@babel/helper-validator-option" "^7.25.9" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.25.9": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz#518fad6a307c6a96f44af14912b2c20abe9bfc30" + integrity sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-member-expression-to-functions" "^7.25.9" + "@babel/helper-optimise-call-expression" "^7.25.9" + "@babel/helper-replace-supers" "^7.26.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/traverse" "^7.27.0" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.0.tgz#0e41f7d38c2ebe06ebd9cf0e02fb26019c77cd95" + integrity sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + regexpu-core "^6.2.0" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.3", "@babel/helper-define-polyfill-provider@^0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz#15e8746368bfa671785f5926ff74b3064c291fab" + integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-member-expression-to-functions@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" + integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-module-imports@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" + integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" + integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/helper-optimise-call-expression@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e" + integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== + dependencies: + "@babel/types" "^7.25.9" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.26.5": + version "7.26.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz#18580d00c9934117ad719392c4f6585c9333cc35" + integrity sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg== + +"@babel/helper-remap-async-to-generator@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz#e53956ab3d5b9fb88be04b3e2f31b523afd34b92" + integrity sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-wrap-function" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/helper-replace-supers@^7.25.9", "@babel/helper-replace-supers@^7.26.5": + version "7.26.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz#6cb04e82ae291dae8e72335dfe438b0725f14c8d" + integrity sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.25.9" + "@babel/helper-optimise-call-expression" "^7.25.9" + "@babel/traverse" "^7.26.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9" + integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-string-parser@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== + +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== + +"@babel/helper-validator-option@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" + integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== + +"@babel/helper-wrap-function@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz#d99dfd595312e6c894bd7d237470025c85eea9d0" + integrity sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g== + dependencies: + "@babel/template" "^7.25.9" + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helpers@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808" + integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== + dependencies: + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4", "@babel/parser@^7.26.10", "@babel/parser@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec" + integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== + dependencies: + "@babel/types" "^7.27.0" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" + integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30" + integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137" + integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1" + integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/plugin-transform-optional-chaining" "^7.25.9" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e" + integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-proposal-private-property-in-object@^7.21.11": + version "7.21.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c" + integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-syntax-import-assertions@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f" + integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-syntax-import-attributes@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" + integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845" + integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-async-generator-functions@^7.26.8": + version "7.26.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz#5e3991135e3b9c6eaaf5eff56d1ae5a11df45ff8" + integrity sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + "@babel/helper-remap-async-to-generator" "^7.25.9" + "@babel/traverse" "^7.26.8" + +"@babel/plugin-transform-async-to-generator@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71" + integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-remap-async-to-generator" "^7.25.9" + +"@babel/plugin-transform-block-scoped-functions@^7.26.5": + version "7.26.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz#3dc4405d31ad1cbe45293aa57205a6e3b009d53e" + integrity sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + +"@babel/plugin-transform-block-scoping@^7.25.9": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.0.tgz#acc2c0d98a7439bbde4244588ddbd4904701d47f" + integrity sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + +"@babel/plugin-transform-class-properties@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f" + integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-class-static-block@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" + integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-classes@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52" + integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-replace-supers" "^7.25.9" + "@babel/traverse" "^7.25.9" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b" + integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/template" "^7.25.9" + +"@babel/plugin-transform-destructuring@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1" + integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-dotall-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a" + integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-duplicate-keys@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d" + integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31" + integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-dynamic-import@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8" + integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-exponentiation-operator@^7.26.3": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz#e29f01b6de302c7c2c794277a48f04a9ca7f03bc" + integrity sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-export-namespace-from@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2" + integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-for-of@^7.26.9": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz#27231f79d5170ef33b5111f07fe5cafeb2c96a56" + integrity sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + +"@babel/plugin-transform-function-name@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97" + integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA== + dependencies: + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-transform-json-strings@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660" + integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-literals@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de" + integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-logical-assignment-operators@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7" + integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-member-expression-literals@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de" + integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-modules-amd@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5" + integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== + dependencies: + "@babel/helper-module-transforms" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-modules-commonjs@^7.26.3": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb" + integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== + dependencies: + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-modules-systemjs@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8" + integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== + dependencies: + "@babel/helper-module-transforms" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-transform-modules-umd@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9" + integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== + dependencies: + "@babel/helper-module-transforms" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a" + integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-new-target@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd" + integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.26.6": + version "7.26.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz#fbf6b3c92cb509e7b319ee46e3da89c5bedd31fe" + integrity sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + +"@babel/plugin-transform-numeric-separator@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1" + integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-object-rest-spread@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18" + integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg== + dependencies: + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/plugin-transform-parameters" "^7.25.9" + +"@babel/plugin-transform-object-super@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03" + integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-replace-supers" "^7.25.9" + +"@babel/plugin-transform-optional-catch-binding@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3" + integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-optional-chaining@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd" + integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + +"@babel/plugin-transform-parameters@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257" + integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-private-methods@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57" + integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-private-property-in-object@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33" + integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-property-literals@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f" + integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-react-jsx-self@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz#c0b6cae9c1b73967f7f9eb2fca9536ba2fad2858" + integrity sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-react-jsx-source@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz#4c6b8daa520b5f155b5fb55547d7c9fa91417503" + integrity sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-regenerator@^7.25.9": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.0.tgz#822feebef43d6a59a81f696b2512df5b1682db31" + integrity sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-regexp-modifiers@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850" + integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-reserved-words@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce" + integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-shorthand-properties@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2" + integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-spread@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9" + integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + +"@babel/plugin-transform-sticky-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32" + integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-template-literals@^7.26.8": + version "7.26.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz#966b15d153a991172a540a69ad5e1845ced990b5" + integrity sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + +"@babel/plugin-transform-typeof-symbol@^7.26.7": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.0.tgz#044a0890f3ca694207c7826d0c7a65e5ac008aae" + integrity sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + +"@babel/plugin-transform-unicode-escapes@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82" + integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-unicode-property-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3" + integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-unicode-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1" + integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-unicode-sets-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe" + integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/preset-env@^7.26.9": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.9.tgz#2ec64e903d0efe743699f77a10bdf7955c2123c3" + integrity sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ== + dependencies: + "@babel/compat-data" "^7.26.8" + "@babel/helper-compilation-targets" "^7.26.5" + "@babel/helper-plugin-utils" "^7.26.5" + "@babel/helper-validator-option" "^7.25.9" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.9" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-import-assertions" "^7.26.0" + "@babel/plugin-syntax-import-attributes" "^7.26.0" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.25.9" + "@babel/plugin-transform-async-generator-functions" "^7.26.8" + "@babel/plugin-transform-async-to-generator" "^7.25.9" + "@babel/plugin-transform-block-scoped-functions" "^7.26.5" + "@babel/plugin-transform-block-scoping" "^7.25.9" + "@babel/plugin-transform-class-properties" "^7.25.9" + "@babel/plugin-transform-class-static-block" "^7.26.0" + "@babel/plugin-transform-classes" "^7.25.9" + "@babel/plugin-transform-computed-properties" "^7.25.9" + "@babel/plugin-transform-destructuring" "^7.25.9" + "@babel/plugin-transform-dotall-regex" "^7.25.9" + "@babel/plugin-transform-duplicate-keys" "^7.25.9" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9" + "@babel/plugin-transform-dynamic-import" "^7.25.9" + "@babel/plugin-transform-exponentiation-operator" "^7.26.3" + "@babel/plugin-transform-export-namespace-from" "^7.25.9" + "@babel/plugin-transform-for-of" "^7.26.9" + "@babel/plugin-transform-function-name" "^7.25.9" + "@babel/plugin-transform-json-strings" "^7.25.9" + "@babel/plugin-transform-literals" "^7.25.9" + "@babel/plugin-transform-logical-assignment-operators" "^7.25.9" + "@babel/plugin-transform-member-expression-literals" "^7.25.9" + "@babel/plugin-transform-modules-amd" "^7.25.9" + "@babel/plugin-transform-modules-commonjs" "^7.26.3" + "@babel/plugin-transform-modules-systemjs" "^7.25.9" + "@babel/plugin-transform-modules-umd" "^7.25.9" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9" + "@babel/plugin-transform-new-target" "^7.25.9" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.26.6" + "@babel/plugin-transform-numeric-separator" "^7.25.9" + "@babel/plugin-transform-object-rest-spread" "^7.25.9" + "@babel/plugin-transform-object-super" "^7.25.9" + "@babel/plugin-transform-optional-catch-binding" "^7.25.9" + "@babel/plugin-transform-optional-chaining" "^7.25.9" + "@babel/plugin-transform-parameters" "^7.25.9" + "@babel/plugin-transform-private-methods" "^7.25.9" + "@babel/plugin-transform-private-property-in-object" "^7.25.9" + "@babel/plugin-transform-property-literals" "^7.25.9" + "@babel/plugin-transform-regenerator" "^7.25.9" + "@babel/plugin-transform-regexp-modifiers" "^7.26.0" + "@babel/plugin-transform-reserved-words" "^7.25.9" + "@babel/plugin-transform-shorthand-properties" "^7.25.9" + "@babel/plugin-transform-spread" "^7.25.9" + "@babel/plugin-transform-sticky-regex" "^7.25.9" + "@babel/plugin-transform-template-literals" "^7.26.8" + "@babel/plugin-transform-typeof-symbol" "^7.26.7" + "@babel/plugin-transform-unicode-escapes" "^7.25.9" + "@babel/plugin-transform-unicode-property-regex" "^7.25.9" + "@babel/plugin-transform-unicode-regex" "^7.25.9" + "@babel/plugin-transform-unicode-sets-regex" "^7.25.9" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.11.0" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.40.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/runtime@^7.12.5", "@babel/runtime@^7.20.13", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.0.tgz#fbee7cf97c709518ecc1f590984481d5460d4762" + integrity sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.25.9", "@babel/template@^7.26.9", "@babel/template@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4" + integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + +"@babel/traverse@^7.21.4", "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.8", "@babel/traverse@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.0.tgz#11d7e644779e166c0442f9a07274d02cd91d4a70" + integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.27.0" + "@babel/parser" "^7.27.0" + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.21.4", "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.27.0", "@babel/types@^7.4.4": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" + integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + +"@biomejs/biome@^1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.9.4.tgz#89766281cbc3a0aae865a7ff13d6aaffea2842bf" + integrity sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog== + optionalDependencies: + "@biomejs/cli-darwin-arm64" "1.9.4" + "@biomejs/cli-darwin-x64" "1.9.4" + "@biomejs/cli-linux-arm64" "1.9.4" + "@biomejs/cli-linux-arm64-musl" "1.9.4" + "@biomejs/cli-linux-x64" "1.9.4" + "@biomejs/cli-linux-x64-musl" "1.9.4" + "@biomejs/cli-win32-arm64" "1.9.4" + "@biomejs/cli-win32-x64" "1.9.4" + +"@biomejs/cli-darwin-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz#dfa376d23a54a2d8f17133c92f23c1bf2e62509f" + integrity sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw== + +"@biomejs/cli-darwin-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz#eafc2ce3849d385fc02238aad1ca4a73395a64d9" + integrity sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg== + +"@biomejs/cli-linux-arm64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz#d780c3e01758fc90f3268357e3f19163d1f84fca" + integrity sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA== + +"@biomejs/cli-linux-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz#8ed1dd0e89419a4b66a47f95aefb8c46ae6041c9" + integrity sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g== + +"@biomejs/cli-linux-x64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz#f36982b966bd671a36671e1de4417963d7db15fb" + integrity sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg== + +"@biomejs/cli-linux-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz#a0a7f56680c76b8034ddc149dbf398bdd3a462e8" + integrity sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg== + +"@biomejs/cli-win32-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz#e2ef4e0084e76b7e26f0fc887c5ef1265ea56200" + integrity sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg== + +"@biomejs/cli-win32-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz#4c7afa90e3970213599b4095e62f87e5972b2340" + integrity sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA== + +"@codemirror/autocomplete@6.18.6", "@codemirror/autocomplete@^6.0.0", "@codemirror/autocomplete@^6.18.6": + version "6.18.6" + resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.18.6.tgz#de26e864a1ec8192a1b241eb86addbb612964ddb" + integrity sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/common" "^1.0.0" + +"@codemirror/commands@^6.0.0", "@codemirror/commands@^6.8.1": + version "6.8.1" + resolved "https://registry.yarnpkg.com/@codemirror/commands/-/commands-6.8.1.tgz#639f5559d2f33f2582a2429c58cb0c1b925c7a30" + integrity sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.4.0" + "@codemirror/view" "^6.27.0" + "@lezer/common" "^1.1.0" + +"@codemirror/language@^6.0.0", "@codemirror/language@^6.10.3", "@codemirror/language@^6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.11.0.tgz#5ae90972601497f4575f30811519d720bf7232c9" + integrity sha512-A7+f++LodNNc1wGgoRDTt78cOwWm9KVezApgjOMp1W4hM0898nsqBXwF+sbePE7ZRcjN7Sa1Z5m2oN27XkmEjQ== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.23.0" + "@lezer/common" "^1.1.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + style-mod "^4.0.0" + +"@codemirror/lint@^6.0.0", "@codemirror/lint@^6.8.5": + version "6.8.5" + resolved "https://registry.yarnpkg.com/@codemirror/lint/-/lint-6.8.5.tgz#9edaa808e764e28e07665b015951934c8ec3a418" + integrity sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.35.0" + crelt "^1.0.5" + +"@codemirror/search@^6.0.0", "@codemirror/search@^6.5.10": + version "6.5.10" + resolved "https://registry.yarnpkg.com/@codemirror/search/-/search-6.5.10.tgz#7367bfc88094d078b91c752bc74140fb565b55ee" + integrity sha512-RMdPdmsrUf53pb2VwflKGHEe1XVM07hI7vV2ntgw1dmqhimpatSJKva4VA9h4TLUDOD4EIF02201oZurpnEFsg== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + crelt "^1.0.5" + +"@codemirror/state@^6.0.0", "@codemirror/state@^6.2.1", "@codemirror/state@^6.4.0", "@codemirror/state@^6.5.0", "@codemirror/state@^6.5.2": + version "6.5.2" + resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-6.5.2.tgz#8eca3a64212a83367dc85475b7d78d5c9b7076c6" + integrity sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA== + dependencies: + "@marijn/find-cluster-break" "^1.0.0" + +"@codemirror/theme-one-dark@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz#fcef9f9cfc17a07836cb7da17c9f6d7231064df8" + integrity sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + "@lezer/highlight" "^1.0.0" + +"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0", "@codemirror/view@^6.27.0", "@codemirror/view@^6.35.0": + version "6.36.6" + resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.36.6.tgz#735a6431caed0c2c7d26c645066b02f10e802812" + integrity sha512-uxugGLet+Nzp0Jcit8Hn3LypM8ioMLKTsdf8FRoT3HWvZtb9GhaWMe0Cc15rz90Ljab4YFJiAulmIVB74OY0IQ== + dependencies: + "@codemirror/state" "^6.5.0" + style-mod "^4.1.0" + w3c-keyname "^2.2.4" + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@csstools/color-helpers@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.0.2.tgz#82592c9a7c2b83c293d9161894e2a6471feb97b8" + integrity sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA== + +"@csstools/css-calc@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.3.tgz#6f68affcb569a86b91965e8622d644be35a08423" + integrity sha512-XBG3talrhid44BY1x3MHzUx/aTG8+x/Zi57M4aTKK9RFB4aLlF3TTSzfzn8nWVHWL3FgAXAxmupmDd6VWww+pw== + +"@csstools/css-color-parser@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.9.tgz#8d81b77d6f211495b5100ec4cad4c8828de49f6b" + integrity sha512-wILs5Zk7BU86UArYBJTPy/FMPPKVKHMj1ycCEyf3VUptol0JNRLFU/BZsJ4aiIHJEbSLiizzRrw8Pc1uAEDrXw== + dependencies: + "@csstools/color-helpers" "^5.0.2" + "@csstools/css-calc" "^2.1.3" + +"@csstools/css-parser-algorithms@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz#74426e93bd1c4dcab3e441f5cc7ba4fb35d94356" + integrity sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A== + +"@csstools/css-tokenizer@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz#a5502c8539265fecbd873c1e395a890339f119c2" + integrity sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw== + +"@csstools/postcss-oklab-function@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.9.tgz#21d8846b3fe632d663b8cfe5d1fa2ccdd3f0709a" + integrity sha512-UHrnujimwtdDw8BYDcWJtBXuJ13uc/BjAddPdfMc/RsWxhg8gG8UbvTF0tnMtHrZ4i7lwy85fPEzK1AiykMyRA== + dependencies: + "@csstools/css-color-parser" "^3.0.9" + "@csstools/css-parser-algorithms" "^3.0.4" + "@csstools/css-tokenizer" "^3.0.3" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-progressive-custom-properties@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.1.tgz#487e619d2577358cb08ed7319dd203d4d5db5bb6" + integrity sha512-Ofz81HaY8mmbP8/Qr3PZlUzjsyV5WuxWmvtYn+jhYGvvjFazTmN9R2io5W5znY1tyk2CA9uM0IPWyY4ygDytCw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/utilities@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@csstools/utilities/-/utilities-2.0.0.tgz#f7ff0fee38c9ffb5646d47b6906e0bc8868bde60" + integrity sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ== + +"@develar/schema-utils@~2.6.5": + version "2.6.5" + resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" + integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + +"@electron-forge/cli@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/cli/-/cli-7.8.0.tgz#871e6f5e491cf7c41b11847f3176369176c2e073" + integrity sha512-XZ+Hg7pxeE9pgrahqcpMlND+VH0l0UTZLyO5wkI+YfanNyBQksB2mw24XeEtCA6x8F2IaEYdIGgijmPF6qpjzA== + dependencies: + "@electron-forge/core" "7.8.0" + "@electron-forge/core-utils" "7.8.0" + "@electron-forge/shared-types" "7.8.0" + "@electron/get" "^3.0.0" + chalk "^4.0.0" + commander "^11.1.0" + debug "^4.3.1" + fs-extra "^10.0.0" + listr2 "^7.0.2" + log-symbols "^4.0.0" + semver "^7.2.1" + +"@electron-forge/core-utils@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/core-utils/-/core-utils-7.8.0.tgz#e38682c892ac260d9f60ac11c3f9f7c150e56fde" + integrity sha512-ZioRzqkXVOGuwkfvXN/FPZxcssJ9AkOZx6RvxomQn90F77G2KfEbw4ZwAxVTQ+jWNUzydTic5qavWle++Y5IeA== + dependencies: + "@electron-forge/shared-types" "7.8.0" + "@electron/rebuild" "^3.7.0" + "@malept/cross-spawn-promise" "^2.0.0" + chalk "^4.0.0" + debug "^4.3.1" + find-up "^5.0.0" + fs-extra "^10.0.0" + log-symbols "^4.0.0" + semver "^7.2.1" + +"@electron-forge/core@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/core/-/core-7.8.0.tgz#45991916312c6ee76cb627653c565182a3dd189b" + integrity sha512-7byf660ECZND+irOhGxvpmRXjk1bMrsTWh5J2AZMEvaXI8tub9OrZY9VSbi5fcDt0lpHPKmgVk7NRf/ZjJ+beQ== + dependencies: + "@electron-forge/core-utils" "7.8.0" + "@electron-forge/maker-base" "7.8.0" + "@electron-forge/plugin-base" "7.8.0" + "@electron-forge/publisher-base" "7.8.0" + "@electron-forge/shared-types" "7.8.0" + "@electron-forge/template-base" "7.8.0" + "@electron-forge/template-vite" "7.8.0" + "@electron-forge/template-vite-typescript" "7.8.0" + "@electron-forge/template-webpack" "7.8.0" + "@electron-forge/template-webpack-typescript" "7.8.0" + "@electron-forge/tracer" "7.8.0" + "@electron/get" "^3.0.0" + "@electron/packager" "^18.3.5" + "@electron/rebuild" "^3.7.0" + "@malept/cross-spawn-promise" "^2.0.0" + chalk "^4.0.0" + debug "^4.3.1" + fast-glob "^3.2.7" + filenamify "^4.1.0" + find-up "^5.0.0" + fs-extra "^10.0.0" + global-dirs "^3.0.0" + got "^11.8.5" + interpret "^3.1.1" + listr2 "^7.0.2" + lodash "^4.17.20" + log-symbols "^4.0.0" + node-fetch "^2.6.7" + rechoir "^0.8.0" + semver "^7.2.1" + source-map-support "^0.5.13" + sudo-prompt "^9.1.1" + username "^5.1.0" + +"@electron-forge/maker-base@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-base/-/maker-base-7.8.0.tgz#4790a4cd477bd5952aba783e9ff433d15a56217c" + integrity sha512-yGRvz70w+NnKO7PhzNFRgYM+x6kxYFgpbChJIQBs3WChd9bGjL+MZLrwYqmxOFLpWNwRAJ6PEi4E/8U5GgV6AQ== + dependencies: + "@electron-forge/shared-types" "7.8.0" + fs-extra "^10.0.0" + which "^2.0.2" + +"@electron-forge/plugin-base@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/plugin-base/-/plugin-base-7.8.0.tgz#bb617781c28b99d2b65d6f2e66679b245d388e78" + integrity sha512-rDeeChRWIp5rQVo3Uc1q0ncUvA+kWWURW7tMuQjPvy2qVSgX+jIf5krk+T1Dp06+D4YZzEIrkibRaamAaIcR1w== + dependencies: + "@electron-forge/shared-types" "7.8.0" + +"@electron-forge/plugin-fuses@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/plugin-fuses/-/plugin-fuses-7.8.0.tgz#8c526146a8c5b14584b1844e81af13c26514498d" + integrity sha512-ZxFtol3aHNY+oYrZWa7EDBLl4uk/+NlOCJmqC7C32R/3S/Kn2ebVRxpLwrFM12KtHeD+Z3gmZNBhwOe0TECgOA== + dependencies: + "@electron-forge/plugin-base" "7.8.0" + "@electron-forge/shared-types" "7.8.0" + +"@electron-forge/plugin-vite@^7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/plugin-vite/-/plugin-vite-7.8.0.tgz#da57830c604a183ef4ae9b3ca01ac458e501bab9" + integrity sha512-qopX6DU51mUD4bnGYklo5nr0U+hmwATKQavUpncg1i+R0pyYSUrYSVYu2HVFNj8F9QXDyXhf1I2AwwZe9STYug== + dependencies: + "@electron-forge/core-utils" "7.8.0" + "@electron-forge/plugin-base" "7.8.0" + "@electron-forge/shared-types" "7.8.0" + "@electron-forge/web-multi-logger" "7.8.0" + chalk "^4.0.0" + debug "^4.3.1" + fs-extra "^10.0.0" + listr2 "^7.0.2" + +"@electron-forge/publisher-base@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/publisher-base/-/publisher-base-7.8.0.tgz#5b86f7dec28aecf19448a54b7f65371e18bcc9c7" + integrity sha512-wrZyptJ0Uqvlh2wYzDZfIu2HgCQ+kdGiBlcucmLY4W+GUqf043O8cbYso3D9NXQxOow55QC/1saCQkgLphprPA== + dependencies: + "@electron-forge/shared-types" "7.8.0" + +"@electron-forge/shared-types@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/shared-types/-/shared-types-7.8.0.tgz#dbc9b20ecd547d0758d7abc90587983c7f2fd3e8" + integrity sha512-Ul+7HPvAZiAirqpZm0vc9YvlkAE+2bcrI10p3t50mEtuxn5VO/mB72NXiEKfWzHm8F31JySIe9bUV6s1MHQcCw== + dependencies: + "@electron-forge/tracer" "7.8.0" + "@electron/packager" "^18.3.5" + "@electron/rebuild" "^3.7.0" + listr2 "^7.0.2" + +"@electron-forge/template-base@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/template-base/-/template-base-7.8.0.tgz#9721d6c42120db094c83436404a458a2cb6e5412" + integrity sha512-hc8NwoDqEEmZFH/p0p3MK/7xygMmI+cm8Gavoj2Mr2xS7VUUu4r3b5PwIGKvkLfPG34uwsiVwtid2t1rWGF4UA== + dependencies: + "@electron-forge/core-utils" "7.8.0" + "@electron-forge/shared-types" "7.8.0" + "@malept/cross-spawn-promise" "^2.0.0" + debug "^4.3.1" + fs-extra "^10.0.0" + username "^5.1.0" + +"@electron-forge/template-vite-typescript@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.8.0.tgz#106558f6e3af263629e730fd2a60e9eaffefb7cf" + integrity sha512-kW3CaVxKHUYuVfY+rT3iepeZ69frBRGh3YZOngLY2buCvGIqNEx+VCgrFBRDDbOKGmwQtwO1E9wp2rtC8q6Ztg== + dependencies: + "@electron-forge/shared-types" "7.8.0" + "@electron-forge/template-base" "7.8.0" + fs-extra "^10.0.0" + +"@electron-forge/template-vite@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/template-vite/-/template-vite-7.8.0.tgz#8906aa82cb4c0efc3501da0141a9dd382715dd86" + integrity sha512-bf/jd8WzD0gU7Jet+WSi0Lm0SQmseb08WY27ZfJYEs2EVNMiwDfPicgQnOaqP++2yTrXhj1OY/rolZCP9CUyVw== + dependencies: + "@electron-forge/shared-types" "7.8.0" + "@electron-forge/template-base" "7.8.0" + fs-extra "^10.0.0" + +"@electron-forge/template-webpack-typescript@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.8.0.tgz#26731829d8fa18196ae65bf3db46fb6659b1eac7" + integrity sha512-Pl8l+gv3HzqCfFIMLxlEsoAkNd0VEWeZZ675SYyqs0/kBQUifn0bKNhVE4gUZwKGgQCcG1Gvb23KdVGD3H3XmA== + dependencies: + "@electron-forge/shared-types" "7.8.0" + "@electron-forge/template-base" "7.8.0" + fs-extra "^10.0.0" + +"@electron-forge/template-webpack@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/template-webpack/-/template-webpack-7.8.0.tgz#b85b2827193142c6c836ceec8a1776471fdd28c4" + integrity sha512-AdLGC6NVgrd7Q0SaaeiwJKmSBjN6C2EHxZgLMy1yxNSpazU9m3DtYQilDjXqmCWfxkeNzdke0NaeDvLgdJSw5A== + dependencies: + "@electron-forge/shared-types" "7.8.0" + "@electron-forge/template-base" "7.8.0" + fs-extra "^10.0.0" + +"@electron-forge/tracer@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/tracer/-/tracer-7.8.0.tgz#19a9a8164efd2b7a9fa144d424d5e714f115cf77" + integrity sha512-t4fIATZEX6/7PJNfyh6tLzKEsNMpO01Nz/rgHWBxeRvjCw5UNul9OOxoM7b43vfFAO9Jv++34oI3VJ09LeVQ2Q== + dependencies: + chrome-trace-event "^1.0.3" + +"@electron-forge/web-multi-logger@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@electron-forge/web-multi-logger/-/web-multi-logger-7.8.0.tgz#634bcc98e841d67f252a8e9a52821bddf0821dca" + integrity sha512-2nUP7O9auXDsoa185AsZPlIbpargj1lNFweNH1Lch1MCwLlJOI9ZJHiCTAB4qviS4usRs00WeebWg/uN/zOWvA== + dependencies: + express "^4.17.1" + express-ws "^5.0.2" + xterm "^4.9.0" + xterm-addon-fit "^0.5.0" + xterm-addon-search "^0.8.0" + +"@electron/asar@3.2.18": + version "3.2.18" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.18.tgz#fa607f829209bab8b9e0ce6658d3fe81b2cba517" + integrity sha512-2XyvMe3N3Nrs8cV39IKELRHTYUWFKrmqqSY1U+GMlc0jvqjIVnoxhNd2H4JolWQncbJi1DCvb5TNxZuI2fEjWg== + dependencies: + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + +"@electron/asar@^3.2.13", "@electron/asar@^3.2.7", "@electron/asar@^3.3.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.4.1.tgz#4e9196a4b54fba18c56cd8d5cac67c5bdc588065" + integrity sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA== + dependencies: + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + +"@electron/fuses@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@electron/fuses/-/fuses-1.8.0.tgz#ad34d3cc4703b1258b83f6989917052cfc1490a0" + integrity sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw== + dependencies: + chalk "^4.1.1" + fs-extra "^9.0.1" + minimist "^1.2.5" + +"@electron/get@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-2.0.3.tgz#fba552683d387aebd9f3fcadbcafc8e12ee4f960" + integrity sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^11.8.5" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^3.0.0" + +"@electron/get@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-3.1.0.tgz#22c5a0bd917ab201badeb77bc4ad18cba54cb4ec" + integrity sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^11.8.5" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^3.0.0" + +"@electron/node-gyp@git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2": + version "10.2.0-electron.1" + resolved "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2" + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + glob "^8.1.0" + graceful-fs "^4.2.6" + make-fetch-happen "^10.2.1" + nopt "^6.0.0" + proc-log "^2.0.1" + semver "^7.3.5" + tar "^6.2.1" + which "^2.0.2" + +"@electron/notarize@2.5.0", "@electron/notarize@^2.1.0", "@electron/notarize@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-2.5.0.tgz#d4d25356adfa29df4a76bd64a8bd347237cd251e" + integrity sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.1" + promise-retry "^2.0.1" + +"@electron/osx-sign@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.3.1.tgz#faf7eeca7ca004a6be541dc4cf7a1bd59ec59b1c" + integrity sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw== + dependencies: + compare-version "^0.1.2" + debug "^4.3.4" + fs-extra "^10.0.0" + isbinaryfile "^4.0.8" + minimist "^1.2.6" + plist "^3.0.5" + +"@electron/osx-sign@^1.0.5": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.3.3.tgz#af751510488318d9f7663694af85819690d75583" + integrity sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg== + dependencies: + compare-version "^0.1.2" + debug "^4.3.4" + fs-extra "^10.0.0" + isbinaryfile "^4.0.8" + minimist "^1.2.6" + plist "^3.0.5" + +"@electron/packager@^18.3.5": + version "18.3.6" + resolved "https://registry.yarnpkg.com/@electron/packager/-/packager-18.3.6.tgz#3596399334866737bc33ab663e90376d7aad89e4" + integrity sha512-1eXHB5t+SQKvUiDpWGpvr90ZSSbXj+isrh3YbjCTjKT4bE4SQrKSBfukEAaBvp67+GXHFtCHjQgN9qSTFIge+Q== + dependencies: + "@electron/asar" "^3.2.13" + "@electron/get" "^3.0.0" + "@electron/notarize" "^2.1.0" + "@electron/osx-sign" "^1.0.5" + "@electron/universal" "^2.0.1" + "@electron/windows-sign" "^1.0.0" + debug "^4.0.1" + extract-zip "^2.0.0" + filenamify "^4.1.0" + fs-extra "^11.1.0" + galactus "^1.0.0" + get-package-info "^1.0.0" + junk "^3.1.0" + parse-author "^2.0.0" + plist "^3.0.0" + resedit "^2.0.0" + resolve "^1.1.6" + semver "^7.1.3" + yargs-parser "^21.1.1" + +"@electron/rebuild@3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@electron/rebuild/-/rebuild-3.7.0.tgz#82e20c467ddedbb295d7f641592c52e68c141e9f" + integrity sha512-VW++CNSlZwMYP7MyXEbrKjpzEwhB5kDNbzGtiPEjwYysqyTCF+YbNJ210Dj3AjWsGSV4iEEwNkmJN9yGZmVvmw== + dependencies: + "@electron/node-gyp" "https://github.com/electron/node-gyp#06b29aafb7708acef8b3669835c8a7857ebc92d2" + "@malept/cross-spawn-promise" "^2.0.0" + chalk "^4.0.0" + debug "^4.1.1" + detect-libc "^2.0.1" + fs-extra "^10.0.0" + got "^11.7.0" + node-abi "^3.45.0" + node-api-version "^0.2.0" + ora "^5.1.0" + read-binary-file-arch "^1.0.6" + semver "^7.3.5" + tar "^6.0.5" + yargs "^17.0.1" + +"@electron/rebuild@^3.7.0": + version "3.7.2" + resolved "https://registry.yarnpkg.com/@electron/rebuild/-/rebuild-3.7.2.tgz#8d808b29159c50086d27a5dec72b40bf16b4b582" + integrity sha512-19/KbIR/DAxbsCkiaGMXIdPnMCJLkcf8AvGnduJtWBs/CBwiAjY1apCqOLVxrXg+rtXFCngbXhBanWjxLUt1Mg== + dependencies: + "@electron/node-gyp" "https://github.com/electron/node-gyp#06b29aafb7708acef8b3669835c8a7857ebc92d2" + "@malept/cross-spawn-promise" "^2.0.0" + chalk "^4.0.0" + debug "^4.1.1" + detect-libc "^2.0.1" + fs-extra "^10.0.0" + got "^11.7.0" + node-abi "^3.45.0" + node-api-version "^0.2.0" + ora "^5.1.0" + read-binary-file-arch "^1.0.6" + semver "^7.3.5" + tar "^6.0.5" + yargs "^17.0.1" + +"@electron/universal@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-2.0.1.tgz#7b070ab355e02957388f3dbd68e2c3cd08c448ae" + integrity sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA== + dependencies: + "@electron/asar" "^3.2.7" + "@malept/cross-spawn-promise" "^2.0.0" + debug "^4.3.1" + dir-compare "^4.2.0" + fs-extra "^11.1.1" + minimatch "^9.0.3" + plist "^3.1.0" + +"@electron/universal@^2.0.1": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-2.0.2.tgz#834466e6b117fdb94048bcbde5c91d2d4571e718" + integrity sha512-mqY1szx5/d5YLvfCDWWoJdkSIjIz+NdWN4pN0r78lYiE7De+slLpuF3lVxIT+hlJnwk5sH2wFRMl6/oUgUVO3A== + dependencies: + "@electron/asar" "^3.3.1" + "@malept/cross-spawn-promise" "^2.0.0" + debug "^4.3.1" + dir-compare "^4.2.0" + fs-extra "^11.1.1" + minimatch "^9.0.3" + plist "^3.1.0" + +"@electron/windows-sign@^1.0.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@electron/windows-sign/-/windows-sign-1.2.1.tgz#8e4674cfdeb7cd58e14b58e624500d9f03f2873d" + integrity sha512-YfASnrhJ+ve6Q43ZiDwmpBgYgi2u0bYjeAVi2tDfN7YWAKO8X9EEOuPGtqbJpPLM6TfAHimghICjWe2eaJ8BAg== + dependencies: + cross-dirname "^0.1.0" + debug "^4.3.4" + fs-extra "^11.1.1" + minimist "^1.2.8" + postject "^1.0.0-alpha.6" + +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/aix-ppc64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz#014180d9a149cffd95aaeead37179433f5ea5437" + integrity sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz#649e47e04ddb24a27dc05c395724bc5f4c55cbfe" + integrity sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-arm@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.3.tgz#8a0f719c8dc28a4a6567ef7328c36ea85f568ff4" + integrity sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/android-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.3.tgz#e2ab182d1fd06da9bef0784a13c28a7602d78009" + integrity sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz#c7f3166fcece4d158a73dcfe71b2672ca0b1668b" + integrity sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/darwin-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz#d8c5342ec1a4bf4b1915643dfe031ba4b173a87a" + integrity sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz#9f7d789e2eb7747d4868817417cc968ffa84f35b" + integrity sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/freebsd-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz#8ad35c51d084184a8e9e76bb4356e95350a64709" + integrity sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz#3af0da3d9186092a9edd4e28fa342f57d9e3cd30" + integrity sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-arm@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz#e91cafa95e4474b3ae3d54da12e006b782e57225" + integrity sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-ia32@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz#81025732d85b68ee510161b94acdf7e3007ea177" + integrity sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-loong64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz#3c744e4c8d5e1148cbe60a71a11b58ed8ee5deb8" + integrity sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-mips64el@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz#1dfe2a5d63702db9034cc6b10b3087cc0424ec26" + integrity sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-ppc64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz#2e85d9764c04a1ebb346dc0813ea05952c9a5c56" + integrity sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-riscv64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz#a9ea3334556b09f85ccbfead58c803d305092415" + integrity sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-s390x@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz#f6a7cb67969222b200974de58f105dfe8e99448d" + integrity sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/linux-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz#a237d3578ecdd184a3066b1f425e314ade0f8033" + integrity sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA== + +"@esbuild/netbsd-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz#4c15c68d8149614ddb6a56f9c85ae62ccca08259" + integrity sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/netbsd-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz#12f6856f8c54c2d7d0a8a64a9711c01a743878d5" + integrity sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g== + +"@esbuild/openbsd-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz#ca078dad4a34df192c60233b058db2ca3d94bc5c" + integrity sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/openbsd-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz#c9178adb60e140e03a881d0791248489c79f95b2" + integrity sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/sunos-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz#03765eb6d4214ff27e5230af779e80790d1ee09f" + integrity sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-arm64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz#f1c867bd1730a9b8dfc461785ec6462e349411ea" + integrity sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-ia32@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz#77491f59ef6c9ddf41df70670d5678beb3acc322" + integrity sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + +"@esbuild/win32-x64@0.25.3": + version "0.25.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz#b17a2171f9074df9e91bfb07ef99a892ac06412a" + integrity sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz#e4c58fdcf0696e7a5f19c30201ed43123ab15abc" + integrity sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw== + dependencies: + eslint-visitor-keys "^3.4.3" + +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.57.1": + version "8.57.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" + integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== + +"@fortawesome/fontawesome-common-types@6.7.2": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz#7123d74b0c1e726794aed1184795dbce12186470" + integrity sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg== + +"@fortawesome/fontawesome-svg-core@^6.7.2": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz#0ac6013724d5cc327c1eb81335b91300a4fce2f2" + integrity sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA== + dependencies: + "@fortawesome/fontawesome-common-types" "6.7.2" + +"@fortawesome/free-brands-svg-icons@^6.7.2": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.2.tgz#4ebee8098f31da5446dda81edc344025eb59b27e" + integrity sha512-zu0evbcRTgjKfrr77/2XX+bU+kuGfjm0LbajJHVIgBWNIDzrhpRxiCPNT8DW5AdmSsq7Mcf9D1bH0aSeSUSM+Q== + dependencies: + "@fortawesome/fontawesome-common-types" "6.7.2" + +"@fortawesome/free-solid-svg-icons@^6.7.2": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz#fe25883b5eb8464a82918599950d283c465b57f6" + integrity sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA== + dependencies: + "@fortawesome/fontawesome-common-types" "6.7.2" + +"@fortawesome/react-fontawesome@^0.2.0": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.2.tgz#68b058f9132b46c8599875f6a636dad231af78d4" + integrity sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g== + dependencies: + prop-types "^15.8.1" + +"@gar/promisify@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@headlessui/react@^1.7.19": + version "1.7.19" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.19.tgz#91c78cf5fcb254f4a0ebe96936d48421caf75f40" + integrity sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw== + dependencies: + "@tanstack/react-virtual" "^3.0.0-beta.60" + client-only "^0.0.1" + +"@headlessui/tailwindcss@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@headlessui/tailwindcss/-/tailwindcss-0.2.2.tgz#8ebde73fabca72d48636ea56ae790209dc5f0d49" + integrity sha512-xNe42KjdyA4kfUKLLPGzME9zkH7Q3rOZ5huFihWNWOQFxnItxPB3/67yBI8/qBfY8nwBRx5GHn4VprsoluVMGw== + +"@humanwhocodes/config-array@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" + integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== + dependencies: + "@humanwhocodes/object-schema" "^2.0.3" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@iarna/toml@^2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" + integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.8" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@kittycad/lib@2.0.28": + version "2.0.28" + resolved "https://registry.yarnpkg.com/@kittycad/lib/-/lib-2.0.28.tgz#884d561f0d5440f97a3368c7d9f088667447a654" + integrity sha512-DTxUJgrTWk/IB8xSAPsaT3U34PVlWR3Mh/HwVIGWWpd8v/TKebO2vMdfkfn5XcsW1GwMawH/xZo9Su6OCuLXHg== + dependencies: + openapi-types "^12.0.0" + ts-node "^10.9.1" + tslib "~2.8" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== + +"@lezer/common@^1.0.0", "@lezer/common@^1.1.0": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.2.3.tgz#138fcddab157d83da557554851017c6c1e5667fd" + integrity sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA== + +"@lezer/generator@^1.7.3": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@lezer/generator/-/generator-1.7.3.tgz#8bf9e99c7690dd31327425ca46706a380413f54d" + integrity sha512-vAI2O1tPF8QMMgp+bdUeeJCneJNkOZvqsrtyb4ohnFVFdboSqPwBEacnt0HH4E+5h+qsIwTHUSAhffU4hzKl1A== + dependencies: + "@lezer/common" "^1.1.0" + "@lezer/lr" "^1.3.0" + +"@lezer/highlight@^1.0.0", "@lezer/highlight@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.2.1.tgz#596fa8f9aeb58a608be0a563e960c373cbf23f8b" + integrity sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA== + dependencies: + "@lezer/common" "^1.0.0" + +"@lezer/lr@^1.0.0", "@lezer/lr@^1.3.0", "@lezer/lr@^1.4.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.4.2.tgz#931ea3dea8e9de84e90781001dae30dea9ff1727" + integrity sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA== + dependencies: + "@lezer/common" "^1.0.0" + +"@malept/cross-spawn-promise@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz#d0772de1aa680a0bfb9ba2f32b4c828c7857cb9d" + integrity sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg== + dependencies: + cross-spawn "^7.0.1" + +"@malept/flatpak-bundler@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz#e8a32c30a95d20c2b1bb635cc580981a06389858" + integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.0" + lodash "^4.17.15" + tmp-promise "^3.0.2" + +"@marijn/find-cluster-break@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz#775374306116d51c0c500b8c4face0f9a04752d8" + integrity sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g== + +"@nabla/vite-plugin-eslint@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nabla/vite-plugin-eslint/-/vite-plugin-eslint-2.0.5.tgz#f99333a9fe26442e497fd6af269803453b8c4c68" + integrity sha512-m6Q8ZVM0ASZfYyfFbG661mDklhZQZEeBMQgtB26NhdadxPSctHzHsUbF87msdSb0V4Z8R1p/vRkB5SHNOpANAQ== + dependencies: + "@types/eslint" "*" + chalk "^4" + debug "^4" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/fs@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== + dependencies: + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + +"@npmcli/move-file@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@playwright/test@^1.52.0": + version "1.52.0" + resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.52.0.tgz#267ec595b43a8f4fa5e444ea503689629e91a5b8" + integrity sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g== + dependencies: + playwright "1.52.0" + +"@react-hook/latest@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@react-hook/latest/-/latest-1.0.3.tgz#c2d1d0b0af8b69ec6e2b3a2412ba0768ac82db80" + integrity sha512-dy6duzl+JnAZcDbNTfmaP3xHiKtbXYOaz3G51MGVljh548Y8MWzTr+PHLOfvpypEVW9zwvl+VyKjbWKEVbV1Rg== + +"@react-hook/passive-layout-effect@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@react-hook/passive-layout-effect/-/passive-layout-effect-1.2.1.tgz#c06dac2d011f36d61259aa1c6df4f0d5e28bc55e" + integrity sha512-IwEphTD75liO8g+6taS+4oqz+nnroocNfWVHWz7j+N+ZO2vYrc6PV1q7GQhuahL0IOR7JccFTsFKQ/mb6iZWAg== + +"@react-hook/resize-observer@^2.0.1": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@react-hook/resize-observer/-/resize-observer-2.0.2.tgz#f49fe4e6b9de86c583d136df7fae430684528092" + integrity sha512-tzKKzxNpfE5TWmxuv+5Ae3IF58n0FQgQaWJmcbYkjXTRZATXxClnTprQ2uuYygYTpu1pqbBskpwMpj6jpT1djA== + dependencies: + "@react-hook/latest" "^1.0.2" + "@react-hook/passive-layout-effect" "^1.2.0" + +"@redocly/ajv@^8.11.2": + version "8.11.2" + resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.11.2.tgz#46e1bf321ec0ac1e0fd31dea41a3d1fcbdcda0b5" + integrity sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js-replace "^1.0.1" + +"@redocly/config@^0.22.0": + version "0.22.2" + resolved "https://registry.yarnpkg.com/@redocly/config/-/config-0.22.2.tgz#9a05e694816d53a5236cf8768d3cad0e49d8b116" + integrity sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ== + +"@redocly/openapi-core@^1.28.0": + version "1.34.2" + resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.34.2.tgz#859de74a3261fb09a3dc695be4a8d9b1f2059d75" + integrity sha512-glfkQFJizLdq2fBkNvc2FJW0sxDb5exd0wIXhFk+WHaFLMREBC3CxRo2Zq7uJIdfV9U3YTceMbXJklpDfmmwFQ== + dependencies: + "@redocly/ajv" "^8.11.2" + "@redocly/config" "^0.22.0" + colorette "^1.2.0" + https-proxy-agent "^7.0.5" + js-levenshtein "^1.1.6" + js-yaml "^4.1.0" + minimatch "^5.0.1" + pluralize "^8.0.0" + yaml-ast-parser "0.0.43" + +"@remix-run/router@1.23.0": + version "1.23.0" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.23.0.tgz#35390d0e7779626c026b11376da6789eb8389242" + integrity sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA== + +"@replit/codemirror-interact@^6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@replit/codemirror-interact/-/codemirror-interact-6.3.1.tgz#45f6ce8c7e4ff952c698599bd9899f22739fe966" + integrity sha512-3kGCrOSo7tRGrmvThRdMRCjrUo0BqFilC+MiucSznFD6W4snyxaqElZTNWMEfFsj/rWHykcUHlyfLOoxNWjvAw== + dependencies: + "@codemirror/state" "^6.2.1" + +"@rollup/plugin-typescript@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz#ebaeec2e7376faa889030ccd7cb485a649e63118" + integrity sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg== + dependencies: + "@rollup/pluginutils" "^5.1.0" + resolve "^1.22.1" + +"@rollup/plugin-virtual@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-virtual/-/plugin-virtual-3.0.2.tgz#17e17eeecb4c9fa1c0a6e72c9e5f66382fddbb82" + integrity sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A== + +"@rollup/pluginutils@^5.1.0": + version "5.1.4" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.4.tgz#bb94f1f9eaaac944da237767cdfee6c5b2262d4a" + integrity sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^4.0.2" + +"@rollup/rollup-android-arm-eabi@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz#d964ee8ce4d18acf9358f96adc408689b6e27fe3" + integrity sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg== + +"@rollup/rollup-android-arm64@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz#9b5e130ecc32a5fc1e96c09ff371743ee71a62d3" + integrity sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w== + +"@rollup/rollup-darwin-arm64@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz#ef439182c739b20b3c4398cfc03e3c1249ac8903" + integrity sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ== + +"@rollup/rollup-darwin-x64@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz#d7380c1531ab0420ca3be16f17018ef72dd3d504" + integrity sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA== + +"@rollup/rollup-freebsd-arm64@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz#cbcbd7248823c6b430ce543c59906dd3c6df0936" + integrity sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg== + +"@rollup/rollup-freebsd-x64@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz#96bf6ff875bab5219c3472c95fa6eb992586a93b" + integrity sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw== + +"@rollup/rollup-linux-arm-gnueabihf@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz#d80cd62ce6d40f8e611008d8dbf03b5e6bbf009c" + integrity sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA== + +"@rollup/rollup-linux-arm-musleabihf@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz#75440cfc1e8d0f87a239b4c31dfeaf4719b656b7" + integrity sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg== + +"@rollup/rollup-linux-arm64-gnu@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz#ac527485ecbb619247fb08253ec8c551a0712e7c" + integrity sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg== + +"@rollup/rollup-linux-arm64-musl@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz#74d2b5cb11cf714cd7d1682e7c8b39140e908552" + integrity sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ== + +"@rollup/rollup-linux-loongarch64-gnu@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz#a0a310e51da0b5fea0e944b0abd4be899819aef6" + integrity sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg== + +"@rollup/rollup-linux-powerpc64le-gnu@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz#4077e2862b0ac9f61916d6b474d988171bd43b83" + integrity sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw== + +"@rollup/rollup-linux-riscv64-gnu@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz#5812a1a7a2f9581cbe12597307cc7ba3321cf2f3" + integrity sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA== + +"@rollup/rollup-linux-riscv64-musl@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz#973aaaf4adef4531375c36616de4e01647f90039" + integrity sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ== + +"@rollup/rollup-linux-s390x-gnu@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz#9bad59e907ba5bfcf3e9dbd0247dfe583112f70b" + integrity sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw== + +"@rollup/rollup-linux-x64-gnu@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz#68b045a720bd9b4d905f462b997590c2190a6de0" + integrity sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ== + +"@rollup/rollup-linux-x64-musl@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz#8e703e2c2ad19ba7b2cb3d8c3a4ad11d4ee3a282" + integrity sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw== + +"@rollup/rollup-win32-arm64-msvc@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz#c5bee19fa670ff5da5f066be6a58b4568e9c650b" + integrity sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ== + +"@rollup/rollup-win32-ia32-msvc@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz#846e02c17044bd922f6f483a3b4d36aac6e2b921" + integrity sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA== + +"@rollup/rollup-win32-x64-msvc@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz#fd92d31a2931483c25677b9c6698106490cbbc76" + integrity sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ== + +"@rtsao/scc@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" + integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@swc/core-darwin-arm64@1.11.22": + version "1.11.22" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.22.tgz#61d07fd1a86d1f5035bc3cc180bf29d8a1f6cabd" + integrity sha512-upSiFQfo1TE2QM3+KpBcp5SrOdKKjoc+oUoD1mmBDU2Wv4Bjjv16Z2I5ADvIqMV+b87AhYW+4Qu6iVrQD7j96Q== + +"@swc/core-darwin-x64@1.11.22": + version "1.11.22" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.11.22.tgz#e4004c5cc80362d6f2ad482961558d1640878d50" + integrity sha512-8PEuF/gxIMJVK21DjuCOtzdqstn2DqnxVhpAYfXEtm3WmMqLIOIZBypF/xafAozyaHws4aB/5xmz8/7rPsjavw== + +"@swc/core-linux-arm-gnueabihf@1.11.22": + version "1.11.22" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.22.tgz#48078c84c71a6edc45884fb9f106f1a8da1b8311" + integrity sha512-NIPTXvqtn9e7oQHgdaxM9Z/anHoXC3Fg4ZAgw5rSGa1OlnKKupt5sdfJamNggSi+eAtyoFcyfkgqHnfe2u63HA== + +"@swc/core-linux-arm64-gnu@1.11.22": + version "1.11.22" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.22.tgz#03ce14d829441c37a3b217040196e0fad9bf79a2" + integrity sha512-xZ+bgS60c5r8kAeYsLNjJJhhQNkXdidQ277pUabSlu5GjR0CkQUPQ+L9hFeHf8DITEqpPBPRiAiiJsWq5eqMBg== + +"@swc/core-linux-arm64-musl@1.11.22": + version "1.11.22" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.22.tgz#16ff1a87f24d79ac330eb1b243b4e2d0005cce34" + integrity sha512-JhrP/q5VqQl2eJR0xKYIkKTPjgf8CRsAmRnjJA2PtZhfQ543YbYvUqxyXSRyBOxdyX8JwzuAxIPEAlKlT7PPuQ== + +"@swc/core-linux-x64-gnu@1.11.22": + version "1.11.22" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.22.tgz#d249e3ae8b48459e0845aa5fc3099d210833390b" + integrity sha512-htmAVL+U01gk9GyziVUP0UWYaUQBgrsiP7Ytf6uDffrySyn/FclUS3MDPocNydqYsOpj3OpNKPxkaHK+F+X5fg== + +"@swc/core-linux-x64-musl@1.11.22": + version "1.11.22" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.22.tgz#f65d4a75ef829f9da7cd5425d21ddf1d6da5cd46" + integrity sha512-PL0VHbduWPX+ANoyOzr58jBiL2VnD0xGSFwPy7NRZ1Pr6SNWm4jw3x2u6RjLArGhS5EcWp64BSk9ZxqmTV3FEg== + +"@swc/core-win32-arm64-msvc@1.11.22": + version "1.11.22" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.22.tgz#a67dd652d752bd1e6c2244a267c9f179480296fd" + integrity sha512-moJvFhhTVGoMeEThtdF7hQog80Q00CS06v5uB+32VRuv+I31+4WPRyGlTWHO+oY4rReNcXut/mlDHPH7p0LdFg== + +"@swc/core-win32-ia32-msvc@1.11.22": + version "1.11.22" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.22.tgz#3cd02e4d1b759fa35820a58a45cd55f6ebe43ac3" + integrity sha512-/jnsPJJz89F1aKHIb5ScHkwyzBciz2AjEq2m9tDvQdIdVufdJ4SpEDEN9FqsRNRLcBHjtbLs6bnboA+B+pRFXw== + +"@swc/core-win32-x64-msvc@1.11.22": + version "1.11.22" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.22.tgz#971610deb596d420042592d76791273e3921628f" + integrity sha512-lc93Y8Mku7LCFGqIxJ91coXZp2HeoDcFZSHCL90Wttg5xhk5xVM9uUCP+OdQsSsEixLF34h5DbT9ObzP8rAdRw== + +"@swc/core@^1.10.16": + version "1.11.22" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.11.22.tgz#3d77cf84a8cbbe6903f1fe4aa988c50b46b27d82" + integrity sha512-mjPYbqq8XjwqSE0hEPT9CzaJDyxql97LgK4iyvYlwVSQhdN1uK0DBG4eP9PxYzCS2MUGAXB34WFLegdUj5HGpg== + dependencies: + "@swc/counter" "^0.1.3" + "@swc/types" "^0.1.21" + optionalDependencies: + "@swc/core-darwin-arm64" "1.11.22" + "@swc/core-darwin-x64" "1.11.22" + "@swc/core-linux-arm-gnueabihf" "1.11.22" + "@swc/core-linux-arm64-gnu" "1.11.22" + "@swc/core-linux-arm64-musl" "1.11.22" + "@swc/core-linux-x64-gnu" "1.11.22" + "@swc/core-linux-x64-musl" "1.11.22" + "@swc/core-win32-arm64-msvc" "1.11.22" + "@swc/core-win32-ia32-msvc" "1.11.22" + "@swc/core-win32-x64-msvc" "1.11.22" + +"@swc/counter@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" + integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== + +"@swc/types@^0.1.21": + version "0.1.21" + resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.21.tgz#6fcadbeca1d8bc89e1ab3de4948cef12344a38c0" + integrity sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ== + dependencies: + "@swc/counter" "^0.1.3" + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@tanstack/react-virtual@^3.0.0-beta.60": + version "3.13.6" + resolved "https://registry.yarnpkg.com/@tanstack/react-virtual/-/react-virtual-3.13.6.tgz#30243c8c3166673caf66bfbf5352e1b314a3a4cd" + integrity sha512-WT7nWs8ximoQ0CDx/ngoFP7HbQF9Q2wQe4nh2NB+u2486eX3nZRE40P9g6ccCVq7ZfTSH5gFOuCoVH5DLNS/aA== + dependencies: + "@tanstack/virtual-core" "3.13.6" + +"@tanstack/virtual-core@3.13.6": + version "3.13.6" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.13.6.tgz#329f962f1596b3280736c266a982897ed2112157" + integrity sha512-cnQUeWnhNP8tJ4WsGcYiX24Gjkc9ALstLbHcBj1t3E7EimN6n6kHH+DPV4PpDnuw00NApQp+ViojMj1GRdwYQg== + +"@testing-library/dom@^10.0.0": + version "10.4.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-10.4.0.tgz#82a9d9462f11d240ecadbf406607c6ceeeff43a8" + integrity sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^5.0.1" + aria-query "5.3.0" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.5.0" + pretty-format "^27.0.2" + +"@testing-library/jest-dom@^5.14.1": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz#5e97c8f9a15ccf4656da00fecab505728de81e0c" + integrity sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg== + dependencies: + "@adobe/css-tools" "^4.0.1" + "@babel/runtime" "^7.9.2" + "@types/testing-library__jest-dom" "^5.9.1" + aria-query "^5.0.0" + chalk "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.5.6" + lodash "^4.17.15" + redent "^3.0.0" + +"@testing-library/react@^15.0.2": + version "15.0.7" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-15.0.7.tgz#ff733ce0893c875cb5a47672e8e772897128f4ae" + integrity sha512-cg0RvEdD1TIhhkm1IeYMQxrzy0MtUNfa3minv4MjbgcYzJAZ7yD0i0lwoPOTPr+INtiXFezt2o8xMSnyHhEn2Q== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^10.0.0" + "@types/react-dom" "^18.0.0" + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@ts-stack/markdown@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@ts-stack/markdown/-/markdown-1.5.0.tgz#5dc298a20dc3dc040143c5a5948201eb6bf5419d" + integrity sha512-ntVX2Kmb2jyTdH94plJohokvDVPvp6CwXHqsa9NVZTK8cOmHDCYNW0j6thIadUVRTStJhxhfdeovLd0owqDxLw== + dependencies: + tslib "^2.3.0" + +"@tsconfig/node10@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@tsconfig/strictest@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@tsconfig/strictest/-/strictest-2.0.5.tgz#2cbc67f207ba87fdec2a84ad79b1708cf4edd93b" + integrity sha512-ec4tjL2Rr0pkZ5hww65c+EEPYwxOi4Ryv+0MtjeaSQRJyq322Q27eOQiFbuNgw2hpL4hB1/W/HBGk3VKS43osg== + +"@tweenjs/tween.js@^23.1.1", "@tweenjs/tween.js@~23.1.3": + version "23.1.3" + resolved "https://registry.yarnpkg.com/@tweenjs/tween.js/-/tween.js-23.1.3.tgz#eff0245735c04a928bb19c026b58c2a56460539d" + integrity sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA== + +"@types/aria-query@^5.0.1": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" + integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== + +"@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" + integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz#968cdc2366ec3da159f61166428ee40f370e56c2" + integrity sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng== + dependencies: + "@babel/types" "^7.20.7" + +"@types/cacheable-request@^6.0.1": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + +"@types/debug@^4.1.6": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/diff@^7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/diff/-/diff-7.0.2.tgz#d638edebf3c97aa4962b6f1164a7921ab3de9f83" + integrity sha512-JSWRMozjFKsGlEjiiKajUjIJVKuKdE3oVy2DNtK+fUo8q82nhFZ2CPQwicAIkXrofahDXrWJ7mjelvZphMS98Q== + +"@types/electron@^1.6.10": + version "1.6.12" + resolved "https://registry.yarnpkg.com/@types/electron/-/electron-1.6.12.tgz#0921813f95b92fdce9f642f85cb561318fcf0a04" + integrity sha512-NIJokDkGv9h+MStCL1IuiL1FOHYVkszoWeNxJtSI5dcEKRGbX83JcVYNAgk019qOQgJkHtz9WdP0CDXvrArrGg== + dependencies: + electron "*" + +"@types/eslint@*": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@1.0.7", "@types/estree@^1.0.0": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" + integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== + +"@types/fs-extra@9.0.13", "@types/fs-extra@^9.0.11": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + +"@types/glob@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" + integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== + dependencies: + "@types/minimatch" "^5.1.2" + "@types/node" "*" + +"@types/http-cache-semantics@*": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + +"@types/isomorphic-fetch@^0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.39.tgz#889573a72ca637bc1a665910a41ff1cb3b52011f" + integrity sha512-I0gou/ZdA1vMG7t7gMzL7VYu2xAKU78rW9U1l10MI0nn77pEHq3tQqHQ8hMmXdMpBlkxZOorjI4sO594Z3kKJw== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@*": + version "29.5.14" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5" + integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/json-schema@*": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/minimatch@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/minimist@^1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== + +"@types/mocha@^10.0.10": + version "10.0.10" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" + integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== + +"@types/ms@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" + integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== + +"@types/node@*", "@types/node@^22.14.1", "@types/node@^22.7.7": + version "22.14.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.14.1.tgz#53b54585cec81c21eee3697521e31312d6ca1e6f" + integrity sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw== + dependencies: + undici-types "~6.21.0" + +"@types/node@^20.9.0": + version "20.17.30" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.30.tgz#1d93f656d3b869dbef7b796568ac457606ba58d0" + integrity sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg== + dependencies: + undici-types "~6.19.2" + +"@types/pixelmatch@^5.2.6": + version "5.2.6" + resolved "https://registry.yarnpkg.com/@types/pixelmatch/-/pixelmatch-5.2.6.tgz#fba6de304ac958495f27d85989f5c6bb7499a686" + integrity sha512-wC83uexE5KGuUODn6zkm9gMzTwdY5L0chiK+VrKcDfEjzxh1uadlWTvOmAbCpnM9zx/Ww3f8uKlYQVnO/TrqVg== + dependencies: + "@types/node" "*" + +"@types/plist@^3.0.1": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.5.tgz#9a0c49c0f9886c8c8696a7904dd703f6284036e0" + integrity sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA== + dependencies: + "@types/node" "*" + xmlbuilder ">=11.0.1" + +"@types/pngjs@^6.0.4": + version "6.0.5" + resolved "https://registry.yarnpkg.com/@types/pngjs/-/pngjs-6.0.5.tgz#6dec2f7eb8284543ca4e423f3c09b119fa939ea3" + integrity sha512-0k5eKfrA83JOZPppLtS2C7OUtyNAl2wKNxfyYl9Q5g9lPkgBl/9hNyAu6HuEH2J4XmIv2znEpkDd0SaZVxW6iQ== + dependencies: + "@types/node" "*" + +"@types/prop-types@*": + version "15.7.14" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.14.tgz#1433419d73b2a7ebfc6918dcefd2ec0d5cd698f2" + integrity sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ== + +"@types/react-dom@^18.0.0", "@types/react-dom@^18.3.1": + version "18.3.6" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.6.tgz#fa59a5e9a33499a792af6c1130f55921ef49d268" + integrity sha512-nf22//wEbKXusP6E9pfOCDwFdHAX4u172eaJI4YkDRQEZiorm6KfYnSC2SWLDMVWUOWPERmJnN0ujeAfTBLvrw== + +"@types/react-modal@^3.16.3": + version "3.16.3" + resolved "https://registry.yarnpkg.com/@types/react-modal/-/react-modal-3.16.3.tgz#250f32c07f1de28e2bcf9c3e84b56adaa6897013" + integrity sha512-xXuGavyEGaFQDgBv4UVm8/ZsG+qxeQ7f77yNrW3n+1J6XAstUy5rYHeIHPh1KzsGc6IkCIdu6lQ2xWzu1jBTLg== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.2.tgz#11df86f66f188f212c90ecb537327ec68bfd593f" + integrity sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw== + dependencies: + csstype "^3.0.2" + +"@types/react@^18.3.4": + version "18.3.20" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.20.tgz#b0dccda9d2f1bc24d2a04b1d0cb5d0b9a3576ad3" + integrity sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/responselike@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" + integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== + dependencies: + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/stats.js@*": + version "0.17.3" + resolved "https://registry.yarnpkg.com/@types/stats.js/-/stats.js-0.17.3.tgz#705446e12ce0fad618557dd88236f51148b7a935" + integrity sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ== + +"@types/testing-library__jest-dom@^5.9.1": + version "5.14.9" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz#0fb1e6a0278d87b6737db55af5967570b67cb466" + integrity sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw== + dependencies: + "@types/jest" "*" + +"@types/three@^0.175.0": + version "0.175.0" + resolved "https://registry.yarnpkg.com/@types/three/-/three-0.175.0.tgz#dfb15b3e2d09a16c6e2fd8caeaf5c35f7b6d7e6a" + integrity sha512-ldMSBgtZOZ3g9kJ3kOZSEtZIEITmJOzu8eKVpkhf036GuNkM4mt0NXecrjCn5tMm1OblOF7dZehlaDypBfNokw== + dependencies: + "@tweenjs/tween.js" "~23.1.3" + "@types/stats.js" "*" + "@types/webxr" "*" + "@webgpu/types" "*" + fflate "~0.8.2" + meshoptimizer "~0.18.1" + +"@types/ua-parser-js@^0.7.39": + version "0.7.39" + resolved "https://registry.yarnpkg.com/@types/ua-parser-js/-/ua-parser-js-0.7.39.tgz#832c58e460c9435e4e34bb866e85e9146e12cdbb" + integrity sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg== + +"@types/uuid@^9.0.8": + version "9.0.8" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" + integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== + +"@types/verror@^1.10.3": + version "1.10.11" + resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.11.tgz#d3d6b418978c8aa202d41e5bb3483227b6ecc1bb" + integrity sha512-RlDm9K7+o5stv0Co8i8ZRGxDbrTxhJtgjqjFyVh/tXQyl/rYtTKlnTvZ88oSTeYREWurwx20Js4kTuKCsFkUtg== + +"@types/vscode@^1.97.0": + version "1.99.1" + resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.99.1.tgz#bde6e2d9ccbe0493fded98ad639bf2671b8ec9ee" + integrity sha512-cQlqxHZ040ta6ovZXnXRxs3fJiTmlurkIWOfZVcLSZPcm9J4ikFpXuB7gihofGn5ng+kDVma5EmJIclfk0trPQ== + +"@types/webxr@*": + version "0.5.22" + resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.22.tgz#d8a14c12bbfaaa4a13de21ec2d4a8197b3e1b532" + integrity sha512-Vr6Stjv5jPRqH690f5I5GLjVk8GSsoQSYJ2FVd/3jJF7KaqfwPi3ehfBS96mlQ2kPCwZaX6U0rG2+NGHBKkA/A== + +"@types/wicg-file-system-access@^2023.10.6": + version "2023.10.6" + resolved "https://registry.yarnpkg.com/@types/wicg-file-system-access/-/wicg-file-system-access-2023.10.6.tgz#cd8149b14c31b73a53478e656790873945e73ba1" + integrity sha512-YO/183gNRzZFSdKu+ikkD7ambAj4PhgjFAF2A/Mw/7wroSF6ne8r804RkpZzqrJ/F6DO2/IYlQF/ULOZ/bhKyA== + +"@types/ws@^8.18.1": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== + dependencies: + "@types/yargs-parser" "*" + +"@types/yauzl@^2.9.1": + version "2.10.3" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" + integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== + dependencies: + "@types/node" "*" + +"@typescript-eslint/eslint-plugin@8.31.0", "@typescript-eslint/eslint-plugin@^8.27.0": + version "8.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.0.tgz#ef3ece95406a80026f82a19a2984c1e375981711" + integrity sha512-evaQJZ/J/S4wisevDvC1KFZkPzRetH8kYZbkgcTRyql3mcKsf+ZFDV1BVWUGTCAW5pQHoqn5gK5b8kn7ou9aFQ== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "8.31.0" + "@typescript-eslint/type-utils" "8.31.0" + "@typescript-eslint/utils" "8.31.0" + "@typescript-eslint/visitor-keys" "8.31.0" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^2.0.1" + +"@typescript-eslint/parser@8.31.0", "@typescript-eslint/parser@^8.27.0": + version "8.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.31.0.tgz#5ec28823d06dd20ed5f67b61224823f12ccde095" + integrity sha512-67kYYShjBR0jNI5vsf/c3WG4u+zDnCTHTPqVMQguffaWWFs7artgwKmfwdifl+r6XyM5LYLas/dInj2T0SgJyw== + dependencies: + "@typescript-eslint/scope-manager" "8.31.0" + "@typescript-eslint/types" "8.31.0" + "@typescript-eslint/typescript-estree" "8.31.0" + "@typescript-eslint/visitor-keys" "8.31.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@8.31.0", "@typescript-eslint/scope-manager@^8.15.0": + version "8.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz#48c7f7d729ea038e36cae0ff511e48c2412fb11c" + integrity sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw== + dependencies: + "@typescript-eslint/types" "8.31.0" + "@typescript-eslint/visitor-keys" "8.31.0" + +"@typescript-eslint/type-utils@8.31.0": + version "8.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.31.0.tgz#01536a993fae23e2def885b006aaa991cbfbe9e7" + integrity sha512-DJ1N1GdjI7IS7uRlzJuEDCgDQix3ZVYVtgeWEyhyn4iaoitpMBX6Ndd488mXSx0xah/cONAkEaYyylDyAeHMHg== + dependencies: + "@typescript-eslint/typescript-estree" "8.31.0" + "@typescript-eslint/utils" "8.31.0" + debug "^4.3.4" + ts-api-utils "^2.0.1" + +"@typescript-eslint/types@8.31.0": + version "8.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.31.0.tgz#c48e20ec47a43b72747714f49ea9f7b38a4fa6c1" + integrity sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ== + +"@typescript-eslint/typescript-estree@8.31.0": + version "8.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz#9c7f84eff6ad23d63cf086c6e93af571cd561270" + integrity sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ== + dependencies: + "@typescript-eslint/types" "8.31.0" + "@typescript-eslint/visitor-keys" "8.31.0" + debug "^4.3.4" + fast-glob "^3.3.2" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^2.0.1" + +"@typescript-eslint/utils@8.31.0", "@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/utils@^8.15.0": + version "8.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.31.0.tgz#6fb52471a29fdd16fc253d568c5ad4b048f78ba4" + integrity sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.31.0" + "@typescript-eslint/types" "8.31.0" + "@typescript-eslint/typescript-estree" "8.31.0" + +"@typescript-eslint/visitor-keys@8.31.0": + version "8.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz#9a1a97ed16c60d4d1e7399b41c11a6d94ebc1ce5" + integrity sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ== + dependencies: + "@typescript-eslint/types" "8.31.0" + eslint-visitor-keys "^4.2.0" + +"@ungap/structured-clone@^1.2.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + +"@vitejs/plugin-react@^4.4.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz#d7d1e9c9616d7536b0953637edfee7c6cbe2fe0f" + integrity sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w== + dependencies: + "@babel/core" "^7.26.10" + "@babel/plugin-transform-react-jsx-self" "^7.25.9" + "@babel/plugin-transform-react-jsx-source" "^7.25.9" + "@types/babel__core" "^7.20.5" + react-refresh "^0.17.0" + +"@vitest/expect@1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.6.1.tgz#b90c213f587514a99ac0bf84f88cff9042b0f14d" + integrity sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog== + dependencies: + "@vitest/spy" "1.6.1" + "@vitest/utils" "1.6.1" + chai "^4.3.10" + +"@vitest/expect@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-3.1.2.tgz#b203a7ad2efa6af96c85f6c116216bda259d2bc8" + integrity sha512-O8hJgr+zREopCAqWl3uCVaOdqJwZ9qaDwUP7vy3Xigad0phZe9APxKhPcDNqYYi0rX5oMvwJMSCAXY2afqeTSA== + dependencies: + "@vitest/spy" "3.1.2" + "@vitest/utils" "3.1.2" + chai "^5.2.0" + tinyrainbow "^2.0.0" + +"@vitest/mocker@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-3.1.2.tgz#1ff239036072feb543ab56825ada09b12a075af2" + integrity sha512-kOtd6K2lc7SQ0mBqYv/wdGedlqPdM/B38paPY+OwJ1XiNi44w3Fpog82UfOibmHaV9Wod18A09I9SCKLyDMqgw== + dependencies: + "@vitest/spy" "3.1.2" + estree-walker "^3.0.3" + magic-string "^0.30.17" + +"@vitest/pretty-format@3.1.2", "@vitest/pretty-format@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-3.1.2.tgz#689b0604c0b73fdccb144f11b64d70c9233b23b8" + integrity sha512-R0xAiHuWeDjTSB3kQ3OQpT8Rx3yhdOAIm/JM4axXxnG7Q/fS8XUwggv/A4xzbQA+drYRjzkMnpYnOGAc4oeq8w== + dependencies: + tinyrainbow "^2.0.0" + +"@vitest/runner@1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.6.1.tgz#10f5857c3e376218d58c2bfacfea1161e27e117f" + integrity sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA== + dependencies: + "@vitest/utils" "1.6.1" + p-limit "^5.0.0" + pathe "^1.1.1" + +"@vitest/runner@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-3.1.2.tgz#ffeba74618046221e944e94f09b565af772170cf" + integrity sha512-bhLib9l4xb4sUMPXnThbnhX2Yi8OutBMA8Yahxa7yavQsFDtwY/jrUZwpKp2XH9DhRFJIeytlyGpXCqZ65nR+g== + dependencies: + "@vitest/utils" "3.1.2" + pathe "^2.0.3" + +"@vitest/snapshot@1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.6.1.tgz#90414451a634bb36cd539ccb29ae0d048a8c0479" + integrity sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ== + dependencies: + magic-string "^0.30.5" + pathe "^1.1.1" + pretty-format "^29.7.0" + +"@vitest/snapshot@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-3.1.2.tgz#46c52a417afbf1fe94fba0a5735cbedf9cfc60f6" + integrity sha512-Q1qkpazSF/p4ApZg1vfZSQ5Yw6OCQxVMVrLjslbLFA1hMDrT2uxtqMaw8Tc/jy5DLka1sNs1Y7rBcftMiaSH/Q== + dependencies: + "@vitest/pretty-format" "3.1.2" + magic-string "^0.30.17" + pathe "^2.0.3" + +"@vitest/spy@1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.6.1.tgz#33376be38a5ed1ecd829eb986edaecc3e798c95d" + integrity sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw== + dependencies: + tinyspy "^2.2.0" + +"@vitest/spy@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-3.1.2.tgz#3a5be04d71c4a458c8d6859503626e2aed61bcbf" + integrity sha512-OEc5fSXMws6sHVe4kOFyDSj/+4MSwst0ib4un0DlcYgQvRuYQ0+M2HyqGaauUMnjq87tmUaMNDxKQx7wNfVqPA== + dependencies: + tinyspy "^3.0.2" + +"@vitest/utils@1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.6.1.tgz#6d2f36cb6d866f2bbf59da854a324d6bf8040f17" + integrity sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g== + dependencies: + diff-sequences "^29.6.3" + estree-walker "^3.0.3" + loupe "^2.3.7" + pretty-format "^29.7.0" + +"@vitest/utils@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-3.1.2.tgz#f3ae55b3a205c88c346a2a8dcde7c89210364932" + integrity sha512-5GGd0ytZ7BH3H6JTj9Kw7Prn1Nbg0wZVrIvou+UWxm54d+WoXXgAgjFJ8wn3LdagWLFSEfpPeyYrByZaGEZHLg== + dependencies: + "@vitest/pretty-format" "3.1.2" + loupe "^3.1.3" + tinyrainbow "^2.0.0" + +"@vitest/web-worker@^1.5.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@vitest/web-worker/-/web-worker-1.6.1.tgz#86c9d43736997daef035679ffef745fea063b03e" + integrity sha512-T3zLS/sga4z8ZqgA+iDKyiKOcL7OGG3EJ8xqXEEDuvtQELxCITehwPbDe7cGKQ+YspFsLqdNC9td30uQ1uStFg== + dependencies: + debug "^4.3.4" + +"@vscode/test-electron@^2.4.1": + version "2.5.2" + resolved "https://registry.yarnpkg.com/@vscode/test-electron/-/test-electron-2.5.2.tgz#f7d4078e8230ce9c94322f2a29cc16c17954085d" + integrity sha512-8ukpxv4wYe0iWMRQU18jhzJOHkeGKbnw7xWRX3Zw1WJA4cEKbHcmmLPdPrPtL6rhDcrlCZN+xKRpv09n4gRHYg== + dependencies: + http-proxy-agent "^7.0.2" + https-proxy-agent "^7.0.5" + jszip "^3.10.1" + ora "^8.1.0" + semver "^7.6.2" + +"@vscode/vsce-sign-alpine-arm64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.2.tgz#4accc485e55aa6ff04b195b47f722ead57daa58e" + integrity sha512-E80YvqhtZCLUv3YAf9+tIbbqoinWLCO/B3j03yQPbjT3ZIHCliKZlsy1peNc4XNZ5uIb87Jn0HWx/ZbPXviuAQ== + +"@vscode/vsce-sign-alpine-x64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.2.tgz#4a4b7b505b4cc0f58596394897c49a0bce0e540c" + integrity sha512-n1WC15MSMvTaeJ5KjWCzo0nzjydwxLyoHiMJHu1Ov0VWTZiddasmOQHekA47tFRycnt4FsQrlkSCTdgHppn6bw== + +"@vscode/vsce-sign-darwin-arm64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.2.tgz#10aa69feb7f81a3dc68c242038ca03eaff19c12e" + integrity sha512-rz8F4pMcxPj8fjKAJIfkUT8ycG9CjIp888VY/6pq6cuI2qEzQ0+b5p3xb74CJnBbSC0p2eRVoe+WgNCAxCLtzQ== + +"@vscode/vsce-sign-darwin-x64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.2.tgz#3315528f3ea1007a648b3320bff36a33a9e07aa5" + integrity sha512-MCjPrQ5MY/QVoZ6n0D92jcRb7eYvxAujG/AH2yM6lI0BspvJQxp0o9s5oiAM9r32r9tkLpiy5s2icsbwefAQIw== + +"@vscode/vsce-sign-linux-arm64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.2.tgz#ce5c5cfc99e3454b4fb770405812b46bd6dca870" + integrity sha512-Ybeu7cA6+/koxszsORXX0OJk9N0GgfHq70Wqi4vv2iJCZvBrOWwcIrxKjvFtwyDgdeQzgPheH5nhLVl5eQy7WA== + +"@vscode/vsce-sign-linux-arm@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.2.tgz#4142fda83e7130b31aedd8aa81e4daa6334323c2" + integrity sha512-Fkb5jpbfhZKVw3xwR6t7WYfwKZktVGNXdg1m08uEx1anO0oUPUkoQRsNm4QniL3hmfw0ijg00YA6TrxCRkPVOQ== + +"@vscode/vsce-sign-linux-x64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.2.tgz#59ab93f322efb3cf49166d4e2e812789c3117428" + integrity sha512-NsPPFVtLaTlVJKOiTnO8Cl78LZNWy0Q8iAg+LlBiCDEgC12Gt4WXOSs2pmcIjDYzj2kY4NwdeN1mBTaujYZaPg== + +"@vscode/vsce-sign-win32-arm64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.2.tgz#d095704a14b0404c0b6f696e9889e9a51b31a86c" + integrity sha512-wPs848ymZ3Ny+Y1Qlyi7mcT6VSigG89FWQnp2qRYCyMhdJxOpA4lDwxzlpL8fG6xC8GjQjGDkwbkWUcCobvksQ== + +"@vscode/vsce-sign-win32-x64@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.2.tgz#294ea72b44fedd694d49f5cef4c55bf3876dc257" + integrity sha512-pAiRN6qSAhDM5SVOIxgx+2xnoVUePHbRNC7OD2aOR3WltTKxxF25OfpK8h8UQ7A0BuRkSgREbB59DBlFk4iAeg== + +"@vscode/vsce-sign@^2.0.0": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vscode/vsce-sign/-/vsce-sign-2.0.5.tgz#8850036476dc0d4e080d9c2d8325e3e97eff5193" + integrity sha512-GfYWrsT/vypTMDMgWDm75iDmAOMe7F71sZECJ+Ws6/xyIfmB3ELVnVN+LwMFAvmXY+e6eWhR2EzNGF/zAhWY3Q== + optionalDependencies: + "@vscode/vsce-sign-alpine-arm64" "2.0.2" + "@vscode/vsce-sign-alpine-x64" "2.0.2" + "@vscode/vsce-sign-darwin-arm64" "2.0.2" + "@vscode/vsce-sign-darwin-x64" "2.0.2" + "@vscode/vsce-sign-linux-arm" "2.0.2" + "@vscode/vsce-sign-linux-arm64" "2.0.2" + "@vscode/vsce-sign-linux-x64" "2.0.2" + "@vscode/vsce-sign-win32-arm64" "2.0.2" + "@vscode/vsce-sign-win32-x64" "2.0.2" + +"@vscode/vsce@^3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@vscode/vsce/-/vsce-3.3.2.tgz#1bb86222987814dbb3217c3f8befd63f249c8101" + integrity sha512-XQ4IhctYalSTMwLnMS8+nUaGbU7v99Qm2sOoGfIEf2QC7jpiLXZZMh7NwArEFsKX4gHTJLx0/GqAUlCdC3gKCw== + dependencies: + "@azure/identity" "^4.1.0" + "@vscode/vsce-sign" "^2.0.0" + azure-devops-node-api "^12.5.0" + chalk "^2.4.2" + cheerio "^1.0.0-rc.9" + cockatiel "^3.1.2" + commander "^12.1.0" + form-data "^4.0.0" + glob "^11.0.0" + hosted-git-info "^4.0.2" + jsonc-parser "^3.2.0" + leven "^3.1.0" + markdown-it "^14.1.0" + mime "^1.3.4" + minimatch "^3.0.3" + parse-semver "^1.1.1" + read "^1.0.7" + semver "^7.5.2" + tmp "^0.2.3" + typed-rest-client "^1.8.4" + url-join "^4.0.1" + xml2js "^0.5.0" + yauzl "^2.3.1" + yazl "^2.2.2" + optionalDependencies: + keytar "^7.7.0" + +"@webgpu/types@*": + version "0.1.60" + resolved "https://registry.yarnpkg.com/@webgpu/types/-/types-0.1.60.tgz#4f58e763ce060a81b03ab7ee1ad879c7024923fd" + integrity sha512-8B/tdfRFKdrnejqmvq95ogp8tf52oZ51p3f4QD5m5Paey/qlX4Rhhy5Y8tgFMi7Ms70HzcMMw3EQjH/jdhTwlA== + +"@xmldom/xmldom@^0.8.8": + version "0.8.10" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" + integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== + +"@xstate/cli@^0.5.17": + version "0.5.17" + resolved "https://registry.yarnpkg.com/@xstate/cli/-/cli-0.5.17.tgz#169ece0192680fea59fbc592b14d0d5cf4eeec7e" + integrity sha512-t/R0PeKamiyshT4SYlo4RwBRpuwzYlUuVesMeIxLZ01C2wfbB1mtFb5kMMN35opkDpyYh72fxi8Pt8HxpLZm+w== + dependencies: + "@babel/core" "^7.21.4" + "@xstate/machine-extractor" "^0.16.0" + "@xstate/tools-shared" "^4.1.0" + chokidar "^3.5.3" + commander "^8.0.0" + dotenv "^16.0.3" + isomorphic-fetch "^3.0.0" + prettier "^2.8.8" + xstate "^4.33.4" + xstate-beta "npm:xstate@beta" + +"@xstate/inspect@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@xstate/inspect/-/inspect-0.8.0.tgz#f99d3706cd823d4922c47ce4f4376eecac502cc7" + integrity sha512-wSkFeOnp+7dhn+zTThO0M4D2FEqZN9lGIWowJu5JLa2ojjtlzRwK8SkjcHZ4rLX8VnMev7kGjgQLrGs8kxy+hw== + dependencies: + fast-safe-stringify "^2.1.1" + +"@xstate/machine-extractor@^0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@xstate/machine-extractor/-/machine-extractor-0.16.0.tgz#cceff7365dedb681ecd867be8d1ce9e8fb417c25" + integrity sha512-oYtHWSH/4jSZ46o2qBy2EJqZE6uaP+VYx9mdYYdzw6JT0uMY1PLePWaWAuh3jhi1qupXatNpbfbGeJtetZJCFQ== + dependencies: + "@babel/parser" "^7.21.4" + "@babel/traverse" "^7.21.4" + "@babel/types" "^7.21.4" + recast "^0.23.1" + +"@xstate/react@^4.1.1": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@xstate/react/-/react-4.1.3.tgz#d3db7102ad950584d15f5a07fc17d52a127f3c68" + integrity sha512-zhE+ZfrcCR87bu71Rkh5Z5ruZBivR/7uD/dkelzJqjQdI45IZc9DqTI8lL4Cg5+VN2p5k86KxDsusqW1kW11Tg== + dependencies: + use-isomorphic-layout-effect "^1.1.2" + use-sync-external-store "^1.2.0" + +"@xstate/tools-shared@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@xstate/tools-shared/-/tools-shared-4.1.0.tgz#ccbc3145a439bbbf2c7b1794d9b6bc4098552354" + integrity sha512-AVqlHFlGjoceexIK33D8CDm8zev17gdRFqGRPiDLE9yvjCSzlzPcc65/VlWCV2EvQt99gUHR1bLMw6ONafkF6g== + dependencies: + "@xstate/machine-extractor" "^0.16.0" + +abbrev@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.1.1, acorn-walk@^8.3.2: + version "8.3.4" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== + dependencies: + acorn "^8.11.0" + +acorn@^8.11.0, acorn@^8.14.0, acorn@^8.4.1, acorn@^8.9.0: + version "8.14.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" + integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== + +agent-base@6, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agent-base@^7.1.0, agent-base@^7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1" + integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw== + +agentkeepalive@^4.2.1: + version "4.6.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" + integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== + dependencies: + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-keywords@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== + dependencies: + type-fest "^1.0.2" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.0.0, ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +app-builder-bin@5.0.0-alpha.12: + version "5.0.0-alpha.12" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-5.0.0-alpha.12.tgz#2daf82f8badc698e0adcc95ba36af4ff0650dc80" + integrity sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w== + +app-builder-lib@26.0.12: + version "26.0.12" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-26.0.12.tgz#2e33df936e0f78d4266b058ece90308ea981eefb" + integrity sha512-+/CEPH1fVKf6HowBUs6LcAIoRcjeqgvAeoSE+cl7Y7LndyQ9ViGPYibNk7wmhMHzNgHIuIbw4nWADPO+4mjgWw== + dependencies: + "@develar/schema-utils" "~2.6.5" + "@electron/asar" "3.2.18" + "@electron/fuses" "^1.8.0" + "@electron/notarize" "2.5.0" + "@electron/osx-sign" "1.3.1" + "@electron/rebuild" "3.7.0" + "@electron/universal" "2.0.1" + "@malept/flatpak-bundler" "^0.4.0" + "@types/fs-extra" "9.0.13" + async-exit-hook "^2.0.1" + builder-util "26.0.11" + builder-util-runtime "9.3.1" + chromium-pickle-js "^0.2.0" + config-file-ts "0.2.8-rc1" + debug "^4.3.4" + dotenv "^16.4.5" + dotenv-expand "^11.0.6" + ejs "^3.1.8" + electron-publish "26.0.11" + fs-extra "^10.1.0" + hosted-git-info "^4.1.0" + is-ci "^3.0.0" + isbinaryfile "^5.0.0" + js-yaml "^4.1.0" + json5 "^2.2.3" + lazy-val "^1.0.5" + minimatch "^10.0.0" + plist "3.1.0" + resedit "^1.7.0" + semver "^7.3.8" + tar "^6.1.12" + temp-file "^3.4.0" + tiny-async-pool "1.3.0" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +aria-query@^5.0.0, aria-query@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" + integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== + +array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b" + integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== + dependencies: + call-bound "^1.0.3" + is-array-buffer "^3.0.5" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-includes@^3.1.6, array-includes@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + 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" + +array.prototype.findlast@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" + integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.findlastindex@^1.2.5: + version "1.2.6" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz#cfa1065c81dcb64e34557c9b81d012f6a421c564" + integrity sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + es-shim-unscopables "^1.1.0" + +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" + integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" + +array.prototype.flatmap@^1.3.2, array.prototype.flatmap@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" + integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" + +array.prototype.tosorted@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" + integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" + +arraybuffer.prototype.slice@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c" + integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + is-array-buffer "^3.0.4" + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== + +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== + +ast-types@^0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.16.1.tgz#7a9da1617c9081bc121faafe91711b4c8bb81da2" + integrity sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg== + dependencies: + tslib "^2.0.1" + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-exit-hook@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" + integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== + +async-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" + integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== + +async@^3.2.3, async@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +author-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/author-regex/-/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450" + integrity sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g== + +autoprefixer@^10.4.21: + version "10.4.21" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" + integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ== + dependencies: + browserslist "^4.24.4" + caniuse-lite "^1.0.30001702" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.1.1" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +axe-core@^4.10.0: + version "4.10.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.3.tgz#04145965ac7894faddbac30861e5d8f11bfd14fc" + integrity sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg== + +axobject-query@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" + integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== + +azure-devops-node-api@^12.5.0: + version "12.5.0" + resolved "https://registry.yarnpkg.com/azure-devops-node-api/-/azure-devops-node-api-12.5.0.tgz#38b9efd7c5ac74354fe4e8dbe42697db0b8e85a5" + integrity sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og== + dependencies: + tunnel "0.0.6" + typed-rest-client "^1.8.4" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.13" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz#7d445f0e0607ebc8fb6b01d7e8fb02069b91dd8b" + integrity sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.4" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" + integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.3" + core-js-compat "^3.40.0" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz#428c615d3c177292a22b4f93ed99e358d7906a9b" + integrity sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.4" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base16@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" + integrity sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ== + +base64-arraybuffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc" + integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== + +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +basic-auth@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bl@^4.0.3, bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@^3.1.1: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +body-parser@1.20.3: + version "1.20.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" + integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.13.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" + integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== + dependencies: + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +boolean@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browser-stdout@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserslist@^4.24.0, browserslist@^4.24.4: + version "4.24.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" + integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== + dependencies: + caniuse-lite "^1.0.30001688" + electron-to-chromium "^1.5.73" + node-releases "^2.0.19" + update-browserslist-db "^1.1.1" + +bson@^6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/bson/-/bson-6.10.3.tgz#5f9a463af6b83e264bedd08b236d1356a30eda47" + integrity sha512-MTxGsqgYTwfshYWTRdmZRC+M7FnG1b4y7RO7p2k3X24Wq0yv1m77Wsj0BzlPzd/IowgESfsruQCUToa7vbOpPQ== + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.1.0, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builder-util-runtime@9.3.1: + version "9.3.1" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.3.1.tgz#0daedde0f6d381f2a00a50a407b166fe7dca1a67" + integrity sha512-2/egrNDDnRaxVwK3A+cJq6UOlqOdedGA7JPqCeJjN2Zjk1/QB/6QUi3b714ScIGS7HafFXTyzJEOr5b44I3kvQ== + dependencies: + debug "^4.3.4" + sax "^1.2.4" + +builder-util@26.0.11: + version "26.0.11" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-26.0.11.tgz#ad85b92c93f2b976b973e1d87337e0c6813fcb8f" + integrity sha512-xNjXfsldUEe153h1DraD0XvDOpqGR0L5eKFkdReB7eFW5HqysDZFfly4rckda6y9dF39N3pkPlOblcfHKGw+uA== + dependencies: + "7zip-bin" "~5.2.0" + "@types/debug" "^4.1.6" + app-builder-bin "5.0.0-alpha.12" + builder-util-runtime "9.3.1" + chalk "^4.1.2" + cross-spawn "^7.0.6" + debug "^4.3.4" + fs-extra "^10.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + is-ci "^3.0.0" + js-yaml "^4.1.0" + sanitize-filename "^1.6.3" + source-map-support "^0.5.19" + stat-mode "^1.0.0" + temp-file "^3.4.0" + tiny-async-pool "1.3.0" + +bundle-name@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" + integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== + dependencies: + run-applescript "^7.0.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cac@^6.7.14: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + +cacache@^16.1.0: + version "16.1.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== + dependencies: + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + infer-owner "^1.0.4" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + unique-filename "^2.0.0" + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bind@^1.0.7, call-bind@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.2" + +call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001688, caniuse-lite@^1.0.30001702: + version "1.0.30001715" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz#bd325a37ad366e3fe90827d74062807a34fbaeb2" + integrity sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw== + +chai@^4.3.10: + version "4.5.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8" + integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" + pathval "^1.1.1" + type-detect "^4.1.0" + +chai@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.2.0.tgz#1358ee106763624114addf84ab02697e411c9c05" + integrity sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw== + dependencies: + assertion-error "^2.0.1" + check-error "^2.1.1" + deep-eql "^5.0.1" + loupe "^3.1.0" + pathval "^2.0.0" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.4.1.tgz#1b48bf0963ec158dce2aacf69c093ae2dd2092d8" + integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== + +change-case@^5.4.4: + version "5.4.4" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-5.4.4.tgz#0d52b507d8fb8f204343432381d1a6d7bff97a02" + integrity sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w== + +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" + +check-error@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" + integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== + +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== + dependencies: + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + +cheerio@^1.0.0-rc.9: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0.tgz#1ede4895a82f26e8af71009f961a9b8cb60d6a81" + integrity sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.1.0" + encoding-sniffer "^0.2.0" + htmlparser2 "^9.1.0" + parse5 "^7.1.2" + parse5-htmlparser2-tree-adapter "^7.0.0" + parse5-parser-stream "^7.1.2" + undici "^6.19.5" + whatwg-mimetype "^4.0.0" + +chokidar@^3.5.3, chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chokidar@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== + dependencies: + readdirp "^4.0.1" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-cursor@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" + integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== + dependencies: + restore-cursor "^5.0.0" + +cli-spinners@^2.5.0, cli-spinners@^2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-truncate@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" + integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== + dependencies: + slice-ansi "^5.0.0" + string-width "^5.0.0" + +client-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +cockatiel@^3.1.2: + version "3.2.1" + resolved "https://registry.yarnpkg.com/cockatiel/-/cockatiel-3.2.1.tgz#575f937bc4040a20ae27352a6d07c9c5a741981f" + integrity sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q== + +codemirror@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-6.0.1.tgz#62b91142d45904547ee3e0e0e4c1a79158035a29" + integrity sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/commands" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/lint" "^6.0.0" + "@codemirror/search" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-convert@~0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" + integrity sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling== + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^8.0.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +commander@^9.4.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + +compare-version@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" + integrity sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +confbox@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" + integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== + +config-file-ts@0.2.8-rc1: + version "0.2.8-rc1" + resolved "https://registry.yarnpkg.com/config-file-ts/-/config-file-ts-0.2.8-rc1.tgz#fb7fc6ccb2e313f69dbeb78f1db0b00038049de0" + integrity sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg== + dependencies: + glob "^10.3.12" + typescript "^5.4.3" + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" + integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== + +core-js-compat@^3.40.0: + version "3.41.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.41.0.tgz#4cdfce95f39a8f27759b667cf693d96e5dda3d17" + integrity sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A== + dependencies: + browserslist "^4.24.4" + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +corser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" + integrity sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ== + +crc@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +crelt@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.6.tgz#7cc898ea74e190fb6ef9dae57f8f81cf7302df72" + integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== + +cross-dirname@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cross-dirname/-/cross-dirname-0.1.0.tgz#b899599f30a5389f59e78c150e19f957ad16a37c" + integrity sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q== + +cross-env@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-fetch@^3.1.5: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" + integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== + dependencies: + node-fetch "^2.7.0" + +cross-spawn@^6.0.0: + version "6.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.6.tgz#30d0efa0712ddb7eb5a76e1e8721bffafa6b5d57" + integrity sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3, cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-line-break@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-line-break/-/css-line-break-2.1.0.tgz#bfef660dfa6f5397ea54116bb3cb4873edbc4fa0" + integrity sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w== + dependencies: + utrie "^1.0.2" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfontparser@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3" + integrity sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg== + +csstype@^3.0.2, csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +data-view-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" + integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" + +data-view-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735" + integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" + +data-view-byte-offset@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191" + integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +debug@2.6.9, debug@^2.2.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@^4.3.6, debug@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== + dependencies: + ms "^2.1.3" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +decamelize@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-6.0.0.tgz#8cad4d916fde5c41a264a43d0ecc56fe3d31749e" + integrity sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA== + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-eql@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" + integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== + dependencies: + type-detect "^4.0.0" + +deep-eql@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" + integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +default-browser-id@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.0.tgz#a1d98bf960c15082d8a3fa69e83150ccccc3af26" + integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== + +default-browser@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.2.1.tgz#7b7ba61204ff3e425b556869ae6d3e9d9f1712cf" + integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== + dependencies: + bundle-name "^4.1.0" + default-browser-id "^5.0.0" + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + +define-properties@^1.1.3, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.0, detect-libc@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.4.tgz#f04715b8ba815e53b4d8109655b6508a6865a7e8" + integrity sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diff@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== + +diff@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" + integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== + +dir-compare@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-4.2.0.tgz#d1d4999c14fbf55281071fdae4293b3b9ce86f19" + integrity sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ== + dependencies: + minimatch "^3.0.5" + p-limit "^3.1.0 " + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +dmg-builder@26.0.12: + version "26.0.12" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-26.0.12.tgz#6996ad0bab80a861c9a7b33ee9734d4f60566b46" + integrity sha512-59CAAjAhTaIMCN8y9kD573vDkxbs1uhDcrFLHSgutYdPcGOU35Rf95725snvzEOy4BFB7+eLJ8djCNPmGwG67w== + dependencies: + app-builder-lib "26.0.12" + builder-util "26.0.11" + builder-util-runtime "9.3.1" + fs-extra "^10.1.0" + iconv-lite "^0.6.2" + js-yaml "^4.1.0" + optionalDependencies: + dmg-license "^1.0.11" + +dmg-license@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.11.tgz#7b3bc3745d1b52be7506b4ee80cb61df6e4cd79a" + integrity sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q== + dependencies: + "@types/plist" "^3.0.1" + "@types/verror" "^1.10.3" + ajv "^6.10.0" + crc "^3.8.0" + iconv-corefoundation "^1.1.7" + plist "^3.0.4" + smart-buffer "^4.0.2" + verror "^1.10.0" + +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: + version "0.5.16" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" + integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1, domutils@^3.1.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" + integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dotenv-expand@^11.0.6: + version "11.0.7" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-11.0.7.tgz#af695aea007d6fdc84c86cd8d0ad7beb40a0bd08" + integrity sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA== + dependencies: + dotenv "^16.4.5" + +dotenv@^16.0.3, dotenv@^16.4.5: + version "16.5.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.5.0.tgz#092b49f25f808f020050051d1ff258e404c78692" + integrity sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg== + +dpdm@^3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/dpdm/-/dpdm-3.14.0.tgz#12a60a2d88b23981c91239b86e7462a5c203e5e9" + integrity sha512-YJzsFSyEtj88q5eTELg3UWU7TVZkG1dpbF4JDQ3t1b07xuzXmdoGeSz9TKOke1mUuOpWlk4q+pBh+aHzD6GBTg== + dependencies: + chalk "^4.1.2" + fs-extra "^11.1.1" + glob "^10.3.4" + ora "^5.4.1" + tslib "^2.6.2" + typescript "^5.2.2" + yargs "^17.7.2" + +dunder-proto@^1.0.0, dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^3.1.8: + version "3.1.10" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" + integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== + dependencies: + jake "^10.8.5" + +electron-builder@^26.0.12: + version "26.0.12" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-26.0.12.tgz#797af2e70efdd96c9ea5d8a8164b8728c90d65ff" + integrity sha512-cD1kz5g2sgPTMFHjLxfMjUK5JABq3//J4jPswi93tOPFz6btzXYtK5NrDt717NRbukCUDOrrvmYVOWERlqoiXA== + dependencies: + app-builder-lib "26.0.12" + builder-util "26.0.11" + builder-util-runtime "9.3.1" + chalk "^4.1.2" + dmg-builder "26.0.12" + fs-extra "^10.1.0" + is-ci "^3.0.0" + lazy-val "^1.0.5" + simple-update-notifier "2.0.0" + yargs "^17.6.2" + +electron-publish@26.0.11: + version "26.0.11" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-26.0.11.tgz#92c9329a101af2836d9d228c82966eca1eee9a7b" + integrity sha512-a8QRH0rAPIWH9WyyS5LbNvW9Ark6qe63/LqDB7vu2JXYpi0Gma5Q60Dh4tmTqhOBQt0xsrzD8qE7C+D7j+B24A== + dependencies: + "@types/fs-extra" "^9.0.11" + builder-util "26.0.11" + builder-util-runtime "9.3.1" + chalk "^4.1.2" + form-data "^4.0.0" + fs-extra "^10.1.0" + lazy-val "^1.0.5" + mime "^2.5.2" + +electron-to-chromium@^1.5.73: + version "1.5.142" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.142.tgz#1de55d0d19b24b07768c4bfc90f41bd7f248d043" + integrity sha512-Ah2HgkTu/9RhTDNThBtzu2Wirdy4DC9b0sMT1pUhbkZQ5U/iwmE+PHZX1MpjD5IkJCc2wSghgGG/B04szAx07w== + +electron-updater@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-6.6.2.tgz#3e65e044f1a99b00d61e200e24de8e709c69ce99" + integrity sha512-Cr4GDOkbAUqRHP5/oeOmH/L2Bn6+FQPxVLZtPbcmKZC63a1F3uu5EefYOssgZXG3u/zBlubbJ5PJdITdMVggbw== + dependencies: + builder-util-runtime "9.3.1" + fs-extra "^10.1.0" + js-yaml "^4.1.0" + lazy-val "^1.0.5" + lodash.escaperegexp "^4.1.2" + lodash.isequal "^4.5.0" + semver "^7.6.3" + tiny-typed-emitter "^2.1.0" + +electron@*: + version "35.2.1" + resolved "https://registry.yarnpkg.com/electron/-/electron-35.2.1.tgz#9aa91840e6f72c58cbccf7d17d52da0f479fc35c" + integrity sha512-LO4xXLpzkPPUVLvAbdHMlW7N9Z+Qqz+7QsmSWXluTIQMeJk+v7o36nUTZghyA2I1s//tlMvuaCtle6Qo2W0Ktg== + dependencies: + "@electron/get" "^2.0.0" + "@types/node" "^22.7.7" + extract-zip "^2.0.1" + +electron@^34.1.1: + version "34.5.3" + resolved "https://registry.yarnpkg.com/electron/-/electron-34.5.3.tgz#adfb40aeaf7b6d5bceff3bd35960db9371d11808" + integrity sha512-3hGXL4Hzzt4tadPKaoHHDvOzNrUYqhKkLJpZE2PFoNdDL1HDZwL9sb+qldDoMSbgIVfJpo2/7i6PubK3jMIFLA== + dependencies: + "@electron/get" "^2.0.0" + "@types/node" "^20.9.0" + extract-zip "^2.0.1" + +emoji-regex@^10.3.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4" + integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + +encoding-sniffer@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz#799569d66d443babe82af18c9f403498365ef1d5" + integrity sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg== + dependencies: + iconv-lite "^0.6.3" + whatwg-encoding "^3.1.1" + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +entities@^4.2.0, entities@^4.4.0, entities@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +entities@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.0.tgz#09c9e29cb79b0a6459a9b9db9efb418ac5bb8e51" + integrity sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw== + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-ex@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9: + version "1.23.9" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.9.tgz#5b45994b7de78dada5c1bebf1379646b32b9d606" + integrity sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA== + dependencies: + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.1.0" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.2.7" + get-proto "^1.0.0" + get-symbol-description "^1.1.0" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" + is-callable "^1.2.7" + is-data-view "^1.0.2" + is-regex "^1.2.1" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.0" + math-intrinsics "^1.1.0" + object-inspect "^1.13.3" + object-keys "^1.1.1" + object.assign "^4.1.7" + own-keys "^1.0.1" + regexp.prototype.flags "^1.5.3" + safe-array-concat "^1.1.3" + safe-push-apply "^1.0.0" + safe-regex-test "^1.1.0" + set-proto "^1.0.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.18" + +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-iterator-helpers@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz#d1dd0f58129054c0ad922e6a9a1e65eef435fe75" + integrity sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-abstract "^1.23.6" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.6" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + internal-slot "^1.1.0" + iterator.prototype "^1.1.4" + safe-array-concat "^1.1.3" + +es-module-lexer@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" + integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3, es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +es-shim-unscopables@^1.0.2, es-shim-unscopables@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz#438df35520dac5d105f3943d927549ea3b00f4b5" + integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== + dependencies: + hasown "^2.0.2" + +es-to-primitive@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" + integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== + dependencies: + is-callable "^1.2.7" + is-date-object "^1.0.5" + is-symbol "^1.0.4" + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" + +esbuild@^0.25.0, esbuild@^0.25.2: + version "0.25.3" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.3.tgz#371f7cb41283e5b2191a96047a7a89562965a285" + integrity sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q== + optionalDependencies: + "@esbuild/aix-ppc64" "0.25.3" + "@esbuild/android-arm" "0.25.3" + "@esbuild/android-arm64" "0.25.3" + "@esbuild/android-x64" "0.25.3" + "@esbuild/darwin-arm64" "0.25.3" + "@esbuild/darwin-x64" "0.25.3" + "@esbuild/freebsd-arm64" "0.25.3" + "@esbuild/freebsd-x64" "0.25.3" + "@esbuild/linux-arm" "0.25.3" + "@esbuild/linux-arm64" "0.25.3" + "@esbuild/linux-ia32" "0.25.3" + "@esbuild/linux-loong64" "0.25.3" + "@esbuild/linux-mips64el" "0.25.3" + "@esbuild/linux-ppc64" "0.25.3" + "@esbuild/linux-riscv64" "0.25.3" + "@esbuild/linux-s390x" "0.25.3" + "@esbuild/linux-x64" "0.25.3" + "@esbuild/netbsd-arm64" "0.25.3" + "@esbuild/netbsd-x64" "0.25.3" + "@esbuild/openbsd-arm64" "0.25.3" + "@esbuild/openbsd-x64" "0.25.3" + "@esbuild/sunos-x64" "0.25.3" + "@esbuild/win32-arm64" "0.25.3" + "@esbuild/win32-ia32" "0.25.3" + "@esbuild/win32-x64" "0.25.3" + +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-module-utils@^2.12.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b" + integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== + dependencies: + debug "^3.2.7" + +eslint-plugin-css-modules@^2.12.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-css-modules/-/eslint-plugin-css-modules-2.12.0.tgz#c4102c390c7efd68c4d53677c5e763971699322c" + integrity sha512-ruFBdad69ABrbCDCh5mXj7UzNmrvytfzPACjyvZWIAjFZAG8BXpYSbqmE8gU5wF+pIzV3jU2CWhLvfekXT/IgQ== + dependencies: + gonzales-pe "^4.3.0" + lodash "^4.17.2" + +eslint-plugin-import@^2.31.0: + version "2.31.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7" + integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== + dependencies: + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.8" + array.prototype.findlastindex "^1.2.5" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.12.0" + hasown "^2.0.2" + is-core-module "^2.15.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.0" + semver "^6.3.1" + string.prototype.trimend "^1.0.8" + tsconfig-paths "^3.15.0" + +eslint-plugin-jest@^28.11.0: + version "28.11.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-28.11.0.tgz#2641ecb4411941bbddb3d7cf8a8ff1163fbb510e" + integrity sha512-QAfipLcNCWLVocVbZW8GimKn5p5iiMcgGbRzz8z/P5q7xw+cNEpYqyzFMtIF/ZgF2HLOyy+dYBut+DoYolvqig== + dependencies: + "@typescript-eslint/utils" "^6.0.0 || ^7.0.0 || ^8.0.0" + +eslint-plugin-jsx-a11y@^6.10.2: + version "6.10.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz#d2812bb23bf1ab4665f1718ea442e8372e638483" + integrity sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q== + dependencies: + aria-query "^5.3.2" + array-includes "^3.1.8" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "^4.10.0" + axobject-query "^4.1.0" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + hasown "^2.0.2" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + safe-regex-test "^1.0.3" + string.prototype.includes "^2.0.1" + +eslint-plugin-react-hooks@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz#1be0080901e6ac31ce7971beed3d3ec0a423d9e3" + integrity sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg== + +eslint-plugin-react-perf@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-perf/-/eslint-plugin-react-perf-3.3.3.tgz#29f97ab494fff18dc5e6ec34b056d9a21a86ee71" + integrity sha512-EzPdxsRJg5IllCAH9ny/3nK7sv9251tvKmi/d3Ouv5KzI8TB3zNhzScxL9wnh9Hvv8GYC5LEtzTauynfOEYiAw== + +eslint-plugin-react@^7.37.5: + version "7.37.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz#2975511472bdda1b272b34d779335c9b0e877065" + integrity sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA== + dependencies: + array-includes "^3.1.8" + array.prototype.findlast "^1.2.5" + array.prototype.flatmap "^1.3.3" + array.prototype.tosorted "^1.1.4" + doctrine "^2.1.0" + es-iterator-helpers "^1.2.1" + estraverse "^5.3.0" + hasown "^2.0.2" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.9" + object.fromentries "^2.0.8" + object.values "^1.2.1" + prop-types "^15.8.1" + resolve "^2.0.0-next.5" + semver "^6.3.1" + string.prototype.matchall "^4.0.12" + string.prototype.repeat "^1.0.0" + +eslint-plugin-suggest-no-throw@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-suggest-no-throw/-/eslint-plugin-suggest-no-throw-1.0.0.tgz#facc852aa9acd5e0f4d5e0aff71d6a186e3be8e8" + integrity sha512-IoSDNVeH9WRC9T4Nm3HResFthgiPEW8e6YkKzichJ4fZwac0T8qBQ/8qjmv9NeRSEw8q2EbN/THLE/UU38J46g== + +eslint-plugin-testing-library@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-7.1.1.tgz#df834e821e53fa81c1eb1fad5a0d9ba4c510f9ea" + integrity sha512-nszC833aZPwB6tik1nMkbFqmtgIXTT0sfJEYs0zMBKMlkQ4to2079yUV96SvmLh00ovSBJI4pgcBC1TiIP8mXg== + dependencies: + "@typescript-eslint/scope-manager" "^8.15.0" + "@typescript-eslint/utils" "^8.15.0" + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint-visitor-keys@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" + integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== + +eslint@^8.0.1: + version "8.57.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" + integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.1" + "@humanwhocodes/config-array" "^0.13.0" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + +exenv@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" + integrity sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw== + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +expect-type@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.2.1.tgz#af76d8b357cf5fa76c41c09dafb79c549e75f71f" + integrity sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw== + +expect@^29.0.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +exponential-backoff@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.2.tgz#a8f26adb96bf78e8cd8ad1037928d5e5c0679d91" + integrity sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA== + +express-ws@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/express-ws/-/express-ws-5.0.2.tgz#5b02d41b937d05199c6c266d7cc931c823bda8eb" + integrity sha512-0uvmuk61O9HXgLhGl3QhNSEtRsQevtmbL94/eILaliEADZBHZOQUAiHFrGPrgsjikohyrmSG5g+sCfASTt0lkQ== + dependencies: + ws "^7.4.6" + +express@^4.17.1: + version "4.21.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" + integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.3" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.7.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~2.0.0" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.3.1" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.3" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.12" + proxy-addr "~2.0.7" + qs "6.13.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.19.0" + serve-static "1.16.2" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extract-zip@^2.0.0, extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.7, fast-glob@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.8" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-safe-stringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fastq@^1.6.0: + version "1.19.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" + integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== + dependencies: + reusify "^1.0.4" + +fbemitter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-3.0.0.tgz#00b2a1af5411254aab416cd75f9e6289bee4bff3" + integrity sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw== + dependencies: + fbjs "^3.0.0" + +fbjs-css-vars@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" + integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== + +fbjs@^3.0.0, fbjs@^3.0.1: + version "3.0.5" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.5.tgz#aa0edb7d5caa6340011790bd9249dbef8a81128d" + integrity sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== + dependencies: + cross-fetch "^3.1.5" + fbjs-css-vars "^1.0.0" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^1.0.35" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +fdir@^6.4.4: + version "6.4.4" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.4.tgz#1cfcf86f875a883e19a8fab53622cfe992e8d2f9" + integrity sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg== + +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + +fflate@~0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea" + integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A== + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== + +filenamify@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" + integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.1" + trim-repeated "^1.0.0" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" + integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== + dependencies: + debug "2.6.9" + encodeurl "~2.0.0" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.2.9: + version "3.3.3" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== + +flora-colossus@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/flora-colossus/-/flora-colossus-2.0.0.tgz#af1e85db0a8256ef05f3fb531c1235236c97220a" + integrity sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA== + dependencies: + debug "^4.3.4" + fs-extra "^10.1.0" + +flux@^4.0.1: + version "4.0.4" + resolved "https://registry.yarnpkg.com/flux/-/flux-4.0.4.tgz#9661182ea81d161ee1a6a6af10d20485ef2ac572" + integrity sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw== + dependencies: + fbemitter "^3.0.0" + fbjs "^3.0.1" + +follow-redirects@^1.0.0: + version "1.15.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" + integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== + +for-each@^0.3.3, for-each@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" + integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== + dependencies: + is-callable "^1.2.7" + +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + +form-data@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c" + integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + mime-types "^2.1.12" + +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^10.0.0, fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^11.1.0, fs-extra@^11.1.1: + version "11.3.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.0.tgz#0daced136bbaf65a555a326719af931adc7a314d" + integrity sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.0, fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0, fs-minipass@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78" + integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + functions-have-names "^1.2.3" + hasown "^2.0.2" + is-callable "^1.2.7" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +fuse.js@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-7.1.0.tgz#306228b4befeee11e05b027087c2744158527d09" + integrity sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ== + +galactus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/galactus/-/galactus-1.0.0.tgz#c2615182afa0c6d0859b92e56ae36d052827db7e" + integrity sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ== + dependencies: + debug "^4.3.4" + flora-colossus "^2.0.0" + fs-extra "^10.1.0" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-east-asian-width@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz#21b4071ee58ed04ee0db653371b55b4299875389" + integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ== + +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-package-info@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-package-info/-/get-package-info-1.0.0.tgz#6432796563e28113cd9474dbbd00052985a4999c" + integrity sha512-SCbprXGAPdIhKAXiG+Mk6yeoFH61JlYunqdFQFHDtLjJlDjFf6x07dsS8acO+xWt52jpdVo49AlVDnUVK1sDNw== + dependencies: + bluebird "^3.1.1" + debug "^2.2.0" + lodash.get "^4.0.0" + read-pkg-up "^2.0.0" + +get-proto@^1.0.0, get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + +get-symbol-description@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" + integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + +get-them-args@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/get-them-args/-/get-them-args-1.3.2.tgz#74a20ba8a4abece5ae199ad03f2bcc68fdfc9ba5" + integrity sha512-LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw== + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^10.3.10, glob@^10.3.12, glob@^10.3.4, glob@^10.4.5: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^11.0.0, glob@^11.0.1: + version "11.0.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.2.tgz#3261e3897bbc603030b041fd77ba636022d51ce0" + integrity sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ== + dependencies: + foreground-child "^3.1.0" + jackspeak "^4.0.1" + minimatch "^10.0.0" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^2.0.0" + +glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.1, glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +global-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" + integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== + dependencies: + boolean "^3.0.1" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.1, globalthis@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globrex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" + integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== + +gonzales-pe@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" + integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== + dependencies: + minimist "^1.2.5" + +goober@^2.1.16: + version "2.1.16" + resolved "https://registry.yarnpkg.com/goober/-/goober-2.1.16.tgz#7d548eb9b83ff0988d102be71f271ca8f9c82a95" + integrity sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g== + +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +got@^11.7.0, got@^11.8.5: + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +happy-dom@^16.3.0: + version "16.8.1" + resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-16.8.1.tgz#43d7e998fd36aa6062acbdfa88262ef0bc0a105e" + integrity sha512-n0QrmT9lD81rbpKsyhnlz3DgnMZlaOkJPpgi746doA+HvaMC79bdWkwjrNnGJRvDrWTI8iOcJiVTJ5CdT/AZRw== + dependencies: + webidl-conversions "^7.0.0" + whatwg-mimetype "^3.0.0" + +has-bigints@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe" + integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5" + integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== + dependencies: + dunder-proto "^1.0.0" + +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.2, hosted-git-info@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +html-encoding-sniffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" + integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== + dependencies: + whatwg-encoding "^2.0.0" + +html2canvas-pro@^1.5.8: + version "1.5.8" + resolved "https://registry.yarnpkg.com/html2canvas-pro/-/html2canvas-pro-1.5.8.tgz#d40ba9732c455943fc269f0606895ac00bb0c864" + integrity sha512-bVGAU7IvhBwBlRAmX6QhekX8lsaxmYoF6zIwf/HNlHscjx+KN8jw/U4PQRYqeEVm9+m13hcS1l5ChJB9/e29Lw== + dependencies: + css-line-break "^2.1.0" + text-segmentation "^1.0.3" + +htmlparser2@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-9.1.0.tgz#cdb498d8a75a51f739b61d3f718136c369bc8c23" + integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.1.0" + entities "^4.5.0" + +http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-server@^14.1.1: + version "14.1.1" + resolved "https://registry.yarnpkg.com/http-server/-/http-server-14.1.1.tgz#d60fbb37d7c2fdff0f0fbff0d0ee6670bd285e2e" + integrity sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A== + dependencies: + basic-auth "^2.0.1" + chalk "^4.1.2" + corser "^2.0.1" + he "^1.2.0" + html-encoding-sniffer "^3.0.0" + http-proxy "^1.18.1" + mime "^1.6.0" + minimist "^1.2.6" + opener "^1.5.1" + portfinder "^1.0.28" + secure-compare "3.0.1" + union "~0.5.0" + url-join "^4.0.1" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.5: + version "7.0.6" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" + integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== + dependencies: + agent-base "^7.1.2" + debug "4" + +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + +husky@^9.1.7: + version "9.1.7" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.7.tgz#d46a38035d101b46a70456a850ff4201344c0b2d" + integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== + +iconv-corefoundation@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz#31065e6ab2c9272154c8b0821151e2c88f1b002a" + integrity sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ== + dependencies: + cli-truncate "^2.1.0" + node-addon-api "^1.6.3" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0, ignore@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== + +import-fresh@^3.2.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +index-to-position@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/index-to-position/-/index-to-position-1.1.0.tgz#2e50bd54c8040bdd6d9b3d95ec2a8fedf86b4d44" + integrity sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg== + +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" + integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.2" + side-channel "^1.1.0" + +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + +ip-address@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" + integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== + dependencies: + jsbn "1.1.0" + sprintf-js "^1.1.3" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280" + integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-async-function@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523" + integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== + dependencies: + async-function "^1.0.0" + call-bound "^1.0.3" + get-proto "^1.0.1" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" + +is-bigint@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672" + integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== + dependencies: + has-bigints "^1.0.2" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz#7067f47709809a393c71ff5bb3e135d8a9215d9e" + integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + +is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.13.0, is-core-module@^2.15.1, is-core-module@^2.16.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== + dependencies: + hasown "^2.0.2" + +is-data-view@^1.0.1, is-data-view@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e" + integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== + dependencies: + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + is-typed-array "^1.1.13" + +is-date-object@^1.0.5, is-date-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" + integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== + dependencies: + call-bound "^1.0.2" + has-tostringtag "^1.0.2" + +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + +is-electron@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.2.tgz#3778902a2044d76de98036f5dc58089ac4d80bb9" + integrity sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finalizationregistry@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90" + integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== + dependencies: + call-bound "^1.0.3" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-generator-function@^1.0.10: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.0.tgz#bf3eeda931201394f57b5dba2800f91a238309ca" + integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ== + dependencies: + call-bound "^1.0.3" + get-proto "^1.0.0" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-number-object@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" + integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-regex@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" + integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== + dependencies: + call-bound "^1.0.2" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f" + integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== + dependencies: + call-bound "^1.0.3" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +is-string@^1.0.7, is-string@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" + integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + +is-symbol@^1.0.4, is-symbol@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" + integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== + dependencies: + call-bound "^1.0.2" + has-symbols "^1.1.0" + safe-regex-test "^1.1.0" + +is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== + dependencies: + which-typed-array "^1.1.16" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-unicode-supported@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== + +is-unicode-supported@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz#09f0ab0de6d3744d48d265ebb98f65d11f2a9b3a" + integrity sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ== + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2, is-weakref@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293" + integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== + dependencies: + call-bound "^1.0.3" + +is-weakset@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" + integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== + dependencies: + call-bound "^1.0.3" + get-intrinsic "^1.2.6" + +is-wsl@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + dependencies: + is-inside-container "^1.0.0" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isbinaryfile@^4.0.8: + version "4.0.10" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== + +isbinaryfile@^5.0.0: + version "5.0.4" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.4.tgz#2a2edefa76cafa66613fe4c1ea52f7f031017bdf" + integrity sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isomorphic-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4" + integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== + dependencies: + node-fetch "^2.6.1" + whatwg-fetch "^3.4.1" + +iterator.prototype@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.5.tgz#12c959a29de32de0aa3bbbb801f4d777066dae39" + integrity sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g== + dependencies: + define-data-property "^1.1.4" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.6" + get-proto "^1.0.0" + has-symbols "^1.1.0" + set-function-name "^2.0.2" + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jackspeak@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.1.0.tgz#c489c079f2b636dc4cbe9b0312a13ff1282e561b" + integrity sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw== + dependencies: + "@isaacs/cliui" "^8.0.2" + +jake@^10.8.5: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" + integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jiti@^1.21.6: + version "1.21.7" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.7.tgz#9dd81043424a3d28458b193d965f0d18a2300ba9" + integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== + +jose@^4.15.9: + version "4.15.9" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.9.tgz#9b68eda29e9a0614c042fa29387196c7dd800100" + integrity sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA== + +js-levenshtein@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4" + integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== + +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + +jsesc@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-rpc-2.0@^1.6.0, json-rpc-2.0@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/json-rpc-2.0/-/json-rpc-2.0-1.7.0.tgz#840deb0bc168463e12bceb462f7fe225e793fc17" + integrity sha512-asnLgC1qD5ytP+fvBP8uL0rvj+l8P6iYICbzZ8dVxCpESffVjzA7KkYkbKCIbavs7cllwH1ZUaNtJwphdeRqpg== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonc-parser@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4" + integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonwebtoken@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" + integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^7.5.4" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" + +jszip@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" + integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + setimmediate "^1.0.5" + +junk@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" + integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +keytar@^7.7.0: + version "7.9.0" + resolved "https://registry.yarnpkg.com/keytar/-/keytar-7.9.0.tgz#4c6225708f51b50cbf77c5aae81721964c2918cb" + integrity sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ== + dependencies: + node-addon-api "^4.3.0" + prebuild-install "^7.0.1" + +keyv@^4.0.0, keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kill-port@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/kill-port/-/kill-port-2.0.1.tgz#e5e18e2706b13d54320938be42cb7d40609b15cf" + integrity sha512-e0SVOV5jFo0mx8r7bS29maVWp17qGqLBZ5ricNSajON6//kmb7qqqNnml4twNE8Dtj97UQD+gNFOaipS/q1zzQ== + dependencies: + get-them-args "1.3.2" + shell-exec "1.0.2" + +language-subtag-registry@^0.3.20: + version "0.3.23" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz#23529e04d9e3b74679d70142df3fd2eb6ec572e7" + integrity sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ== + +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== + dependencies: + language-subtag-registry "^0.3.20" + +lazy-val@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" + integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lie@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== + dependencies: + immediate "~3.0.5" + +lilconfig@^3.0.0, lilconfig@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" + integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +linkify-it@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== + dependencies: + uc.micro "^2.0.0" + +listr2@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-7.0.2.tgz#3aa3e1549dfaf3c57ab5eeaba754da3b87f33063" + integrity sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g== + dependencies: + cli-truncate "^3.1.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^5.0.1" + rfdc "^1.3.0" + wrap-ansi "^8.1.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ== + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +local-pkg@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.1.tgz#69658638d2a95287534d4c2fff757980100dbb6d" + integrity sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ== + dependencies: + mlly "^1.7.3" + pkg-types "^1.2.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.curry@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" + integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.escaperegexp@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" + integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== + +lodash.flow@^3.3.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" + integrity sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw== + +lodash.get@^4.0.0: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +lodash@^4.17.15, lodash@^4.17.2, lodash@^4.17.20: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.0.0, log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-symbols@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-6.0.0.tgz#bb95e5f05322651cac30c0feb6404f9f2a8a9439" + integrity sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw== + dependencies: + chalk "^5.3.0" + is-unicode-supported "^1.3.0" + +log-update@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-5.0.1.tgz#9e928bf70cb183c1f0c9e91d9e6b7115d597ce09" + integrity sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== + dependencies: + ansi-escapes "^5.0.0" + cli-cursor "^4.0.0" + slice-ansi "^5.0.0" + strip-ansi "^7.0.1" + wrap-ansi "^8.0.1" + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loupe@^2.3.6, loupe@^2.3.7: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== + dependencies: + get-func-name "^2.0.1" + +loupe@^3.1.0, loupe@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.3.tgz#042a8f7986d77f3d0f98ef7990a2b2fef18b0fd2" + integrity sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.1.0.tgz#afafb060607108132dbc1cf8ae661afb69486117" + integrity sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-cache@^7.7.1: + version "7.18.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + +lz-string@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== + +magic-string@^0.30.17, magic-string@^0.30.5: + version "0.30.17" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" + integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +make-dir@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +make-fetch-happen@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== + dependencies: + agentkeepalive "^4.2.1" + cacache "^16.1.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-fetch "^2.0.3" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +markdown-it@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== + dependencies: + argparse "^2.0.1" + entities "^4.4.0" + linkify-it "^5.0.0" + mdurl "^2.0.0" + punycode.js "^2.3.1" + uc.micro "^2.1.0" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +mdurl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +mem@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +meshoptimizer@~0.18.1: + version "0.18.1" + resolved "https://registry.yarnpkg.com/meshoptimizer/-/meshoptimizer-0.18.1.tgz#cdb90907f30a7b5b1190facd3b7ee6b7087797d8" + integrity sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^4.0.4, micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0, mime@^1.3.4, mime@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^2.0.0, mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +mimic-function@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" + integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1, minimatch@^5.1.0, minimatch@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.3, minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== + dependencies: + minipass "^3.1.6" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mlly@^1.7.3, mlly@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.4.tgz#3d7295ea2358ec7a271eaa5d000a0f84febe100f" + integrity sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw== + dependencies: + acorn "^8.14.0" + pathe "^2.0.1" + pkg-types "^1.3.0" + ufo "^1.5.4" + +mocha@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.1.0.tgz#20d7c6ac4d6d6bcb60a8aa47971fca74c65c3c66" + integrity sha512-8uJR5RTC2NgpY3GrYcgpZrsEd9zKbPDpob1RezyR2upGHRQtHWofmzTMzTMSV6dru3tj5Ukt0+Vnq1qhFEEwAg== + dependencies: + ansi-colors "^4.1.3" + browser-stdout "^1.3.1" + chokidar "^3.5.3" + debug "^4.3.5" + diff "^5.2.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^10.4.5" + he "^1.2.0" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^5.1.6" + ms "^2.1.3" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^6.5.1" + yargs "^17.7.2" + yargs-parser "^21.1.1" + yargs-unparser "^2.0.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.8: + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== + +napi-build-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-2.0.0.tgz#13c22c0187fcfccce1461844136372a47ddc027e" + integrity sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +negotiator@^0.6.3: + version "0.6.4" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-abi@^3.3.0, node-abi@^3.45.0: + version "3.74.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.74.0.tgz#5bfb4424264eaeb91432d2adb9da23c63a301ed0" + integrity sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w== + dependencies: + semver "^7.3.5" + +node-addon-api@^1.6.3: + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" + integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== + +node-addon-api@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" + integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== + +node-api-version@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/node-api-version/-/node-api-version-0.2.1.tgz#19bad54f6d65628cbee4e607a325e4488ace2de9" + integrity sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q== + dependencies: + semver "^7.3.5" + +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@^2.6.1, node-fetch@^2.6.7, node-fetch@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + +node-forge@^1.2.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== + +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + dependencies: + path-key "^2.0.0" + +npm-run-path@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== + dependencies: + path-key "^4.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4, object.assign@^4.1.7: + version "4.1.7" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + has-symbols "^1.1.0" + object-keys "^1.1.1" + +object.entries@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.9.tgz#e4770a6a1444afb61bd39f984018b5bede25f8b3" + integrity sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-object-atoms "^1.1.1" + +object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.groupby@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.values@^1.1.6, object.values@^1.2.0, object.values@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" + integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +oidc-token-hash@^5.0.3: + version "5.1.0" + resolved "https://registry.yarnpkg.com/oidc-token-hash/-/oidc-token-hash-5.1.0.tgz#74bda0c35dd9f71ea9ce0db72ce8dabf5f90ef79" + integrity sha512-y0W+X7Ppo7oZX6eovsRkuzcSM40Bicg2JEJkDJ4irIt1wsYAP5MLSNv+QAogO8xivMffw/9OvV3um1pxXgt1uA== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +onetime@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" + integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== + dependencies: + mimic-function "^5.0.0" + +open@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/open/-/open-10.1.1.tgz#5fd814699e47ae3e1a09962d39f4f4441cae6c22" + integrity sha512-zy1wx4+P3PfhXSEPJNtZmJXfhkkIaxU1VauWIrDZw1O7uJRDRJtKr9n3Ic4NgbA16KyOxOXO2ng9gYwCdXuSXA== + dependencies: + default-browser "^5.2.1" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + is-wsl "^3.1.0" + +openapi-types@^12.0.0: + version "12.1.3" + resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-12.1.3.tgz#471995eb26c4b97b7bd356aacf7b91b73e777dd3" + integrity sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw== + +openapi-typescript@^7.6.1: + version "7.6.1" + resolved "https://registry.yarnpkg.com/openapi-typescript/-/openapi-typescript-7.6.1.tgz#e39d1e21ebf43f91712703f7063118246d099d19" + integrity sha512-F7RXEeo/heF3O9lOXo2bNjCOtfp7u+D6W3a3VNEH2xE6v+fxLtn5nq0uvUcA1F5aT+CMhNeC5Uqtg5tlXFX/ag== + dependencies: + "@redocly/openapi-core" "^1.28.0" + ansi-colors "^4.1.3" + change-case "^5.4.4" + parse-json "^8.1.0" + supports-color "^9.4.0" + yargs-parser "^21.1.1" + +opener@^1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +openid-client@^5.6.5: + version "5.7.1" + resolved "https://registry.yarnpkg.com/openid-client/-/openid-client-5.7.1.tgz#34cace862a3e6472ed7d0a8616ef73b7fb85a9c3" + integrity sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew== + dependencies: + jose "^4.15.9" + lru-cache "^6.0.0" + object-hash "^2.2.0" + oidc-token-hash "^5.0.3" + +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +ora@^5.1.0, ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +ora@^8.1.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-8.2.0.tgz#8fbbb7151afe33b540dd153f171ffa8bd38e9861" + integrity sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw== + dependencies: + chalk "^5.3.0" + cli-cursor "^5.0.0" + cli-spinners "^2.9.2" + is-interactive "^2.0.0" + is-unicode-supported "^2.0.0" + log-symbols "^6.0.0" + stdin-discarder "^0.2.2" + string-width "^7.2.0" + strip-ansi "^7.1.0" + +own-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358" + integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== + dependencies: + get-intrinsic "^1.2.6" + object-keys "^1.1.1" + safe-push-apply "^1.0.0" + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^3.0.2, "p-limit@^3.1.0 ": + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-5.0.0.tgz#6946d5b7140b649b7a33a027d89b4c625b3a5985" + integrity sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + +pako@~1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-author@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-author/-/parse-author-2.0.0.tgz#d3460bf1ddd0dfaeed42da754242e65fb684a81f" + integrity sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw== + dependencies: + author-regex "^1.0.0" + +parse-color@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619" + integrity sha512-fuDHYgFHJGbpGMgw9skY/bj3HL/Jrn4l/5rSspy00DoT4RyLnDcRvPxdZ+r6OFwIsgAuhDh4I09tAId4mI12bw== + dependencies: + color-convert "~0.5.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== + dependencies: + error-ex "^1.2.0" + +parse-json@^8.1.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-8.3.0.tgz#88a195a2157025139a2317a4f2f9252b61304ed5" + integrity sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ== + dependencies: + "@babel/code-frame" "^7.26.2" + index-to-position "^1.1.0" + type-fest "^4.39.1" + +parse-semver@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/parse-semver/-/parse-semver-1.1.1.tgz#9a4afd6df063dc4826f93fba4a99cf223f666cb8" + integrity sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ== + dependencies: + semver "^5.1.0" + +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b" + integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g== + dependencies: + domhandler "^5.0.3" + parse5 "^7.0.0" + +parse5-parser-stream@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz#d7c20eadc37968d272e2c02660fff92dd27e60e1" + integrity sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow== + dependencies: + parse5 "^7.0.0" + +parse5@^7.0.0, parse5@^7.1.2: + version "7.3.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" + integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== + dependencies: + entities "^6.0.0" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-scurry@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" + integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" + +path-to-regexp@0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ== + dependencies: + pify "^2.0.0" + +pathe@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + +pathe@^2.0.1, pathe@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" + integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +pathval@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" + integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== + +pe-library@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/pe-library/-/pe-library-0.4.1.tgz#e269be0340dcb13aa6949d743da7d658c3e2fbea" + integrity sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw== + +pe-library@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pe-library/-/pe-library-1.0.1.tgz#02735430885a622576a53cd8827658b7d2fada0e" + integrity sha512-nh39Mo1eGWmZS7y+mK/dQIqg7S1lp38DpRxkyoHf0ZcUs/HDc+yyTjuOtTvSMZHmfSLuSQaX945u05Y2Q6UWZg== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +picocolors@^1.0.0, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pirates@^4.0.1: + version "4.0.7" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" + integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== + +pixelmatch@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-5.3.0.tgz#5e5321a7abedfb7962d60dbf345deda87cb9560a" + integrity sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q== + dependencies: + pngjs "^6.0.0" + +pkg-types@^1.2.1, pkg-types@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.3.1.tgz#bd7cc70881192777eef5326c19deb46e890917df" + integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== + dependencies: + confbox "^0.1.8" + mlly "^1.7.4" + pathe "^2.0.1" + +playwright-core@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.52.0.tgz#238f1f0c3edd4ebba0434ce3f4401900319a3dca" + integrity sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg== + +playwright@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.52.0.tgz#26cb9a63346651e1c54c8805acfd85683173d4bd" + integrity sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw== + dependencies: + playwright-core "1.52.0" + optionalDependencies: + fsevents "2.3.2" + +plist@3.1.0, plist@^3.0.0, plist@^3.0.4, plist@^3.0.5, plist@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" + integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== + dependencies: + "@xmldom/xmldom" "^0.8.8" + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +pngjs@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-6.0.0.tgz#ca9e5d2aa48db0228a52c419c3308e87720da821" + integrity sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg== + +pngjs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-7.0.0.tgz#a8b7446020ebbc6ac739db6c5415a65d17090e26" + integrity sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow== + +portfinder@^1.0.28: + version "1.0.36" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.36.tgz#4eef523c15e972417a9ee496c3e9c95b8f649d52" + integrity sha512-gMKUzCoP+feA7t45moaSx7UniU7PgGN3hA8acAB+3Qn7/js0/lJ07fYZlxt9riE9S3myyxDCyAFzSrLlta0c9g== + dependencies: + async "^3.2.6" + debug "^4.3.6" + +possible-typed-array-names@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" + integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-load-config@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-nested@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" + integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== + dependencies: + postcss-selector-parser "^6.1.1" + +postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.4.43, postcss@^8.4.47, postcss@^8.5.3: + version "8.5.3" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" + integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== + dependencies: + nanoid "^3.3.8" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +postinstall-postinstall@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3" + integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ== + +postject@^1.0.0-alpha.6: + version "1.0.0-alpha.6" + resolved "https://registry.yarnpkg.com/postject/-/postject-1.0.0-alpha.6.tgz#9d022332272e2cfce8dea4cfce1ee6dd1b2ee135" + integrity sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A== + dependencies: + commander "^9.4.0" + +prebuild-install@^7.0.1: + version "7.1.3" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.3.tgz#d630abad2b147443f20a212917beae68b8092eec" + integrity sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^2.0.0" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier@^2.8.8: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +pretty-format@^27.0.2: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +proc-log@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" + integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +pump@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" + integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pure-color@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e" + integrity sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA== + +qs@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== + dependencies: + side-channel "^1.0.6" + +qs@^6.4.0, qs@^6.9.1: + version "6.14.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" + integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== + dependencies: + side-channel "^1.1.0" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +re-resizable@^6.11.2: + version "6.11.2" + resolved "https://registry.yarnpkg.com/re-resizable/-/re-resizable-6.11.2.tgz#2e8f7119ca3881d5b5aea0ffa014a80e5c1252b3" + integrity sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A== + +react-base16-styling@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c" + integrity sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ== + dependencies: + base16 "^1.0.0" + lodash.curry "^4.0.1" + lodash.flow "^3.3.0" + pure-color "^1.2.0" + +react-dom@^18.2.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.2" + +react-hot-toast@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/react-hot-toast/-/react-hot-toast-2.5.2.tgz#b55328966a26add56513e2dc1682e2cb4753c244" + integrity sha512-Tun3BbCxzmXXM7C+NI4qiv6lT0uwGh4oAfeJyNOjYUejTsm35mK9iCaYLGv8cBz9L5YxZLx/2ii7zsIwPtPUdw== + dependencies: + csstype "^3.1.3" + goober "^2.1.16" + +react-hotkeys-hook@^4.6.1: + version "4.6.2" + resolved "https://registry.yarnpkg.com/react-hotkeys-hook/-/react-hotkeys-hook-4.6.2.tgz#26dd20f59d23204814f223d5c5f3979a3fe83c88" + integrity sha512-FmP+ZriY3EG59Ug/lxNfrObCnW9xQShgk7Nb83+CkpfkcCpfS95ydv+E9JuXA5cp8KtskU7LGlIARpkc92X22Q== + +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-json-view@^1.21.3: + version "1.21.3" + resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.21.3.tgz#f184209ee8f1bf374fb0c41b0813cff54549c475" + integrity sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw== + dependencies: + flux "^4.0.1" + react-base16-styling "^0.6.0" + react-lifecycles-compat "^3.0.4" + react-textarea-autosize "^8.3.2" + +react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-modal-promise@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/react-modal-promise/-/react-modal-promise-1.0.2.tgz#122620b7f19eec73683affadfa77c543d88edc40" + integrity sha512-dqT618ROhG8qh1+O6EZkia5ELw3zaZWGpMX2YfEH4bgwYENPuFonqKw1W70LFx3K/SCZvVBcD6UYEI12yzYXzg== + +react-modal@^3.16.3: + version "3.16.3" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.3.tgz#c412d41915782e3c261253435d01468e2439b11b" + integrity sha512-yCYRJB5YkeQDQlTt17WGAgFJ7jr2QYcWa1SHqZ3PluDmnKJ/7+tVU+E6uKyZ0nODaeEj+xCpK4LcSnKXLMC0Nw== + dependencies: + exenv "^1.2.0" + prop-types "^15.7.2" + react-lifecycles-compat "^3.0.0" + warning "^4.0.3" + +react-refresh@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.17.0.tgz#b7e579c3657f23d04eccbe4ad2e58a8ed51e7e53" + integrity sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ== + +react-router-dom@^6.28.0: + version "6.30.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.30.0.tgz#a64774104508bff56b1affc2796daa3f7e76b7df" + integrity sha512-x30B78HV5tFk8ex0ITwzC9TTZMua4jGyA9IUlH1JLQYQTFyxr/ZxwOJq7evg1JX1qGVUcvhsmQSKdPncQrjTgA== + dependencies: + "@remix-run/router" "1.23.0" + react-router "6.30.0" + +react-router@6.30.0: + version "6.30.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.30.0.tgz#9789d775e63bc0df60f39ced77c8c41f1e01ff90" + integrity sha512-D3X8FyH9nBcTSHGdEKurK7r8OYE1kKFn3d/CF+CoxbSHkxU7o37+Uh7eAHRXr6k2tSExXYO++07PeXJtA/dEhQ== + dependencies: + "@remix-run/router" "1.23.0" + +react-textarea-autosize@^8.3.2: + version "8.5.9" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.5.9.tgz#ab8627b09aa04d8a2f45d5b5cd94c84d1d4a8893" + integrity sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A== + dependencies: + "@babel/runtime" "^7.20.13" + use-composed-ref "^1.3.0" + use-latest "^1.2.1" + +react@^18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + +read-binary-file-arch@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz#959c4637daa932280a9b911b1a6766a7e44288fc" + integrity sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg== + dependencies: + debug "^4.3.4" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w== + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA== + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== + dependencies: + mute-stream "~0.0.4" + +readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdirp@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +recast@^0.23.1: + version "0.23.11" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.23.11.tgz#8885570bb28cf773ba1dc600da7f502f7883f73f" + integrity sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA== + dependencies: + ast-types "^0.16.1" + esprima "~4.0.0" + source-map "~0.6.1" + tiny-invariant "^1.3.3" + tslib "^2.0.1" + +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + dependencies: + resolve "^1.20.0" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9" + integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.7" + get-proto "^1.0.1" + which-builtin-type "^1.2.1" + +regenerate-unicode-properties@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" + integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexp.prototype.flags@^1.5.3: + version "1.5.4" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" + integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-errors "^1.3.0" + get-proto "^1.0.1" + gopd "^1.2.0" + set-function-name "^2.0.2" + +regexpu-core@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" + integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.2.0" + regjsgen "^0.8.0" + regjsparser "^0.12.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" + integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== + dependencies: + jsesc "~3.0.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resedit@^1.7.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/resedit/-/resedit-1.7.2.tgz#b1041170b99811710c13f949c7d225871de4cc78" + integrity sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA== + dependencies: + pe-library "^0.4.1" + +resedit@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/resedit/-/resedit-2.0.3.tgz#5145a9faabca44b917d5636dbe8e67ec7f62c6f2" + integrity sha512-oTeemxwoMuxxTYxXUwjkrOPfngTQehlv0/HoYFNkB4uzsP1Un1A9nI8JQKGOFkxpqkC7qkMs0lUsGrvUlbLNUA== + dependencies: + pe-library "^1.0.1" + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4, resolve@^1.22.8: + version "1.22.10" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== + dependencies: + is-core-module "^2.16.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.5: + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +restore-cursor@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" + integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== + dependencies: + onetime "^7.0.0" + signal-exit "^4.1.0" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== + +rfdc@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +rollup-plugin-dts@^6.1.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-6.2.1.tgz#120a40734f740115da44931d7915a370fe420701" + integrity sha512-sR3CxYUl7i2CHa0O7bA45mCrgADyAQ0tVtGSqi3yvH28M+eg1+g5d7kQ9hLvEz5dorK3XVsH5L2jwHLQf72DzA== + dependencies: + magic-string "^0.30.17" + optionalDependencies: + "@babel/code-frame" "^7.26.2" + +rollup@^4.20.0, rollup@^4.34.9, rollup@^4.40.0: + version "4.40.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.40.0.tgz#13742a615f423ccba457554f006873d5a4de1920" + integrity sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w== + dependencies: + "@types/estree" "1.0.7" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.40.0" + "@rollup/rollup-android-arm64" "4.40.0" + "@rollup/rollup-darwin-arm64" "4.40.0" + "@rollup/rollup-darwin-x64" "4.40.0" + "@rollup/rollup-freebsd-arm64" "4.40.0" + "@rollup/rollup-freebsd-x64" "4.40.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.40.0" + "@rollup/rollup-linux-arm-musleabihf" "4.40.0" + "@rollup/rollup-linux-arm64-gnu" "4.40.0" + "@rollup/rollup-linux-arm64-musl" "4.40.0" + "@rollup/rollup-linux-loongarch64-gnu" "4.40.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.40.0" + "@rollup/rollup-linux-riscv64-gnu" "4.40.0" + "@rollup/rollup-linux-riscv64-musl" "4.40.0" + "@rollup/rollup-linux-s390x-gnu" "4.40.0" + "@rollup/rollup-linux-x64-gnu" "4.40.0" + "@rollup/rollup-linux-x64-musl" "4.40.0" + "@rollup/rollup-win32-arm64-msvc" "4.40.0" + "@rollup/rollup-win32-ia32-msvc" "4.40.0" + "@rollup/rollup-win32-x64-msvc" "4.40.0" + fsevents "~2.3.2" + +run-applescript@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.0.0.tgz#e5a553c2bffd620e169d276c1cd8f1b64778fbeb" + integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-array-concat@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3" + integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + has-symbols "^1.1.0" + isarray "^2.0.5" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-push-apply@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz#01850e981c1602d398c85081f360e4e6d03d27f5" + integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== + dependencies: + es-errors "^1.3.0" + isarray "^2.0.5" + +safe-regex-test@^1.0.3, safe-regex-test@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" + integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-regex "^1.2.1" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +sax@>=0.6.0, sax@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== + +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + +secure-compare@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" + integrity sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw== + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.5.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.2.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.2, semver@^7.6.3: + version "7.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + +send@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-static@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== + dependencies: + encodeurl "~2.0.0" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.19.0" + +set-function-length@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +set-proto@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz#0760dbcff30b2d7e801fd6e19983e56da337565e" + integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== + dependencies: + dunder-proto "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-exec@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shell-exec/-/shell-exec-1.0.2.tgz#2e9361b0fde1d73f476c4b6671fa17785f696756" + integrity sha512-jyVd+kU2X+mWKMmGhx4fpWbPsjvD53k9ivqetutVW/BQ+WIZoDoP4d8vUMGezV6saZsiNoW2f9GIhg9Dondohg== + +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.0.6, side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" + +siginfo@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" + integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1, signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-update-notifier@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb" + integrity sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w== + dependencies: + semver "^7.5.3" + +sketch-helpers@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/sketch-helpers/-/sketch-helpers-0.0.4.tgz#c6e4257451cd65483ab99ff7d3b10da04e98374d" + integrity sha512-xSt+Ku4VFDk4fBW3kRj+raZ49fFSJ32q1ph05GKQvZ9mIUI+W2/3iJJSBfBWwIdxlNiMx6RoUe2O+5vwtkPT3A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + +smart-buffer@^4.0.2, smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks@^2.6.2: + version "2.8.4" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.4.tgz#07109755cdd4da03269bda4725baa061ab56d5cc" + integrity sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ== + dependencies: + ip-address "^9.0.5" + smart-buffer "^4.2.0" + +source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +source-map-support@^0.5.13, source-map-support@^0.5.19: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.21" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz#6d6e980c9df2b6fc905343a3b2d702a6239536c3" + integrity sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg== + +split@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + +sprintf-js@^1.1.2, sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + +ssri@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== + dependencies: + minipass "^3.1.1" + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +stackback@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" + integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== + +stat-mode@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" + integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +std-env@^3.5.0, std-env@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.9.0.tgz#1a6f7243b339dca4c9fd55e1c7504c77ef23e8f1" + integrity sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw== + +stdin-discarder@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.2.2.tgz#390037f44c4ae1a1ae535c5fe38dc3aba8d997be" + integrity sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ== + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string-width@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== + dependencies: + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + +string.prototype.includes@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz#eceef21283640761a81dbe16d6c7171a4edf7d92" + integrity sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + +string.prototype.matchall@^4.0.12: + version "4.0.12" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz#6c88740e49ad4956b1332a911e949583a275d4c0" + integrity sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-abstract "^1.23.6" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.6" + gopd "^1.2.0" + has-symbols "^1.1.0" + internal-slot "^1.1.0" + regexp.prototype.flags "^1.5.3" + set-function-name "^2.0.2" + side-channel "^1.1.0" + +string.prototype.repeat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" + integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trim@^1.2.10: + version "1.2.10" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz#40b2dd5ee94c959b4dcfb1d65ce72e90da480c81" + integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + define-data-property "^1.1.4" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-object-atoms "^1.0.0" + has-property-descriptors "^1.0.2" + +string.prototype.trimend@^1.0.8, string.prototype.trimend@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" + integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1, strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strip-literal@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-2.1.1.tgz#26906e65f606d49f748454a08084e94190c2e5ad" + integrity sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q== + dependencies: + js-tokens "^9.0.1" + +strip-outer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +style-mod@^4.0.0, style-mod@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.1.2.tgz#ca238a1ad4786520f7515a8539d5a63691d7bf67" + integrity sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw== + +sucrase@^3.35.0: + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +sudo-prompt@^9.1.1: + version "9.2.1" + resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.2.1.tgz#77efb84309c9ca489527a4e749f287e6bdd52afd" + integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw== + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.4.0.tgz#17bfcf686288f531db3dea3215510621ccb55954" + integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw== + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tailwindcss@^3.4.17: + version "3.4.17" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.17.tgz#ae8406c0f96696a631c790768ff319d46d5e5a63" + integrity sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.6.0" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.3.2" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.21.6" + lilconfig "^3.1.3" + micromatch "^4.0.8" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.1.1" + postcss "^8.4.47" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.2" + postcss-nested "^6.2.0" + postcss-selector-parser "^6.1.2" + resolve "^1.22.8" + sucrase "^3.35.0" + +tar-fs@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.2.tgz#425f154f3404cb16cb8ff6e671d45ab2ed9596c5" + integrity sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^6.0.5, tar@^6.1.11, tar@^6.1.12, tar@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +temp-file@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7" + integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg== + dependencies: + async-exit-hook "^2.0.1" + fs-extra "^10.0.0" + +text-segmentation@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/text-segmentation/-/text-segmentation-1.0.3.tgz#52a388159efffe746b24a63ba311b6ac9f2d7943" + integrity sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw== + dependencies: + utrie "^1.0.2" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +three@^0.175.0: + version "0.175.0" + resolved "https://registry.yarnpkg.com/three/-/three-0.175.0.tgz#67b357b0b1ee8ef0445b9a768f59363ab1fa7921" + integrity sha512-nNE3pnTHxXN/Phw768u0Grr7W4+rumGg/H6PgeseNJojkJtmeHJfZWi41Gp2mpXl1pg1pf1zjwR4McM1jTqkpg== + +through@2: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tiny-async-pool@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/tiny-async-pool/-/tiny-async-pool-1.3.0.tgz#c013e1b369095e7005db5595f95e646cca6ef8a5" + integrity sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA== + dependencies: + semver "^5.5.0" + +tiny-invariant@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" + integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== + +tiny-typed-emitter@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz#b3b027fdd389ff81a152c8e847ee2f5be9fad7b5" + integrity sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA== + +tinybench@^2.5.1, tinybench@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" + integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== + +tinyexec@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" + integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== + +tinyglobby@^0.2.13: + version "0.2.13" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.13.tgz#a0e46515ce6cbcd65331537e57484af5a7b2ff7e" + integrity sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw== + dependencies: + fdir "^6.4.4" + picomatch "^4.0.2" + +tinypool@^0.8.3: + version "0.8.4" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.8.4.tgz#e217fe1270d941b39e98c625dcecebb1408c9aa8" + integrity sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ== + +tinypool@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.0.2.tgz#706193cc532f4c100f66aa00b01c42173d9051b2" + integrity sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA== + +tinyrainbow@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-2.0.0.tgz#9509b2162436315e80e3eee0fcce4474d2444294" + integrity sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw== + +tinyspy@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.2.1.tgz#117b2342f1f38a0dbdcc73a50a454883adf861d1" + integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A== + +tinyspy@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-3.0.2.tgz#86dd3cf3d737b15adcf17d7887c84a75201df20a" + integrity sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q== + +tmp-promise@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + +tmp@^0.2.0, tmp@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== + dependencies: + escape-string-regexp "^1.0.2" + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== + dependencies: + utf8-byte-length "^1.0.1" + +ts-api-utils@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" + integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +ts-node@^10.0.0, ts-node@^10.9.1, ts-node@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tsconfck@^3.0.3: + version "3.1.5" + resolved "https://registry.yarnpkg.com/tsconfck/-/tsconfck-3.1.5.tgz#2f07f9be6576825e7a77470a5304ce06c7746e61" + integrity sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg== + +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^2.0.1, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.6.2, tslib@~2.8: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tunnel@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-detect@^4.0.0, type-detect@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" + integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^4.39.1: + version "4.40.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.40.0.tgz#62bc09caccb99a75e1ad6b9b4653e8805e5e1eee" + integrity sha512-ABHZ2/tS2JkvH1PEjxFDTUWC8dB5OsIGZP4IFLhR293GqT5Y5qB1WwL2kMPYhQW9DVgVD8Hd7I8gjwPIf5GFkw== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-typed-array "^1.1.14" + +typed-array-byte-length@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" + integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== + dependencies: + call-bind "^1.0.8" + for-each "^0.3.3" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.14" + +typed-array-byte-offset@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" + integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + for-each "^0.3.3" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.15" + reflect.getprototypeof "^1.0.9" + +typed-array-length@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" + integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + reflect.getprototypeof "^1.0.6" + +typed-rest-client@^1.8.4: + version "1.8.11" + resolved "https://registry.yarnpkg.com/typed-rest-client/-/typed-rest-client-1.8.11.tgz#6906f02e3c91e8d851579f255abf0fd60800a04d" + integrity sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA== + dependencies: + qs "^6.9.1" + tunnel "0.0.6" + underscore "^1.12.1" + +typescript-eslint@^8.30.1: + version "8.31.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.31.0.tgz#955e2e81011afbc11db3abd5f1d073a4b12e1270" + integrity sha512-u+93F0sB0An8WEAPtwxVhFby573E8ckdjwUUQUj9QA4v8JAvgtoDdIyYR3XFwFHq2W1KJ1AurwJCO+w+Y1ixyQ== + dependencies: + "@typescript-eslint/eslint-plugin" "8.31.0" + "@typescript-eslint/parser" "8.31.0" + "@typescript-eslint/utils" "8.31.0" + +typescript@^5.2.2, typescript@^5.4.3, typescript@^5.7.2, typescript@^5.8.3: + version "5.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" + integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== + +ua-parser-js@^1.0.35, ua-parser-js@^1.0.37: + version "1.0.40" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.40.tgz#ac6aff4fd8ea3e794a6aa743ec9c2fc29e75b675" + integrity sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew== + +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== + +ufo@^1.5.4: + version "1.6.1" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.6.1.tgz#ac2db1d54614d1b22c1d603e3aef44a85d8f146b" + integrity sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA== + +unbox-primitive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" + integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== + dependencies: + call-bound "^1.0.3" + has-bigints "^1.0.2" + has-symbols "^1.1.0" + which-boxed-primitive "^1.1.1" + +underscore@^1.12.1: + version "1.13.7" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.7.tgz#970e33963af9a7dda228f17ebe8399e5fbe63a10" + integrity sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g== + +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + +undici@^6.19.5: + version "6.21.2" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.21.2.tgz#49c5884e8f9039c65a89ee9018ef3c8e2f1f4928" + integrity sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" + integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +union@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075" + integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA== + dependencies: + qs "^6.4.0" + +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + +uri-js-replace@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uri-js-replace/-/uri-js-replace-1.0.1.tgz#c285bb352b701c9dfdaeffc4da5be77f936c9048" + integrity sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-join@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" + integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== + +use-composed-ref@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.4.0.tgz#09e023bf798d005286ad85cd20674bdf5770653b" + integrity sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w== + +use-isomorphic-layout-effect@^1.1.1, use-isomorphic-layout-effect@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz#afb292eb284c39219e8cb8d3d62d71999361a21d" + integrity sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w== + +use-latest@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.3.0.tgz#549b9b0d4c1761862072f0899c6f096eb379137a" + integrity sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ== + dependencies: + use-isomorphic-layout-effect "^1.1.1" + +use-sync-external-store@^1.2.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz#55122e2a3edd2a6c106174c27485e0fd59bcfca0" + integrity sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A== + +username@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/username/-/username-5.1.0.tgz#a7f9325adce2d0166448cdd55d4985b1360f2508" + integrity sha512-PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg== + dependencies: + execa "^1.0.0" + mem "^4.3.0" + +utf8-byte-length@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz#f9f63910d15536ee2b2d5dd4665389715eac5c1e" + integrity sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +utrie@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/utrie/-/utrie-1.0.2.tgz#d42fe44de9bc0119c25de7f564a6ed1b2c87a645" + integrity sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw== + dependencies: + base64-arraybuffer "^1.0.2" + +uuid@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294" + integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ== + +uuid@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" + integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== + +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +verror@^1.10.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb" + integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vite-node@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.6.1.tgz#fff3ef309296ea03ceaa6ca4bb660922f5416c57" + integrity sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA== + dependencies: + cac "^6.7.14" + debug "^4.3.4" + pathe "^1.1.1" + picocolors "^1.0.0" + vite "^5.0.0" + +vite-node@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-3.1.2.tgz#b17869a12307f5260b20ba4b58cf493afee70aa7" + integrity sha512-/8iMryv46J3aK13iUXsei5G/A3CUlW4665THCPS+K8xAaqrVWiGB4RfXMQXCLjpK9P2eK//BczrVkn5JLAk6DA== + dependencies: + cac "^6.7.14" + debug "^4.4.0" + es-module-lexer "^1.6.0" + pathe "^2.0.3" + vite "^5.0.0 || ^6.0.0" + +vite-plugin-package-version@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vite-plugin-package-version/-/vite-plugin-package-version-1.1.0.tgz#7d8088955aa21e4ec93353c98992b3f58c4bf13c" + integrity sha512-TPoFZXNanzcaKCIrC3e2L/TVRkkRLB6l4RPN/S7KbG7rWfyLcCEGsnXvxn6qR7fyZwXalnnSN/I9d6pSFjHpEA== + +vite-plugin-top-level-await@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.5.0.tgz#e3f76302921152bf29d1658f169d168f8937e78b" + integrity sha512-r/DtuvHrSqUVk23XpG2cl8gjt1aATMG5cjExXL1BUTcSNab6CzkcPua9BPEc9fuTP5UpwClCxUe3+dNGL0yrgQ== + dependencies: + "@rollup/plugin-virtual" "^3.0.2" + "@swc/core" "^1.10.16" + uuid "^10.0.0" + +vite-tsconfig-paths@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.2.tgz#321f02e4b736a90ff62f9086467faf4e2da857a9" + integrity sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA== + dependencies: + debug "^4.1.1" + globrex "^0.1.2" + tsconfck "^3.0.3" + +vite-tsconfig-paths@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-5.1.4.tgz#d9a71106a7ff2c1c840c6f1708042f76a9212ed4" + integrity sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w== + dependencies: + debug "^4.1.1" + globrex "^0.1.2" + tsconfck "^3.0.3" + +vite@^5.0.0, vite@^5.4.18: + version "5.4.18" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.18.tgz#b5af357f9d5ebb2e0c085779b7a37a77f09168a4" + integrity sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA== + dependencies: + esbuild "^0.21.3" + postcss "^8.4.43" + rollup "^4.20.0" + optionalDependencies: + fsevents "~2.3.3" + +"vite@^5.0.0 || ^6.0.0": + version "6.3.3" + resolved "https://registry.yarnpkg.com/vite/-/vite-6.3.3.tgz#497392c3f2243194e4dbf09ea83e9a3dddf49b88" + integrity sha512-5nXH+QsELbFKhsEfWLkHrvgRpTdGJzqOZ+utSdmPTvwHmvU6ITTm3xx+mRusihkcI8GeC7lCDyn3kDtiki9scw== + dependencies: + esbuild "^0.25.0" + fdir "^6.4.4" + picomatch "^4.0.2" + postcss "^8.5.3" + rollup "^4.34.9" + tinyglobby "^0.2.13" + optionalDependencies: + fsevents "~2.3.3" + +vitest-webgl-canvas-mock@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vitest-webgl-canvas-mock/-/vitest-webgl-canvas-mock-1.1.0.tgz#17d79f8b2601e7cd77903c59ed744d4d86324e25" + integrity sha512-F/5+XvBs7cSZPe41IGQTbSjNimB4NntPnRqv4eWb42voFKQINH8y2xZkibNUxYJCGIuDFsYp1lDQgTvWLahSzA== + dependencies: + cssfontparser "^1.2.1" + parse-color "^1.0.0" + +vitest@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-1.6.1.tgz#b4a3097adf8f79ac18bc2e2e0024c534a7a78d2f" + integrity sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag== + dependencies: + "@vitest/expect" "1.6.1" + "@vitest/runner" "1.6.1" + "@vitest/snapshot" "1.6.1" + "@vitest/spy" "1.6.1" + "@vitest/utils" "1.6.1" + acorn-walk "^8.3.2" + chai "^4.3.10" + debug "^4.3.4" + execa "^8.0.1" + local-pkg "^0.5.0" + magic-string "^0.30.5" + pathe "^1.1.1" + picocolors "^1.0.0" + std-env "^3.5.0" + strip-literal "^2.0.0" + tinybench "^2.5.1" + tinypool "^0.8.3" + vite "^5.0.0" + vite-node "1.6.1" + why-is-node-running "^2.2.2" + +vitest@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-3.1.2.tgz#63afc16b6da3bea6e39f5387d80719e70634ba66" + integrity sha512-WaxpJe092ID1C0mr+LH9MmNrhfzi8I65EX/NRU/Ld016KqQNRgxSOlGNP1hHN+a/F8L15Mh8klwaF77zR3GeDQ== + dependencies: + "@vitest/expect" "3.1.2" + "@vitest/mocker" "3.1.2" + "@vitest/pretty-format" "^3.1.2" + "@vitest/runner" "3.1.2" + "@vitest/snapshot" "3.1.2" + "@vitest/spy" "3.1.2" + "@vitest/utils" "3.1.2" + chai "^5.2.0" + debug "^4.4.0" + expect-type "^1.2.1" + magic-string "^0.30.17" + pathe "^2.0.3" + std-env "^3.9.0" + tinybench "^2.9.0" + tinyexec "^0.3.2" + tinyglobby "^0.2.13" + tinypool "^1.0.2" + tinyrainbow "^2.0.0" + vite "^5.0.0 || ^6.0.0" + vite-node "3.1.2" + why-is-node-running "^2.3.0" + +vscode-jsonrpc@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz#f43dfa35fb51e763d17cd94dcca0c9458f35abf9" + integrity sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA== + +vscode-jsonrpc@^8.2.1: + version "8.2.1" + resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.2.1.tgz#a322cc0f1d97f794ffd9c4cd2a898a0bde097f34" + integrity sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ== + +vscode-languageclient@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz#cdfe20267726c8d4db839dc1e9d1816e1296e854" + integrity sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA== + dependencies: + minimatch "^5.1.0" + semver "^7.3.7" + vscode-languageserver-protocol "3.17.5" + +vscode-languageserver-protocol@3.17.5, vscode-languageserver-protocol@^3.17.5: + version "3.17.5" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz#864a8b8f390835572f4e13bd9f8313d0e3ac4bea" + integrity sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg== + dependencies: + vscode-jsonrpc "8.2.0" + vscode-languageserver-types "3.17.5" + +vscode-languageserver-types@3.17.5: + version "3.17.5" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz#3273676f0cf2eab40b3f44d085acbb7f08a39d8a" + integrity sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg== + +vscode-uri@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.1.0.tgz#dd09ec5a66a38b5c3fffc774015713496d14e09c" + integrity sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ== + +w3c-keyname@^2.2.4: + version "2.2.8" + resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" + integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== + +warning@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +web-streams-polyfill@^3.0.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" + integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== + +web-vitals@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.5.2.tgz#5bb58461bbc173c3f00c2ddff8bfe6e680999ca9" + integrity sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +whatwg-encoding@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== + dependencies: + iconv-lite "0.6.3" + +whatwg-encoding@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" + integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== + dependencies: + iconv-lite "0.6.3" + +whatwg-fetch@^3.4.1: + version "3.6.20" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" + integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== + +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== + +whatwg-mimetype@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" + integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" + integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== + dependencies: + is-bigint "^1.1.0" + is-boolean-object "^1.2.1" + is-number-object "^1.1.1" + is-string "^1.1.1" + is-symbol "^1.1.1" + +which-builtin-type@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" + integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== + dependencies: + call-bound "^1.0.2" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.1.0" + is-finalizationregistry "^1.1.0" + is-generator-function "^1.0.10" + is-regex "^1.2.1" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.1.0" + which-collection "^1.0.2" + which-typed-array "^1.1.16" + +which-collection@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-typed-array@^1.1.16, which-typed-array@^1.1.18: + version "1.1.19" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956" + integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + for-each "^0.3.5" + get-proto "^1.0.1" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +why-is-node-running@^2.2.2, why-is-node-running@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" + integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== + dependencies: + siginfo "^2.0.0" + stackback "0.0.2" + +win-ca@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/win-ca/-/win-ca-3.5.1.tgz#2ef37ac24b0a1daa2714b4c5ef258c5242429e00" + integrity sha512-RNy9gpBS6cxWHjfbqwBA7odaHyT+YQNhtdpJZwYCFoxB/Dq22oeOZ9YCXMwjhLytKpo7JJMnKdJ/ve7N12zzfQ== + dependencies: + is-electron "^2.2.0" + make-dir "^1.3.0" + node-forge "^1.2.1" + split "^1.0.1" + +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +workerpool@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" + integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^7.4.6: + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +ws@^8.18.1: + version "8.18.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.1.tgz#ea131d3784e1dfdff91adb0a4a116b127515e3cb" + integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w== + +xml2js@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.5.0.tgz#d9440631fbb2ed800203fad106f2724f62c493b7" + integrity sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1: + version "15.1.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" + integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +"xstate-beta@npm:xstate@beta": + version "5.0.0-beta.54" + resolved "https://registry.yarnpkg.com/xstate/-/xstate-5.0.0-beta.54.tgz#d80f1a9e43ad883a65fc9b399161bd39633bd9bf" + integrity sha512-BTnCPBQ2iTKe4uCnHEe1hNx6VTbXU+5mQGybSQHOjTLiBi4Ryi+tL9T6N1tmqagvM8rfl4XRfvndogfWCWcdpw== + +xstate@^4.33.4: + version "4.38.3" + resolved "https://registry.yarnpkg.com/xstate/-/xstate-4.38.3.tgz#4e15e7ad3aa0ca1eea2010548a5379966d8f1075" + integrity sha512-SH7nAaaPQx57dx6qvfcIgqKRXIh4L0A1iYEqim4s1u7c9VoCgzZc+63FY90AKU4ZzOC2cfJzTnpO4zK7fCUzzw== + +xstate@^5.19.2: + version "5.19.2" + resolved "https://registry.yarnpkg.com/xstate/-/xstate-5.19.2.tgz#db3f1ee614bbb6a49ad3f0c96ddbf98562d456ba" + integrity sha512-B8fL2aP0ogn5aviAXFzI5oZseAMqN00fg/TeDa3ZtatyDcViYLIfuQl4y8qmHCiKZgGEzmnTyNtNQL9oeJE2gw== + +xterm-addon-fit@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/xterm-addon-fit/-/xterm-addon-fit-0.5.0.tgz#2d51b983b786a97dcd6cde805e700c7f913bc596" + integrity sha512-DsS9fqhXHacEmsPxBJZvfj2la30Iz9xk+UKjhQgnYNkrUIN5CYLbw7WEfz117c7+S86S/tpHPfvNxJsF5/G8wQ== + +xterm-addon-search@^0.8.0: + version "0.8.2" + resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.8.2.tgz#be7aa74d5ff12c901707c6ff674229f214318032" + integrity sha512-I1863mjn8P6uVrqm/X+btalVsqjAKLhnhpbP7SavAOpEkI1jJhbHU2UTp7NjeRtcKTks6UWk/ycgds5snDSejg== + +xterm@^4.9.0: + version "4.19.0" + resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.19.0.tgz#c0f9d09cd61de1d658f43ca75f992197add9ef6d" + integrity sha512-c3Cp4eOVsYY5Q839dR5IejghRPpxciGmLWWaP9g+ppfMeBChMeLa1DCA+pmX/jyDZ+zxFOmlJL/82qVdayVoGQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml-ast-parser@0.0.43: + version "0.0.43" + resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" + integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== + +yaml@^2.3.4: + version "2.7.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.1.tgz#44a247d1b88523855679ac7fa7cda6ed7e135cf6" + integrity sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-unparser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@^17.0.1, yargs@^17.6.2, yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yauzl@^2.10.0, yauzl@^2.3.1: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yazl@^2.2.2: + version "2.5.1" + resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" + integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== + dependencies: + buffer-crc32 "~0.2.3" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.1.tgz#36d7c4739f775b3cbc28e6136e21aa057adec418" + integrity sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==