From 418f74b42e98fa96260f39c78cd45f0520d0bdcc Mon Sep 17 00:00:00 2001 From: "alxjrvs@gmail.com" Date: Tue, 26 Nov 2024 12:15:10 -0500 Subject: [PATCH] Move to packages (again) --- .github/workflows/ci-template.yml | 20 +++++++----------- @randsum/core/Randsum .code-workspace | 20 ------------------ @randsum/tower/tsconfig.json | 9 -------- bun.lockb | Bin 67160 -> 67304 bytes package.json | 15 +++++++------ .../@randsum}/core/.prettierignore | 0 .../@randsum}/core/.prettierrc | 0 .../@randsum}/core/CODE_OF_CONDUCT.md | 0 .../@randsum}/core/CONTRIBUTING.md | 0 {@randsum => packages/@randsum}/core/LICENSE | 0 .../__tests__/configToDescription.test.ts | 2 +- .../core/__tests__/coreRandom.test.ts | 2 +- .../core/__tests__/formDicePools.test.ts | 2 +- .../core/__tests__/rollDicePools.test.ts | 3 +-- {@randsum => packages/@randsum}/core/build.ts | 0 packages/@randsum/core/bun.lockb | Bin 0 -> 62457 bytes .../@randsum}/core/bunfig.toml | 0 .../@randsum}/core/eslint.config.js | 0 .../@randsum}/core/icon.webp | Bin .../@randsum}/core/package.json | 2 +- .../@randsum}/core/src/index.ts | 0 .../@randsum}/core/src/types.ts | 0 .../src/utils/configToDescription/index.ts | 0 .../configToDescription/stringFormatters.ts | 2 +- .../@randsum}/core/src/utils/coreRandom.ts | 0 .../@randsum}/core/src/utils/formDicePools.ts | 0 .../@randsum}/core/src/utils/rollDicePools.ts | 0 .../@randsum}/core/tsconfig.json | 4 ++-- .../@randsum}/customdice/.prettierignore | 0 .../@randsum}/customdice/.prettierrc | 0 .../@randsum}/customdice/CODE_OF_CONDUCT.md | 0 .../@randsum}/customdice/CONTRIBUTING.md | 0 .../@randsum}/customdice/LICENSE | 0 ...stomNotificationToCustomRollConfig.test.ts | 0 .../customdice/__tests__/roll.test.ts | 0 .../customdice/__tests__/validate.test.ts | 0 .../@randsum}/customdice/build.ts | 0 .../@randsum}/customdice/bunfig.toml | 0 .../@randsum}/customdice/eslint.config.js | 0 .../@randsum}/customdice/icon.webp | Bin .../@randsum}/customdice/package.json | 2 +- .../@randsum}/customdice/src/customD.ts | 0 .../@randsum/customdice/src/customDice.ts | 3 +++ .../@randsum}/customdice/src/guards.ts | 0 .../@randsum}/customdice/src/index.ts | 1 + .../@randsum}/customdice/src/patterns.ts | 0 .../@randsum}/customdice/src/roll.ts | 0 .../@randsum}/customdice/src/types.ts | 0 .../src/utils/argumentToCustomRollConfig.ts | 0 .../utils/argumentToCustomRollParameters.ts | 0 .../src/utils/customConfigToCustomNotation.ts | 0 .../src/utils/customConfigToDescription.ts | 0 .../utils/customNotationToCustomRollConfig.ts | 0 .../customdice/src/utils/facesFromSides.ts | 0 .../customdice/src/utils/resultToFaces.ts | 0 .../@randsum}/customdice/src/validate.ts | 0 .../@randsum}/customdice/tsconfig.json | 7 ++++-- .../@randsum}/dice/.prettierignore | 0 .../@randsum}/dice/.prettierrc | 0 .../@randsum}/dice/CODE_OF_CONDUCT.md | 0 .../@randsum}/dice/CONTRIBUTING.md | 0 {@randsum => packages/@randsum}/dice/LICENSE | 0 .../@randsum}/dice/__tests__/D.test.ts | 0 .../@randsum}/dice/__tests__/dice.test.ts | 0 {@randsum => packages/@randsum}/dice/build.ts | 0 .../@randsum}/dice/bun.lockb | Bin .../@randsum}/dice/bunfig.toml | 0 .../@randsum}/dice/eslint.config.js | 0 .../@randsum}/dice/icon.webp | Bin .../@randsum}/dice/package.json | 2 +- {@randsum => packages/@randsum}/dice/src/D.ts | 0 .../@randsum}/dice/src/dice.ts | 0 .../@randsum}/dice/src/index.ts | 0 .../@randsum/dice}/tsconfig.json | 7 ++++-- .../@randsum}/games/.prettierignore | 0 .../@randsum}/games/.prettierrc | 0 .../@randsum}/games/CODE_OF_CONDUCT.md | 0 .../@randsum}/games/CONTRIBUTING.md | 0 {@randsum => packages/@randsum}/games/LICENSE | 0 .../@randsum}/games/build.ts | 0 .../@randsum}/games/bun.lockb | Bin .../@randsum}/games/bunfig.toml | 0 .../@randsum}/games/eslint.config.js | 0 .../@randsum}/games/icon.webp | Bin .../@randsum}/games/package.json | 2 +- .../@randsum}/games/src/Blades/index.ts | 0 .../@randsum}/games/src/Blades/types.ts | 0 .../@randsum/games/src/FifthEd}/index.ts | 2 +- .../@randsum/games/src/FifthEd}/types.ts | 0 .../@randsum}/games/src/Root/index.ts | 0 .../@randsum}/games/src/Root/types.ts | 0 .../@randsum}/games/src/SalvageUnion/index.ts | 0 .../games/src/SalvageUnion/tables.ts | 0 .../@randsum}/games/src/SalvageUnion/types.ts | 0 .../@randsum}/games/src/index.ts | 8 ++----- .../@randsum/games}/tsconfig.json | 7 ++++-- .../@randsum}/notation/.prettierignore | 0 .../@randsum}/notation/.prettierrc | 0 .../@randsum}/notation/CODE_OF_CONDUCT.md | 0 .../@randsum}/notation/CONTRIBUTING.md | 0 .../@randsum}/notation/LICENSE | 0 .../notation/RANDSUM_DICE_NOTATION.md | 0 .../__tests__/configToNotation.test.ts | 0 .../notation/__tests__/guards.test.ts | 0 .../__tests__/notationToRollConfig.test.ts | 0 .../notation/__tests__/validate.test.ts | 0 .../@randsum}/notation/build.ts | 0 .../@randsum}/notation/bun.lockb | Bin .../@randsum}/notation/bunfig.toml | 0 .../@randsum}/notation/eslint.config.js | 0 .../@randsum}/notation/icon.webp | Bin .../@randsum}/notation/package.json | 2 +- .../@randsum}/notation/src/guards.ts | 0 .../@randsum}/notation/src/index.ts | 0 .../@randsum}/notation/src/patterns.ts | 0 .../@randsum}/notation/src/types.ts | 0 .../configToNotation/configToNotation.ts | 0 .../configToNotation/notationFormatters.ts | 0 .../src/utils/notationToRollConfig/index.ts | 0 .../notationToRollConfig/optionsParsers.ts | 0 .../@randsum}/notation/src/validate.ts | 0 .../@randsum/notation}/tsconfig.json | 7 ++++-- .../@randsum}/tower/.prettierignore | 0 .../@randsum}/tower/.prettierrc | 0 .../@randsum}/tower/CODE_OF_CONDUCT.md | 0 .../@randsum}/tower/CONTRIBUTING.md | 0 {@randsum => packages/@randsum}/tower/LICENSE | 0 .../tower/__tests__/applyModifiers.test.ts | 0 .../argumentToRollParameters.test.ts | 0 .../@randsum}/tower/__tests__/roll.test.ts | 0 .../@randsum}/tower/build.ts | 0 .../@randsum}/tower/bun.lockb | Bin .../@randsum}/tower/bunfig.toml | 0 .../@randsum}/tower/eslint.config.js | 0 .../@randsum}/tower/icon.webp | Bin .../@randsum}/tower/package.json | 2 +- .../@randsum}/tower/src/guards.ts | 0 .../@randsum}/tower/src/index.ts | 0 .../@randsum}/tower/src/roll.ts | 0 .../@randsum}/tower/src/types.ts | 0 .../tower/src/utils/applyModifiers/index.ts | 0 .../applyModifiers/modifierApplicators.ts | 0 .../tower/src/utils/applyModifiers/types.ts | 0 .../tower/src/utils/argumentToRollConfig.ts | 0 .../src/utils/argumentToRollParameters.ts | 0 packages/@randsum/tower/tsconfig.json | 12 +++++++++++ tsconfig.json | 11 ++++++---- 147 files changed, 75 insertions(+), 81 deletions(-) delete mode 100644 @randsum/core/Randsum .code-workspace delete mode 100644 @randsum/tower/tsconfig.json rename {@randsum => packages/@randsum}/core/.prettierignore (100%) rename {@randsum => packages/@randsum}/core/.prettierrc (100%) rename {@randsum => packages/@randsum}/core/CODE_OF_CONDUCT.md (100%) rename {@randsum => packages/@randsum}/core/CONTRIBUTING.md (100%) rename {@randsum => packages/@randsum}/core/LICENSE (100%) rename {@randsum => packages/@randsum}/core/__tests__/configToDescription.test.ts (94%) rename {@randsum => packages/@randsum}/core/__tests__/coreRandom.test.ts (86%) rename {@randsum => packages/@randsum}/core/__tests__/formDicePools.test.ts (88%) rename {@randsum => packages/@randsum}/core/__tests__/rollDicePools.test.ts (89%) rename {@randsum => packages/@randsum}/core/build.ts (100%) create mode 100755 packages/@randsum/core/bun.lockb rename {@randsum => packages/@randsum}/core/bunfig.toml (100%) rename {@randsum => packages/@randsum}/core/eslint.config.js (100%) rename {@randsum => packages/@randsum}/core/icon.webp (100%) rename {@randsum => packages/@randsum}/core/package.json (96%) rename {@randsum => packages/@randsum}/core/src/index.ts (100%) rename {@randsum => packages/@randsum}/core/src/types.ts (100%) rename {@randsum => packages/@randsum}/core/src/utils/configToDescription/index.ts (100%) rename {@randsum => packages/@randsum}/core/src/utils/configToDescription/stringFormatters.ts (99%) rename {@randsum => packages/@randsum}/core/src/utils/coreRandom.ts (100%) rename {@randsum => packages/@randsum}/core/src/utils/formDicePools.ts (100%) rename {@randsum => packages/@randsum}/core/src/utils/rollDicePools.ts (100%) rename {@randsum => packages/@randsum}/core/tsconfig.json (67%) rename {@randsum => packages/@randsum}/customdice/.prettierignore (100%) rename {@randsum => packages/@randsum}/customdice/.prettierrc (100%) rename {@randsum => packages/@randsum}/customdice/CODE_OF_CONDUCT.md (100%) rename {@randsum => packages/@randsum}/customdice/CONTRIBUTING.md (100%) rename {@randsum => packages/@randsum}/customdice/LICENSE (100%) rename {@randsum => packages/@randsum}/customdice/__tests__/customNotificationToCustomRollConfig.test.ts (100%) rename {@randsum => packages/@randsum}/customdice/__tests__/roll.test.ts (100%) rename {@randsum => packages/@randsum}/customdice/__tests__/validate.test.ts (100%) rename {@randsum => packages/@randsum}/customdice/build.ts (100%) rename {@randsum => packages/@randsum}/customdice/bunfig.toml (100%) rename {@randsum => packages/@randsum}/customdice/eslint.config.js (100%) rename {@randsum => packages/@randsum}/customdice/icon.webp (100%) rename {@randsum => packages/@randsum}/customdice/package.json (97%) rename {@randsum => packages/@randsum}/customdice/src/customD.ts (100%) create mode 100644 packages/@randsum/customdice/src/customDice.ts rename {@randsum => packages/@randsum}/customdice/src/guards.ts (100%) rename {@randsum => packages/@randsum}/customdice/src/index.ts (85%) rename {@randsum => packages/@randsum}/customdice/src/patterns.ts (100%) rename {@randsum => packages/@randsum}/customdice/src/roll.ts (100%) rename {@randsum => packages/@randsum}/customdice/src/types.ts (100%) rename {@randsum => packages/@randsum}/customdice/src/utils/argumentToCustomRollConfig.ts (100%) rename {@randsum => packages/@randsum}/customdice/src/utils/argumentToCustomRollParameters.ts (100%) rename {@randsum => packages/@randsum}/customdice/src/utils/customConfigToCustomNotation.ts (100%) rename {@randsum => packages/@randsum}/customdice/src/utils/customConfigToDescription.ts (100%) rename {@randsum => packages/@randsum}/customdice/src/utils/customNotationToCustomRollConfig.ts (100%) rename {@randsum => packages/@randsum}/customdice/src/utils/facesFromSides.ts (100%) rename {@randsum => packages/@randsum}/customdice/src/utils/resultToFaces.ts (100%) rename {@randsum => packages/@randsum}/customdice/src/validate.ts (100%) rename {@randsum => packages/@randsum}/customdice/tsconfig.json (53%) rename {@randsum => packages/@randsum}/dice/.prettierignore (100%) rename {@randsum => packages/@randsum}/dice/.prettierrc (100%) rename {@randsum => packages/@randsum}/dice/CODE_OF_CONDUCT.md (100%) rename {@randsum => packages/@randsum}/dice/CONTRIBUTING.md (100%) rename {@randsum => packages/@randsum}/dice/LICENSE (100%) rename {@randsum => packages/@randsum}/dice/__tests__/D.test.ts (100%) rename {@randsum => packages/@randsum}/dice/__tests__/dice.test.ts (100%) rename {@randsum => packages/@randsum}/dice/build.ts (100%) rename {@randsum => packages/@randsum}/dice/bun.lockb (100%) rename {@randsum => packages/@randsum}/dice/bunfig.toml (100%) rename {@randsum => packages/@randsum}/dice/eslint.config.js (100%) rename {@randsum => packages/@randsum}/dice/icon.webp (100%) rename {@randsum => packages/@randsum}/dice/package.json (97%) rename {@randsum => packages/@randsum}/dice/src/D.ts (100%) rename {@randsum => packages/@randsum}/dice/src/dice.ts (100%) rename {@randsum => packages/@randsum}/dice/src/index.ts (100%) rename {@randsum/games => packages/@randsum/dice}/tsconfig.json (53%) rename {@randsum => packages/@randsum}/games/.prettierignore (100%) rename {@randsum => packages/@randsum}/games/.prettierrc (100%) rename {@randsum => packages/@randsum}/games/CODE_OF_CONDUCT.md (100%) rename {@randsum => packages/@randsum}/games/CONTRIBUTING.md (100%) rename {@randsum => packages/@randsum}/games/LICENSE (100%) rename {@randsum => packages/@randsum}/games/build.ts (100%) rename {@randsum => packages/@randsum}/games/bun.lockb (100%) rename {@randsum => packages/@randsum}/games/bunfig.toml (100%) rename {@randsum => packages/@randsum}/games/eslint.config.js (100%) rename {@randsum => packages/@randsum}/games/icon.webp (100%) rename {@randsum => packages/@randsum}/games/package.json (97%) rename {@randsum => packages/@randsum}/games/src/Blades/index.ts (100%) rename {@randsum => packages/@randsum}/games/src/Blades/types.ts (100%) rename {@randsum/games/src/DnD5E => packages/@randsum/games/src/FifthEd}/index.ts (95%) rename {@randsum/games/src/DnD5E => packages/@randsum/games/src/FifthEd}/types.ts (100%) rename {@randsum => packages/@randsum}/games/src/Root/index.ts (100%) rename {@randsum => packages/@randsum}/games/src/Root/types.ts (100%) rename {@randsum => packages/@randsum}/games/src/SalvageUnion/index.ts (100%) rename {@randsum => packages/@randsum}/games/src/SalvageUnion/tables.ts (100%) rename {@randsum => packages/@randsum}/games/src/SalvageUnion/types.ts (100%) rename {@randsum => packages/@randsum}/games/src/index.ts (52%) rename {@randsum/notation => packages/@randsum/games}/tsconfig.json (53%) rename {@randsum => packages/@randsum}/notation/.prettierignore (100%) rename {@randsum => packages/@randsum}/notation/.prettierrc (100%) rename {@randsum => packages/@randsum}/notation/CODE_OF_CONDUCT.md (100%) rename {@randsum => packages/@randsum}/notation/CONTRIBUTING.md (100%) rename {@randsum => packages/@randsum}/notation/LICENSE (100%) rename {@randsum => packages/@randsum}/notation/RANDSUM_DICE_NOTATION.md (100%) rename {@randsum => packages/@randsum}/notation/__tests__/configToNotation.test.ts (100%) rename {@randsum => packages/@randsum}/notation/__tests__/guards.test.ts (100%) rename {@randsum => packages/@randsum}/notation/__tests__/notationToRollConfig.test.ts (100%) rename {@randsum => packages/@randsum}/notation/__tests__/validate.test.ts (100%) rename {@randsum => packages/@randsum}/notation/build.ts (100%) rename {@randsum => packages/@randsum}/notation/bun.lockb (100%) rename {@randsum => packages/@randsum}/notation/bunfig.toml (100%) rename {@randsum => packages/@randsum}/notation/eslint.config.js (100%) rename {@randsum => packages/@randsum}/notation/icon.webp (100%) rename {@randsum => packages/@randsum}/notation/package.json (97%) rename {@randsum => packages/@randsum}/notation/src/guards.ts (100%) rename {@randsum => packages/@randsum}/notation/src/index.ts (100%) rename {@randsum => packages/@randsum}/notation/src/patterns.ts (100%) rename {@randsum => packages/@randsum}/notation/src/types.ts (100%) rename {@randsum => packages/@randsum}/notation/src/utils/configToNotation/configToNotation.ts (100%) rename {@randsum => packages/@randsum}/notation/src/utils/configToNotation/notationFormatters.ts (100%) rename {@randsum => packages/@randsum}/notation/src/utils/notationToRollConfig/index.ts (100%) rename {@randsum => packages/@randsum}/notation/src/utils/notationToRollConfig/optionsParsers.ts (100%) rename {@randsum => packages/@randsum}/notation/src/validate.ts (100%) rename {@randsum/dice => packages/@randsum/notation}/tsconfig.json (53%) rename {@randsum => packages/@randsum}/tower/.prettierignore (100%) rename {@randsum => packages/@randsum}/tower/.prettierrc (100%) rename {@randsum => packages/@randsum}/tower/CODE_OF_CONDUCT.md (100%) rename {@randsum => packages/@randsum}/tower/CONTRIBUTING.md (100%) rename {@randsum => packages/@randsum}/tower/LICENSE (100%) rename {@randsum => packages/@randsum}/tower/__tests__/applyModifiers.test.ts (100%) rename {@randsum => packages/@randsum}/tower/__tests__/argumentToRollParameters.test.ts (100%) rename {@randsum => packages/@randsum}/tower/__tests__/roll.test.ts (100%) rename {@randsum => packages/@randsum}/tower/build.ts (100%) rename {@randsum => packages/@randsum}/tower/bun.lockb (100%) rename {@randsum => packages/@randsum}/tower/bunfig.toml (100%) rename {@randsum => packages/@randsum}/tower/eslint.config.js (100%) rename {@randsum => packages/@randsum}/tower/icon.webp (100%) rename {@randsum => packages/@randsum}/tower/package.json (97%) rename {@randsum => packages/@randsum}/tower/src/guards.ts (100%) rename {@randsum => packages/@randsum}/tower/src/index.ts (100%) rename {@randsum => packages/@randsum}/tower/src/roll.ts (100%) rename {@randsum => packages/@randsum}/tower/src/types.ts (100%) rename {@randsum => packages/@randsum}/tower/src/utils/applyModifiers/index.ts (100%) rename {@randsum => packages/@randsum}/tower/src/utils/applyModifiers/modifierApplicators.ts (100%) rename {@randsum => packages/@randsum}/tower/src/utils/applyModifiers/types.ts (100%) rename {@randsum => packages/@randsum}/tower/src/utils/argumentToRollConfig.ts (100%) rename {@randsum => packages/@randsum}/tower/src/utils/argumentToRollParameters.ts (100%) create mode 100644 packages/@randsum/tower/tsconfig.json diff --git a/.github/workflows/ci-template.yml b/.github/workflows/ci-template.yml index 808c3ae..9ae94e1 100644 --- a/.github/workflows/ci-template.yml +++ b/.github/workflows/ci-template.yml @@ -12,12 +12,8 @@ jobs: test: defaults: run: - working-directory: '@randsum/${{ inputs.package }}' - - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] + working-directory: 'packages/@randsum/${{ inputs.package }}' + runs-on: [ubuntu-latest] steps: - name: Checkout repo @@ -28,7 +24,7 @@ jobs: with: filters: | changesInPackage: - - '@randsum/${{ inputs.package }}/**' + - 'packages/@randsum/${{ inputs.package }}/**' - name: Use Bun if: steps.changes.outputs.changesInPackage == 'true' @@ -39,27 +35,27 @@ jobs: # Run the build script to build sibling packages - name: core if: steps.changes.outputs.changesInPackage == 'true' - working-directory: '@randsum/core' + working-directory: 'packages/@randsum/core' run: bun install && bun run build - name: notation if: steps.changes.outputs.changesInPackage == 'true' - working-directory: '@randsum/notation' + working-directory: 'packages/@randsum/notation' run: bun install && bun run build - name: dice if: steps.changes.outputs.changesInPackage == 'true' - working-directory: '@randsum/dice' + working-directory: 'packages/@randsum/dice' run: bun install && bun run build - name: tower if: steps.changes.outputs.changesInPackage == 'true' - working-directory: '@randsum/tower' + working-directory: 'packages/@randsum/tower' run: bun install && bun run build - name: customdice if: steps.changes.outputs.changesInPackage == 'true' - working-directory: '@randsum/customdice' + working-directory: 'packages/@randsum/customdice' run: bun install && bun run build - name: Type Check diff --git a/@randsum/core/Randsum .code-workspace b/@randsum/core/Randsum .code-workspace deleted file mode 100644 index 7f0c016..0000000 --- a/@randsum/core/Randsum .code-workspace +++ /dev/null @@ -1,20 +0,0 @@ -{ - "folders": [ - { - "path": "." - }, - { - "path": "../customdice" - }, - { - "path": "../dice" - }, - { - "path": "../notation" - }, - { - "path": "../tower" - } - ], - "settings": {} -} diff --git a/@randsum/tower/tsconfig.json b/@randsum/tower/tsconfig.json deleted file mode 100644 index 0213bb4..0000000 --- a/@randsum/tower/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig", - "include": ["./src", "__tests__"], - "exclude": [], - "compilerOptions": { - "composite": true, - "outDir": "./dist" - } -} diff --git a/bun.lockb b/bun.lockb index c33ce311ee62c5896a4303e8539678521965bd7f..17a9b683693ffddbe643c8be27d26f3720706892 100755 GIT binary patch delta 6957 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 JhSTLU{|3BP*eL)2 delta 6787 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 { test('returns an array strings matching the constraints', () => { diff --git a/@randsum/core/__tests__/coreRandom.test.ts b/packages/@randsum/core/__tests__/coreRandom.test.ts similarity index 86% rename from @randsum/core/__tests__/coreRandom.test.ts rename to packages/@randsum/core/__tests__/coreRandom.test.ts index 379fb13..cd50b50 100644 --- a/@randsum/core/__tests__/coreRandom.test.ts +++ b/packages/@randsum/core/__tests__/coreRandom.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from 'bun:test' -import { coreRandom } from '../src/utils/coreRandom' +import { coreRandom } from '../src' describe('coreRandom', () => { test('it returns an object between 1 and the provided number', () => { diff --git a/@randsum/core/__tests__/formDicePools.test.ts b/packages/@randsum/core/__tests__/formDicePools.test.ts similarity index 88% rename from @randsum/core/__tests__/formDicePools.test.ts rename to packages/@randsum/core/__tests__/formDicePools.test.ts index ee73b7b..e82113a 100644 --- a/@randsum/core/__tests__/formDicePools.test.ts +++ b/packages/@randsum/core/__tests__/formDicePools.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from 'bun:test' -import { formDicePools } from '../src/utils/formDicePools' +import { formDicePools } from '../src' describe('formDicePools', () => { test('returns an object with each argument transformed into a standalone key', () => { diff --git a/@randsum/core/__tests__/rollDicePools.test.ts b/packages/@randsum/core/__tests__/rollDicePools.test.ts similarity index 89% rename from @randsum/core/__tests__/rollDicePools.test.ts rename to packages/@randsum/core/__tests__/rollDicePools.test.ts index 21a81ca..421eb50 100644 --- a/@randsum/core/__tests__/rollDicePools.test.ts +++ b/packages/@randsum/core/__tests__/rollDicePools.test.ts @@ -1,6 +1,5 @@ import { describe, expect, test } from 'bun:test' -import { type DicePoolLike } from '../src/types' -import { rollDicePools } from '../src/utils/rollDicePools' +import { rollDicePools, type DicePoolLike } from '../src' describe('rollDicePools', () => { test('rolls the provided dice a number of times equal to the quantity', () => { diff --git a/@randsum/core/build.ts b/packages/@randsum/core/build.ts similarity index 100% rename from @randsum/core/build.ts rename to packages/@randsum/core/build.ts diff --git a/packages/@randsum/core/bun.lockb b/packages/@randsum/core/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..e4041491d905574b83d8aaf9300dfbce8a3919d4 GIT binary patch literal 62457 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%0AAPYx=VfcXtEit$~#?a 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