Skip to content

Transition to Yarn Workspaces #459

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 216 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
216 commits
Select commit Hold shift + click to select a range
2d223dc
Rearrange everything into its own git workspace
leeyi45 May 7, 2025
fe8853b
Some more tidying up
leeyi45 May 9, 2025
8ad4331
Refactor all bundles and tabs
leeyi45 May 12, 2025
e6cfbfa
Add moduleslib
leeyi45 May 12, 2025
159790b
Add lint plugin
leeyi45 May 12, 2025
b59f345
modules
leeyi45 May 13, 2025
5275cc0
Added working commands
leeyi45 May 13, 2025
aa889e6
Added templates
leeyi45 May 13, 2025
754a1de
Add more buildtools
leeyi45 May 14, 2025
fad4626
Further work on buildtools
leeyi45 May 14, 2025
0274c12
Working typedoc building
leeyi45 May 15, 2025
58abebd
More work
leeyi45 May 15, 2025
ea46cb7
A working set of commands
leeyi45 May 19, 2025
36958df
Add new commands for tabs and potentially jsdoc for bundles
leeyi45 May 19, 2025
be9c95a
Add manifests
leeyi45 May 19, 2025
ff1941c
Move stuff to a separate lib folder
leeyi45 May 20, 2025
0c23c29
fix lintplugin things
leeyi45 May 22, 2025
4de476e
Some working tests
leeyi45 May 22, 2025
5c6db3d
Use defineTab
leeyi45 May 22, 2025
e2b1043
Add package json to devserver
leeyi45 May 22, 2025
f66eeaf
Migrate to vitest
leeyi45 May 22, 2025
32b4c5f
Migrate to vitest
leeyi45 May 24, 2025
765b4e6
Relocate things
leeyi45 Jun 2, 2025
0ce0e8e
Update test files and add csg patch
leeyi45 Jun 2, 2025
c6d3970
Update root repository items
leeyi45 Jun 2, 2025
1f18c3d
Update eslint config to include configuration names
leeyi45 Jun 11, 2025
96904f7
Update lintplugin
leeyi45 Jun 11, 2025
2fbf028
Update devserver vite configs
leeyi45 Jun 11, 2025
1793e9b
Update tab test configuration
leeyi45 Jun 11, 2025
a3a2c52
Finish creating output formatters and tests
leeyi45 Jun 13, 2025
54a43c5
Add typedoc option to tsconfigs
leeyi45 Jun 13, 2025
a75236e
Misc changes to root repo
leeyi45 Jun 13, 2025
bd91c5e
Remove commented out code that was used only for testing
leeyi45 Jun 13, 2025
d6c722f
Change devserver to resemble a properly installed package
leeyi45 Jun 13, 2025
35674d5
Update modules-lib and lintplugin packages
leeyi45 Jun 13, 2025
f345516
Update testing scripts and github workflow
leeyi45 Jun 14, 2025
4c1832e
Fix incorrect js-slang resolution
leeyi45 Jun 14, 2025
bbfccd4
Update incorrect package export fields
leeyi45 Jun 15, 2025
f63c9b4
Finish implementing build all command and tests
leeyi45 Jun 16, 2025
1b647bb
Move vitest config to JS files so that tsc and eslint stop complaining
leeyi45 Jun 16, 2025
0890958
Update bundle and tab vitest configurations
leeyi45 Jun 16, 2025
5f520ee
Fix testing configurations and update scripts
leeyi45 Jun 18, 2025
d06d11b
Update auxillary repo stuff
leeyi45 Jun 18, 2025
23655ff
Update dependencies to use versions from master branch
leeyi45 Jun 18, 2025
88d2a17
Merge commit '73beb14a7475300e90b06de599b9311d01228fce' into yarn-wor…
leeyi45 Jun 18, 2025
f530275
Add missing newlines
leeyi45 Jun 19, 2025
afc0f81
Fix broken manifest schema not working with VSCode
leeyi45 Jun 19, 2025
bb73309
Add json files to ESLint configuration to enforce eol-last
leeyi45 Jun 19, 2025
fea8adb
Remove yarn constraints check from CI
leeyi45 Jun 19, 2025
3c47ca0
Add skipLibCheck to ignore a type error in js-slang
leeyi45 Jun 19, 2025
064db71
Also add skipLibCheck to libraries
leeyi45 Jun 19, 2025
2b8f05f
Fix broken test commands
leeyi45 Jun 19, 2025
e3aa9b3
Fix tests that were erroring in the CI environment
leeyi45 Jun 19, 2025
c2a1c05
Increase timeout for build:all test
leeyi45 Jun 19, 2025
f2374e4
Circumvent the out of memory error for eslint
leeyi45 Jun 19, 2025
e680c3e
Fix the test command
leeyi45 Jun 19, 2025
aa9632f
Make github action workflows conditional
leeyi45 Jun 19, 2025
a09ebf6
Fix tsc not properly outputting javascript files
leeyi45 Jun 19, 2025
e8ab993
Add new tsc command that automatically filters tests
leeyi45 Jun 20, 2025
284d0a4
Fix missing parameter for runTsc
leeyi45 Jun 20, 2025
7ba95d7
Update test that's timing out
leeyi45 Jun 20, 2025
122c289
Update git hooks
leeyi45 Jun 20, 2025
6617ed7
Add prebuild all command
leeyi45 Jun 20, 2025
5bbe91b
Update husky git hook to use prebuild command
leeyi45 Jun 20, 2025
fa45c91
Fix broken scrabble tests
leeyi45 Jun 20, 2025
81d8a5c
Fix broken CI workflow
leeyi45 Jun 20, 2025
3e02635
Fix the still broken workflow
leeyi45 Jun 20, 2025
6dd3104
Re-add missing preinstall script
leeyi45 Jun 20, 2025
bdd1737
Make workflow build manifest if devserver is required
leeyi45 Jun 20, 2025
5e962c8
Update workflows
leeyi45 Jun 21, 2025
d4bc685
Add a vitepress documentation server for the repository
leeyi45 Jun 21, 2025
0c9152e
Add more documentation
leeyi45 Jun 21, 2025
1e832f4
Change vitepress docs to use vitepress-sidebar
leeyi45 Jun 22, 2025
0a5558a
Begin work on second docs section
leeyi45 Jun 22, 2025
4a6cfc2
Add markdown rules to linting
leeyi45 Jun 22, 2025
3ea31c4
Fix the sidebar ordering
leeyi45 Jun 23, 2025
13f19ae
Fix documentation not being correctly generated for modules-lib
leeyi45 Jun 23, 2025
a373b09
Fix broken tests and installs
leeyi45 Jun 23, 2025
312c0fe
Fix broken tsc test
leeyi45 Jun 23, 2025
25bc826
Change document configurations
leeyi45 Jun 24, 2025
7ea67db
Try to fix devserver tests failing
leeyi45 Jun 24, 2025
412b6b4
Continue to fix broken tests
leeyi45 Jun 24, 2025
6d15145
Add modules-lib as a dependency for devserver
leeyi45 Jun 24, 2025
ec6c043
Continue fixing broken references
leeyi45 Jun 24, 2025
a3cec8e
Fix a broken file name
leeyi45 Jun 24, 2025
621dfc1
Fix more broken tests and add documentation for repo tools
leeyi45 Jun 24, 2025
06cc233
Fix broken test
leeyi45 Jun 25, 2025
def7151
Change the defineTab import
leeyi45 Jun 25, 2025
b113ce3
Fix incorrect snapshots
leeyi45 Jun 25, 2025
d94bca0
Fix weirdness with WebGLCanvas import path name
leeyi45 Jun 25, 2025
20a475b
Please finally fix the issues with the tab exports
leeyi45 Jun 25, 2025
889b31b
guess it was still broken
leeyi45 Jun 25, 2025
9c6fea1
Trying to fix devserver tests this time
leeyi45 Jun 25, 2025
4ff050c
Update configuration for docserver
leeyi45 Jun 25, 2025
fda04fd
Incorporate JSON validation errors properly
leeyi45 Jun 27, 2025
4634304
Add ability to use mermaid diagrams in docserver
leeyi45 Jun 29, 2025
299c19c
Enable import sorting via eslint plugin
leeyi45 Jun 29, 2025
06102fb
More linting changes
leeyi45 Jul 5, 2025
ec98f60
Fix linting issues
leeyi45 Jul 5, 2025
f2a58b2
Fix broken buildtools test
leeyi45 Jul 5, 2025
74e22f4
Update slow tests
leeyi45 Jul 5, 2025
de89125
Fix linting
leeyi45 Jul 5, 2025
7da62e8
Update doc server build command
leeyi45 Jul 5, 2025
89c924e
Update broken github workflow
leeyi45 Jul 5, 2025
49305e5
Update linting and documentation
leeyi45 Jul 6, 2025
486be4b
Remove unnecessary expect error
leeyi45 Jul 6, 2025
f07f097
Add bundle conventions to docs
leeyi45 Jul 7, 2025
11f9d2b
Add way more information about bundle writing
leeyi45 Jul 8, 2025
49fdb9d
Update buildtools and docs
leeyi45 Jul 9, 2025
855abae
Changed how commands are executed to delegate executing over multiple…
leeyi45 Jul 12, 2025
9188068
Add markdown tree plugin
leeyi45 Jul 15, 2025
e7790bb
Update workflow and linting
leeyi45 Jul 16, 2025
9c02cca
Fix broken tests
leeyi45 Jul 17, 2025
5ce8c97
Redo modules-lib animations
leeyi45 Jul 20, 2025
c0dddea
Addes tests for modules-lib components
leeyi45 Jul 26, 2025
bfca65c
Fix dead link in docs
leeyi45 Jul 26, 2025
c113a0b
Fix some broken things
leeyi45 Jul 26, 2025
a71f041
Actually use the react plugin's rules
leeyi45 Jul 26, 2025
446bede
configure eslint to use react plugin rules
leeyi45 Jul 26, 2025
8a9c7f2
Change how tests are run to enable Tabs to make use of Vitest browser…
leeyi45 Jul 27, 2025
8ab2530
Add playwright to make sure that tabs tests can run in CI
leeyi45 Jul 27, 2025
8850616
Try to fix the workflow....
leeyi45 Jul 27, 2025
8f93c96
Update lockfile
leeyi45 Jul 27, 2025
9081c90
Update github workflow
leeyi45 Jul 27, 2025
8091ed3
Fix a 1 character mistake :(
leeyi45 Jul 27, 2025
87e7784
still trying to fix a test
leeyi45 Jul 27, 2025
ed05177
Add new lib-compiler package to replace repeated code for building li…
leeyi45 Jul 27, 2025
7427aa9
Add lib-compiler
leeyi45 Jul 27, 2025
d42ad0e
Add a #region comment rule
leeyi45 Jul 28, 2025
c69bbb7
Try very hard to fix vitest
leeyi45 Jul 28, 2025
55f35a5
Add missing script
leeyi45 Jul 28, 2025
370a9c0
Try and fix lib compiler not installing
leeyi45 Jul 28, 2025
16a7ade
Update docs
leeyi45 Jul 28, 2025
4caa3cc
please work
leeyi45 Jul 28, 2025
53c3210
Switch to using buildtools testing
leeyi45 Jul 28, 2025
b995491
Use root config as a shared configuration for vitest instead
leeyi45 Jul 28, 2025
87e71dc
Fix missing tests for lint plugin tab-type
leeyi45 Jul 28, 2025
50af717
Fix incorrect test:devserver command
leeyi45 Jul 28, 2025
4f574c0
Add tests for test command
leeyi45 Jul 29, 2025
0c9b1a8
Fix testing commands
leeyi45 Aug 2, 2025
f5ab175
Update modules-lib test configuration
leeyi45 Aug 2, 2025
3cfd8d5
Fix broken test configurations
leeyi45 Aug 2, 2025
8e2507e
Make tests CI invariant for testing command
leeyi45 Aug 2, 2025
e9409bc
I give up the test is broken
leeyi45 Aug 2, 2025
d638ed0
Working version of migrated code
leeyi45 Aug 2, 2025
e8f650c
Make tests work with repotools
leeyi45 Aug 2, 2025
fd7bc7d
Fix workflow
leeyi45 Aug 2, 2025
3643979
Add lodash and node types
leeyi45 Aug 2, 2025
ecbc201
Change the git root functions to be constants
leeyi45 Aug 2, 2025
8da00d0
Another broken test fix
leeyi45 Aug 2, 2025
910d839
fix docs not building
leeyi45 Aug 2, 2025
9edff7c
Test that removing the preinstall script from the root package makes …
leeyi45 Aug 2, 2025
c25dd65
Fix incorrectly specified dependency
leeyi45 Aug 2, 2025
f79cc85
Test a new workflow
leeyi45 Aug 3, 2025
e7b1149
Enable corepack in new workflow
leeyi45 Aug 3, 2025
b3cbc39
Change node version for info action
leeyi45 Aug 3, 2025
ab4391f
Add the dependency install step
leeyi45 Aug 3, 2025
2cb5c5d
Use a limited install instead and temporarily disable main workflow
leeyi45 Aug 3, 2025
053772b
Fix wrong install command
leeyi45 Aug 3, 2025
914e1be
Update action to use the correct version of node
leeyi45 Aug 3, 2025
5cc2127
Does this work?
leeyi45 Aug 3, 2025
77caeca
Change workflow to return package names instead
leeyi45 Aug 3, 2025
fa31b81
Add to summary
leeyi45 Aug 3, 2025
cdae9a2
Forgor to write to the summary
leeyi45 Aug 3, 2025
3490671
Try actually doing something using this new workflow
leeyi45 Aug 3, 2025
6dc82ab
Try adding fromJSON
leeyi45 Aug 3, 2025
e72fa00
Output the [ackage's directory alongside its name
leeyi45 Aug 3, 2025
faf0ee9
Fix incorrect cd command
leeyi45 Aug 3, 2025
7242ea8
Try building tabs
leeyi45 Aug 3, 2025
4f5d137
Try something interesting....
leeyi45 Aug 3, 2025
b71bf0b
Ifx potential dev dependency not installing
leeyi45 Aug 3, 2025
21f5b97
Repotools still don't want to work properly
leeyi45 Aug 3, 2025
85773b0
Fix broken action paths
leeyi45 Aug 3, 2025
b08c46a
Just commit the built actions instead
leeyi45 Aug 3, 2025
3aee3e8
Minify the actions properly
leeyi45 Aug 3, 2025
d9a9034
turns out we just have to install the packages
leeyi45 Aug 3, 2025
61bd9ca
Fix the install-deps action being broken
leeyi45 Aug 3, 2025
7ffe200
Fix install-deps not installing buildtools
leeyi45 Aug 3, 2025
20fa7ad
Will manually compiling the buildtools work?
leeyi45 Aug 3, 2025
91fbea0
Idk man is this how caching works?
leeyi45 Aug 3, 2025
417cbd6
Is this how we cache?
leeyi45 Aug 3, 2025
241e08b
Just use key?
leeyi45 Aug 3, 2025
58cfaa1
Don't rebuild buildtools, just restore from the cache
leeyi45 Aug 3, 2025
087f3af
Will setting a default working directory work?
leeyi45 Aug 3, 2025
a2f5ad5
Turns out we'll probably need to restore the repotools too
leeyi45 Aug 3, 2025
791d757
Fix a buildtools gitignore?
leeyi45 Aug 3, 2025
3b30fb0
Fix incorrect working directory?
leeyi45 Aug 3, 2025
1642e4f
Add sparse checkout
leeyi45 Aug 3, 2025
95a6f16
Remove sparse-checkout
leeyi45 Aug 3, 2025
8947dd7
Switch back to the old workflow
leeyi45 Aug 3, 2025
1ebe352
yippee
leeyi45 Aug 3, 2025
728436d
Make pre-push hook executable
leeyi45 Aug 3, 2025
97e0112
Add yml linting
leeyi45 Aug 3, 2025
b235769
Change prepare scripts to postinstall scripts
leeyi45 Aug 3, 2025
169f161
Remove buildtools dependency on modules-lib
leeyi45 Aug 3, 2025
5e0461a
Workflow again.....
leeyi45 Aug 3, 2025
358c31d
Try again
leeyi45 Aug 3, 2025
561627c
pls work
leeyi45 Aug 3, 2025
4ea7757
Trying another fix
leeyi45 Aug 3, 2025
2ed0a62
Does this work?????
leeyi45 Aug 3, 2025
ca64d00
Fix broken pipe character
leeyi45 Aug 3, 2025
baaada2
Try and fix the git root path not working
leeyi45 Aug 3, 2025
17ed52e
I really don't know what is going on
leeyi45 Aug 3, 2025
fc696f2
now im really confused
leeyi45 Aug 3, 2025
6a0d7e0
Testing again
leeyi45 Aug 3, 2025
d2a719e
Is the check for changes function throwing an error?
leeyi45 Aug 3, 2025
9e7baf7
I think I figured it out
leeyi45 Aug 3, 2025
661dc91
Add formatting to the summary output
leeyi45 Aug 3, 2025
0d7735b
Check that the find package job produces appropriate outputs
leeyi45 Aug 3, 2025
92e5c92
Fix action.yml file not recording outputs
leeyi45 Aug 3, 2025
ed2beb0
Attempt 1 at creating workflows for tabs
leeyi45 Aug 3, 2025
174983c
Add postinstall scripts to bundles
leeyi45 Aug 3, 2025
ecf67f5
Fix things certain dependencies not being specified correctly
leeyi45 Aug 3, 2025
72fe640
Once again, fix more missing dependencies
leeyi45 Aug 3, 2025
9081a13
Add bundles to workflow file
leeyi45 Aug 3, 2025
82cf7f8
Fix missing dependencies again
leeyi45 Aug 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 16 additions & 0 deletions .github/actions/build.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import getBuildCommand from '@sourceacademy/modules-repotools/builder';

const buildCommand = getBuildCommand({
bundle: true,
entryPoints: [
{ in: './src/info/index.ts', out: 'info' },
{ in: './src/install-deps/index.ts', out: 'install-deps' },
],
format: 'esm',
outdir: 'dist',
packages: 'external',
platform: 'node',
target: 'node20'
});

await buildCommand.parseAsync();
226 changes: 226 additions & 0 deletions .github/actions/in-progress.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,226 @@
name: new-workflow

permissions:
contents: read

on:
pull_request:
branches:
- master

jobs:
setup-repotools:
name: Setup Repotools package
runs-on: ubuntu-latest

steps:
- name: Check out source code
uses: actions/checkout@v4
with:
sparse-checkout: ./lib/repotools

- name: Enable Corepack
run: corepack enable

- name: Use Node.js 💻
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: yarn

- name: Check cache for repotools
uses: actions/cache/restore@v4
id: cache-repotools
with:
path: ./lib/repotools/dist
key: repotools

- name: Install Repotools Dependencies
run: yarn workspaces focus @sourceacademy/modules-repotools

- name: Build Repotools
if: steps.cache-repotools.outputs.cache-hit != 'true'
run: yarn workspaces foreach -A --include @sourceacademy/modules-repotools run build

- name: Cache Repotools
if: steps.cache-repotools.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
path: ./lib/repotools/dist
key: repotools

find-packages:
name: Determine the packages present in the repo for the given type
needs: setup-repotools
runs-on: ubuntu-latest
strategy:
matrix:
type: ['libs', 'bundles', 'tabs']

outputs:
libs: ${{ steps.find.outputs.libs }}
bundles: ${{ steps.find.outputs.bundles }}
tabs: ${{ steps.find.outputs.tabs }}

steps:
- name: Check out source code
uses: actions/checkout@v4

- name: Enable Corepack
run: corepack enable

- name: Use Node.js 💻
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: yarn

- name: Setup actions
run: yarn workspaces focus @sourceacademy/modules-github-actions --production

- name: Find Packages
id: find
uses: ./.github/actions/src/info
with:
type: ${{ matrix.type }}

build-libs:
name: Build and compile libraries
runs-on: ubuntu-latest
needs: find-packages
strategy:
matrix:
package: ${{ fromJSON(needs.find-packages.outputs.libs) }}

steps:
- name: Check out source code
uses: actions/checkout@v4
# with:
# sparse-checkout: ${{ matrix.package.directory }}

- name: Enable Corepack
run: corepack enable

- name: Install dependencies
run: yarn workspaces focus ${{ matrix.package.name }}

- name: Check cache
uses: actions/cache/restore@v4
id: cache
with:
path: ${{ matrix.package.directory }}/dist
key: ${{ matrix.package.name }}

- name: Build ${{ matrix.package.name }}
if: steps.cache.outputs.cache-hit != 'true'
run: yarn workspaces foreach -A --include ${{ matrix.package.name }} run build

- name: Store in Cache
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
path: ${{ matrix.package.directory }}/dist
key: ${{ matrix.package.name }}

# test-libs:
# name: Test and Typecheck libraries
# runs-on: ubuntu-latest
# needs: find-packages
# strategy:
# matrix:
# package: ${{ fromJson(needs.find-packages.outputs.tabs) }}

# steps:
# - name: Check out source code
# uses: actions/checkout@v4

# - name: Enable Corepack
# run: corepack enable

# - name: Use Node.js 💻
# uses: actions/setup-node@v4
# with:
# node-version-file: .node-version
# cache: yarn

# - name: Install dependencies
# run: yarn workspaces focus ${{ matrix.package.name }}

# - name: Restore repotools
# uses: actions/cache/restore@v4
# with:
# path: ./lib/repotools/dist
# key: repotools

# - name: tsc and test
# run: |
# cd ${{ matrix.package.directory }}
# yarn tsc
# yarn test

test-tabs:
name: Test and Typecheck tabs
runs-on: ubuntu-latest
needs:
- build-libs
- find-packages

strategy:
fail-fast: false
matrix:
package: ${{ fromJson(needs.find-packages.outputs.tabs) }}
defaults:
run:
working-directory: ${{ matrix.package.directory }}

steps:
- name: Check out source code
uses: actions/checkout@v4

- name: Enable Corepack
run: corepack enable

- name: Use Node.js 💻
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: yarn

- name: Setup actions
run: yarn workspaces focus @sourceacademy/modules-github-actions --production

- name: Filter paths
uses: dorny/paths-filter@v3
id: filter
with:
filters: |
changed:
- ${{ matrix.package.directory }}/**

- name: Restore buildtools
uses: actions/cache/restore@v4
with:
key: "@sourceacademy/modules-buildtools"
path: ./lib/buildtools/dist

- name: Restore repotools
uses: actions/cache/restore@v4
with:
key: "@sourceacademy/modules-repotools"
path: ./lib/repotools/dist

- name: Install dependencies
uses: ./.github/actions/src/install-deps
with:
directory: ${{ matrix.package.directory }}
packageName: ${{ matrix.package.name }}
testRequired: ${{ steps.filter.outputs.changed == 'true' }}

- name: tsc and test
if: steps.filter.outputs.changed == 'true'
run: |
yarn tsc
yarn test

- name: Build
run: yarn build
18 changes: 18 additions & 0 deletions .github/actions/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "@sourceacademy/modules-github-actions",
"private": true,
"type": "module",
"devDependencies": {
"@sourceacademy/modules-repotools": "workspace:^",
"@types/node": "^22.15.30",
"typescript": "^5.8.2"
},
"dependencies": {
"@actions/core": "^1.11.1",
"@actions/exec": "^1.1.1"
},
"scripts": {
"build": "node ./build.js",
"postinstall": "yarn build"
}
}
14 changes: 14 additions & 0 deletions .github/actions/src/info/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Package Info
description: Gets which packages are currently present in the repository

outputs:
libs:
description: The list of library packages present
bundles:
description: The list of bundles packages present
tabs:
description: The list of tabs packages present

runs:
using: node20
main: ../../dist/info.js
Loading
Loading