@sylphai/adal-cli-linux-x64 0.1.3-beta.3 → 0.1.3-beta.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/adal-cli.js +829 -754
  2. package/backend/adal-backend/_internal/base_library.zip +0 -0
  3. package/backend/adal-backend/_internal/websockets/speedups.cpython-312-x86_64-linux-gnu.so +0 -0
  4. package/backend/adal-backend/_internal/websockets-15.0.1.dist-info/LICENSE +24 -0
  5. package/backend/adal-backend/_internal/websockets-15.0.1.dist-info/METADATA +179 -0
  6. package/backend/adal-backend/_internal/websockets-15.0.1.dist-info/RECORD +59 -0
  7. package/backend/adal-backend/_internal/websockets-15.0.1.dist-info/WHEEL +8 -0
  8. package/backend/adal-backend/_internal/websockets-15.0.1.dist-info/entry_points.txt +2 -0
  9. package/backend/adal-backend/_internal/websockets-15.0.1.dist-info/top_level.txt +1 -0
  10. package/backend/adal-backend/adal-backend +0 -0
  11. package/package.json +3 -1
  12. package/backend/adal-backend/_internal/numpy/_core/_multiarray_tests.cpython-312-x86_64-linux-gnu.so +0 -0
  13. package/backend/adal-backend/_internal/numpy/_core/_multiarray_umath.cpython-312-x86_64-linux-gnu.so +0 -0
  14. package/backend/adal-backend/_internal/numpy/fft/_pocketfft_umath.cpython-312-x86_64-linux-gnu.so +0 -0
  15. package/backend/adal-backend/_internal/numpy/linalg/_umath_linalg.cpython-312-x86_64-linux-gnu.so +0 -0
  16. package/backend/adal-backend/_internal/numpy/random/_bounded_integers.cpython-312-x86_64-linux-gnu.so +0 -0
  17. package/backend/adal-backend/_internal/numpy/random/_common.cpython-312-x86_64-linux-gnu.so +0 -0
  18. package/backend/adal-backend/_internal/numpy/random/_generator.cpython-312-x86_64-linux-gnu.so +0 -0
  19. package/backend/adal-backend/_internal/numpy/random/_mt19937.cpython-312-x86_64-linux-gnu.so +0 -0
  20. package/backend/adal-backend/_internal/numpy/random/_pcg64.cpython-312-x86_64-linux-gnu.so +0 -0
  21. package/backend/adal-backend/_internal/numpy/random/_philox.cpython-312-x86_64-linux-gnu.so +0 -0
  22. package/backend/adal-backend/_internal/numpy/random/_sfc64.cpython-312-x86_64-linux-gnu.so +0 -0
  23. package/backend/adal-backend/_internal/numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so +0 -0
  24. package/backend/adal-backend/_internal/numpy/random/mtrand.cpython-312-x86_64-linux-gnu.so +0 -0
  25. package/backend/adal-backend/_internal/numpy-2.3.2.dist-info/LICENSE.txt +0 -971
  26. package/backend/adal-backend/_internal/numpy-2.3.2.dist-info/METADATA +0 -1093
  27. package/backend/adal-backend/_internal/numpy-2.3.2.dist-info/RECORD +0 -904
  28. package/backend/adal-backend/_internal/numpy-2.3.2.dist-info/WHEEL +0 -6
  29. package/backend/adal-backend/_internal/numpy-2.3.2.dist-info/entry_points.txt +0 -13
  30. package/backend/adal-backend/_internal/numpy.libs/libgfortran-040039e1-0352e75f.so.5.0.0 +0 -0
  31. package/backend/adal-backend/_internal/numpy.libs/libquadmath-96973f99-934c22de.so.0.0.0 +0 -0
  32. package/backend/adal-backend/_internal/numpy.libs/libscipy_openblas64_-8fb3d286.so +0 -0
  33. /package/backend/adal-backend/_internal/{numpy-2.3.2.dist-info → websockets-15.0.1.dist-info}/INSTALLER +0 -0
@@ -0,0 +1,24 @@
1
+ Copyright (c) Aymeric Augustin and contributors
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions are met:
5
+
6
+ * Redistributions of source code must retain the above copyright notice,
7
+ this list of conditions and the following disclaimer.
8
+ * Redistributions in binary form must reproduce the above copyright notice,
9
+ this list of conditions and the following disclaimer in the documentation
10
+ and/or other materials provided with the distribution.
11
+ * Neither the name of the copyright holder nor the names of its contributors
12
+ may be used to endorse or promote products derived from this software
13
+ without specific prior written permission.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
19
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,179 @@
1
+ Metadata-Version: 2.2
2
+ Name: websockets
3
+ Version: 15.0.1
4
+ Summary: An implementation of the WebSocket Protocol (RFC 6455 & 7692)
5
+ Author-email: Aymeric Augustin <aymeric.augustin@m4x.org>
6
+ License: BSD-3-Clause
7
+ Project-URL: Homepage, https://github.com/python-websockets/websockets
8
+ Project-URL: Changelog, https://websockets.readthedocs.io/en/stable/project/changelog.html
9
+ Project-URL: Documentation, https://websockets.readthedocs.io/
10
+ Project-URL: Funding, https://tidelift.com/subscription/pkg/pypi-websockets?utm_source=pypi-websockets&utm_medium=referral&utm_campaign=readme
11
+ Project-URL: Tracker, https://github.com/python-websockets/websockets/issues
12
+ Keywords: WebSocket
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Environment :: Web Environment
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: License :: OSI Approved :: BSD License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Requires-Python: >=3.9
26
+ Description-Content-Type: text/x-rst
27
+ License-File: LICENSE
28
+ Dynamic: description
29
+ Dynamic: description-content-type
30
+
31
+ .. image:: logo/horizontal.svg
32
+ :width: 480px
33
+ :alt: websockets
34
+
35
+ |licence| |version| |pyversions| |tests| |docs| |openssf|
36
+
37
+ .. |licence| image:: https://img.shields.io/pypi/l/websockets.svg
38
+ :target: https://pypi.python.org/pypi/websockets
39
+
40
+ .. |version| image:: https://img.shields.io/pypi/v/websockets.svg
41
+ :target: https://pypi.python.org/pypi/websockets
42
+
43
+ .. |pyversions| image:: https://img.shields.io/pypi/pyversions/websockets.svg
44
+ :target: https://pypi.python.org/pypi/websockets
45
+
46
+ .. |tests| image:: https://img.shields.io/github/checks-status/python-websockets/websockets/main?label=tests
47
+ :target: https://github.com/python-websockets/websockets/actions/workflows/tests.yml
48
+
49
+ .. |docs| image:: https://img.shields.io/readthedocs/websockets.svg
50
+ :target: https://websockets.readthedocs.io/
51
+
52
+ .. |openssf| image:: https://bestpractices.coreinfrastructure.org/projects/6475/badge
53
+ :target: https://bestpractices.coreinfrastructure.org/projects/6475
54
+
55
+ What is ``websockets``?
56
+ -----------------------
57
+
58
+ websockets is a library for building WebSocket_ servers and clients in Python
59
+ with a focus on correctness, simplicity, robustness, and performance.
60
+
61
+ .. _WebSocket: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
62
+
63
+ Built on top of ``asyncio``, Python's standard asynchronous I/O framework, the
64
+ default implementation provides an elegant coroutine-based API.
65
+
66
+ An implementation on top of ``threading`` and a Sans-I/O implementation are also
67
+ available.
68
+
69
+ `Documentation is available on Read the Docs. <https://websockets.readthedocs.io/>`_
70
+
71
+ .. copy-pasted because GitHub doesn't support the include directive
72
+
73
+ Here's an echo server with the ``asyncio`` API:
74
+
75
+ .. code:: python
76
+
77
+ #!/usr/bin/env python
78
+
79
+ import asyncio
80
+ from websockets.asyncio.server import serve
81
+
82
+ async def echo(websocket):
83
+ async for message in websocket:
84
+ await websocket.send(message)
85
+
86
+ async def main():
87
+ async with serve(echo, "localhost", 8765) as server:
88
+ await server.serve_forever()
89
+
90
+ asyncio.run(main())
91
+
92
+ Here's how a client sends and receives messages with the ``threading`` API:
93
+
94
+ .. code:: python
95
+
96
+ #!/usr/bin/env python
97
+
98
+ from websockets.sync.client import connect
99
+
100
+ def hello():
101
+ with connect("ws://localhost:8765") as websocket:
102
+ websocket.send("Hello world!")
103
+ message = websocket.recv()
104
+ print(f"Received: {message}")
105
+
106
+ hello()
107
+
108
+
109
+ Does that look good?
110
+
111
+ `Get started with the tutorial! <https://websockets.readthedocs.io/en/stable/intro/index.html>`_
112
+
113
+ Why should I use ``websockets``?
114
+ --------------------------------
115
+
116
+ The development of ``websockets`` is shaped by four principles:
117
+
118
+ 1. **Correctness**: ``websockets`` is heavily tested for compliance with
119
+ :rfc:`6455`. Continuous integration fails under 100% branch coverage.
120
+
121
+ 2. **Simplicity**: all you need to understand is ``msg = await ws.recv()`` and
122
+ ``await ws.send(msg)``. ``websockets`` takes care of managing connections
123
+ so you can focus on your application.
124
+
125
+ 3. **Robustness**: ``websockets`` is built for production. For example, it was
126
+ the only library to `handle backpressure correctly`_ before the issue
127
+ became widely known in the Python community.
128
+
129
+ 4. **Performance**: memory usage is optimized and configurable. A C extension
130
+ accelerates expensive operations. It's pre-compiled for Linux, macOS and
131
+ Windows and packaged in the wheel format for each system and Python version.
132
+
133
+ Documentation is a first class concern in the project. Head over to `Read the
134
+ Docs`_ and see for yourself.
135
+
136
+ .. _Read the Docs: https://websockets.readthedocs.io/
137
+ .. _handle backpressure correctly: https://vorpus.org/blog/some-thoughts-on-asynchronous-api-design-in-a-post-asyncawait-world/#websocket-servers
138
+
139
+ Why shouldn't I use ``websockets``?
140
+ -----------------------------------
141
+
142
+ * If you prefer callbacks over coroutines: ``websockets`` was created to
143
+ provide the best coroutine-based API to manage WebSocket connections in
144
+ Python. Pick another library for a callback-based API.
145
+
146
+ * If you're looking for a mixed HTTP / WebSocket library: ``websockets`` aims
147
+ at being an excellent implementation of :rfc:`6455`: The WebSocket Protocol
148
+ and :rfc:`7692`: Compression Extensions for WebSocket. Its support for HTTP
149
+ is minimal — just enough for an HTTP health check.
150
+
151
+ If you want to do both in the same server, look at HTTP + WebSocket servers
152
+ that build on top of ``websockets`` to support WebSocket connections, like
153
+ uvicorn_ or Sanic_.
154
+
155
+ .. _uvicorn: https://www.uvicorn.org/
156
+ .. _Sanic: https://sanic.dev/en/
157
+
158
+ What else?
159
+ ----------
160
+
161
+ Bug reports, patches and suggestions are welcome!
162
+
163
+ To report a security vulnerability, please use the `Tidelift security
164
+ contact`_. Tidelift will coordinate the fix and disclosure.
165
+
166
+ .. _Tidelift security contact: https://tidelift.com/security
167
+
168
+ For anything else, please open an issue_ or send a `pull request`_.
169
+
170
+ .. _issue: https://github.com/python-websockets/websockets/issues/new
171
+ .. _pull request: https://github.com/python-websockets/websockets/compare/
172
+
173
+ Participants must uphold the `Contributor Covenant code of conduct`_.
174
+
175
+ .. _Contributor Covenant code of conduct: https://github.com/python-websockets/websockets/blob/main/CODE_OF_CONDUCT.md
176
+
177
+ ``websockets`` is released under the `BSD license`_.
178
+
179
+ .. _BSD license: https://github.com/python-websockets/websockets/blob/main/LICENSE
@@ -0,0 +1,59 @@
1
+ ../../../bin/websockets,sha256=4i4hGCyAWQFA5qMT7JFyNGzDAsAF078ibLwpsoVVjBU,255
2
+ websockets-15.0.1.dist-info/LICENSE,sha256=PWoMBQ2L7FL6utUC5F-yW9ArytvXDeo01Ee2oP9Obag,1514
3
+ websockets-15.0.1.dist-info/WHEEL,sha256=AgdMHnMTjkZpUyUKDovd66wbI5wZTb2aEgD7363XPtM,224
4
+ websockets-15.0.1.dist-info/top_level.txt,sha256=CMpdKklxKsvZgCgyltxUWOHibZXZ1uYIVpca9xsQ8Hk,11
5
+ websockets-15.0.1.dist-info/entry_points.txt,sha256=Dnhn4dm5EsI4ZMAsHldGF6CwBXZrGXnR7cnK2-XR7zY,51
6
+ websockets-15.0.1.dist-info/METADATA,sha256=VR5K6egG_PpJ2-GQ4hyd-Ck1geIlRMLQpvhB5qfnElQ,6817
7
+ websockets/frames.py,sha256=p6e3R05-SKtMDcHh8SHYspFOHG1ei5yJvTWr5Lebxxs,12759
8
+ websockets/http11.py,sha256=a2IEvTU6E5UtozqdtWoam31rKn1POVKFwglaeTBSjuY,14925
9
+ websockets/http.py,sha256=T1tNLmbkFCneXQ6qepBmsVVDXyP9i500IVzTJTeBMR4,659
10
+ websockets/streams.py,sha256=kcI0JXNRqVPoVEhL67-urICwi0sgLNyPyWdccFzBuVU,4047
11
+ websockets/exceptions.py,sha256=BczwKlo-oxgijKCLsuPp-PG77tDDWPy8vCFjAa5WylE,12811
12
+ websockets/typing.py,sha256=1Zt2P-lXTC3KJhOhzW2ILyEo1I5ZR9jHVP7b_rnJyQs,2025
13
+ websockets/connection.py,sha256=OLiMVkNd25_86sB8Q7CrCwBoXy9nA0OCgdgLRA8WUR8,323
14
+ websockets/__main__.py,sha256=wu5N2wk8mvBgyvr2ghmQf4prezAe0_i-p123VVreyYc,62
15
+ websockets/speedups.pyi,sha256=NikZ3sAxs9Z2uWH_ZvctvMJUBbsHeC2D1L954EVSwJc,55
16
+ websockets/version.py,sha256=POhkZh1W0RcVoqXZmWUHBR--4hr8-Bx_3-XDnyXotug,3204
17
+ websockets/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ websockets/protocol.py,sha256=Fyog1EsV8xthnJdX3MH9-bHbEGgPRC0tqwGWCPK4Jrg,26537
19
+ websockets/client.py,sha256=hwaoOHuZhulxyUqEiU27Cx5oUSvJuHJRN65aip7bTvU,13564
20
+ websockets/utils.py,sha256=ZpH3WJLsQS29Jf5R6lTacxf_hPd8E4zS2JmGyNpg4bA,1150
21
+ websockets/uri.py,sha256=MpdIigZII7Rpw7_-61DisZwDtV-68v4YexzPmRP8Lhk,6986
22
+ websockets/speedups.cpython-312-x86_64-linux-gnu.so,sha256=3QmaMCm3-DmuIesjHt0234XcsD6QDU2073NNvxPtjb4,35968
23
+ websockets/__init__.py,sha256=AC2Hq92uSc_WOo9_xvITpGshJ7Dy0Md5m2_ywsdSt_Y,7058
24
+ websockets/cli.py,sha256=YnegH59z93JxSVIGiXiWhR3ktgI6k1_pf_BRLanxKrQ,5336
25
+ websockets/datastructures.py,sha256=zj0emMN8pLtWyqg2l9aYnlJhat_8IzPhIuLCvhGkEj0,5615
26
+ websockets/server.py,sha256=o2lPQgY7sgHaqst-wMcDtsixaEssapW_A7yZHGBzLiE,21565
27
+ websockets/headers.py,sha256=yQnPljVZwV1_V-pOSRKNLG_u827wFC1h72cciojcQ8M,16046
28
+ websockets/auth.py,sha256=U_Jwmn59ZRQ6EecpOvMizQCG_ZbAvgUf1ik7haZRC3c,568
29
+ websockets/speedups.c,sha256=j-damnT02MKRoYw8MtTT45qLGX6z6TnriqhTkyfcNZE,5767
30
+ websockets/imports.py,sha256=T_B9TUmHoceKMQ-PNphdQQAH2XdxAxwSQNeQEgqILkE,2795
31
+ websockets/asyncio/compatibility.py,sha256=gkenDDhzNbm6_iXV5Edvbvp6uHZYdrTvGNjt8P_JtyQ,786
32
+ websockets/asyncio/messages.py,sha256=EfY6a6WW6gJdnENFqvVbzwm8noFJovKAQZwoFGf0p4s,10993
33
+ websockets/asyncio/async_timeout.py,sha256=N-6Mubyiaoh66PAXGvCzhgxCM-7V2XiRnH32Xi6J6TE,8971
34
+ websockets/asyncio/connection.py,sha256=6hoPpanp-TuirEIiOi6O2Pyq5wJQmE2osCqIKb22Xpo,48722
35
+ websockets/asyncio/client.py,sha256=lH083GGunFfEFzOpL1nPcp7ol4fp9n3lnhwnBE7KFL0,31490
36
+ websockets/asyncio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ websockets/asyncio/server.py,sha256=oWrh9ZZ5yw3v99jpZ8cs2ajCw9ygdCjvH7ELh_Vxcr4,37385
38
+ websockets/asyncio/router.py,sha256=TW2PRiEGEIunyEDf3X1-yabEwrni8a8-MP_wD8Wo0Io,6601
39
+ websockets/sync/messages.py,sha256=mthVtlDkXDIqVU0aGxjb6EohDea6_eZVTWyDw5eZzkU,12607
40
+ websockets/sync/connection.py,sha256=AvZnIgthHPkjEsxDRkupsHFEMqRlnASA1XkycTAbOgY,41574
41
+ websockets/sync/client.py,sha256=63X0yHNqZGMBKaVVYe5sreiyseXu3CwriSvPpk4Jhfo,22648
42
+ websockets/sync/utils.py,sha256=TtW-ncYFvJmiSW2gO86ngE2BVsnnBdL-4H88kWNDYbg,1107
43
+ websockets/sync/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
+ websockets/sync/server.py,sha256=hHckE3Tv1c8wG9CbxqB3SyMRgispSLcef4pM2ereFn0,27436
45
+ websockets/sync/router.py,sha256=hf6eZvGU0W_BqjiC88DAIpKEB7swJ2wz8bJzwbiEJ54,6291
46
+ websockets/legacy/http.py,sha256=cOCQmDWhIKQmm8UWGXPW7CDZg03wjogCsb0LP9oetNQ,7061
47
+ websockets/legacy/exceptions.py,sha256=ViEjpoT09fzx_Zqf0aNGDVtRDNjXaOw0gdCta3LkjFc,1924
48
+ websockets/legacy/handshake.py,sha256=2Nzr5AN2xvDC5EdNP-kB3lOcrAaUNlYuj_-hr_jv7pM,5285
49
+ websockets/legacy/framing.py,sha256=RbLG5T9Y0zJoS0RybTJ-zpo3GVGjcwIt7aJkCTV29dg,6366
50
+ websockets/legacy/protocol.py,sha256=GqPR2EIrYe0hcuOzqSa06jzX7mCNjUCSC6TpPzSzWaU,63902
51
+ websockets/legacy/client.py,sha256=2JJqsVCHz4cXSTf--jSuUKvC04GcOYXEgy_1GQzxGMI,26985
52
+ websockets/legacy/__init__.py,sha256=wQ5zRIENGUS_5eKNAX9CRE7x1TwKapKimrQFFWN9Sxs,276
53
+ websockets/legacy/server.py,sha256=BNhoo8Q6jDrmd42HrZlBYGL7xfiSoVvUB-yRBozh-D0,45250
54
+ websockets/legacy/auth.py,sha256=DcQcCSeVeP93JcH8vFWE0HIJL-X-f23LZ0DsJpav1So,6531
55
+ websockets/extensions/base.py,sha256=JNfyk543C7VuPH0QOobiqKoGrzjJILje6sz5ILvOPl4,2903
56
+ websockets/extensions/__init__.py,sha256=QkZsxaJVllVSp1uhdD5uPGibdbx_091GrVVfS5LXcpw,98
57
+ websockets/extensions/permessage_deflate.py,sha256=_tu4-N4V6-UY9mhBhBTE009TSDqvY1y6PkYanIYphOM,25711
58
+ websockets-15.0.1.dist-info/INSTALLER,sha256=sz0Tnp99msIbbLB51q7U9nA6AvRKcsOeUKhrHH0Ulg4,12
59
+ websockets-15.0.1.dist-info/RECORD,,
@@ -0,0 +1,8 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (75.8.2)
3
+ Root-Is-Purelib: false
4
+ Tag: cp312-cp312-manylinux_2_5_x86_64
5
+ Tag: cp312-cp312-manylinux1_x86_64
6
+ Tag: cp312-cp312-manylinux_2_17_x86_64
7
+ Tag: cp312-cp312-manylinux2014_x86_64
8
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ websockets = websockets.cli:main
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sylphai/adal-cli-linux-x64",
3
- "version": "0.1.3-beta.03",
3
+ "version": "0.1.3-beta.30",
4
4
  "description": "AI-powered CLI for development and research - linux-x64",
5
5
  "type": "module",
6
6
  "bin": {
@@ -12,6 +12,8 @@
12
12
  "keywords": [],
13
13
  "license": "SylphAI Proprietary",
14
14
  "_internal": true,
15
+ "_adalPackageType": "platform",
16
+ "_adalBackendLocation": "backend/adal-backend/adal-backend",
15
17
  "engines": {
16
18
  "node": ">=20.0.0"
17
19
  }