diff --git a/.changeset/curvy-terms-march.md b/.changeset/curvy-terms-march.md new file mode 100644 index 00000000..ac2456d4 --- /dev/null +++ b/.changeset/curvy-terms-march.md @@ -0,0 +1,5 @@ +--- +"@suddenly-giovanni/schema-resume": patch +--- + +Completely migrated away from package.json diff --git a/.github/workflows/pull-request-checks-workflow.yml b/.github/workflows/pull-request-checks-workflow.yml index 5b6c81ff..62f49020 100644 --- a/.github/workflows/pull-request-checks-workflow.yml +++ b/.github/workflows/pull-request-checks-workflow.yml @@ -66,6 +66,3 @@ jobs: files: ./coverage/coverage-final.json env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - - - name: 🦋 Require changesets - run: deno task changeset:status --since=origin/main diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 41583e36..00000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -@jsr:registry=https://npm.jsr.io diff --git a/deno.json b/deno.json index bab4bb31..19692119 100644 --- a/deno.json +++ b/deno.json @@ -37,7 +37,7 @@ }, "changeset:empty": { "command": "changeset add --empty", - "description": "allows you to create an empty changeset if no packages are being bumped, usually only required if you have CI that blocks merges without a changeset." + "description": "Allows you to create an empty changeset if no packages are being bumped, usually only required if you have CI that blocks merges without a changeset." }, "changeset:status": { "command": "changeset status", @@ -47,9 +47,13 @@ "command": "changeset version", "description": "The version command takes changesets that have been made and updates versions and dependencies of packages, as well as writing changelogs. It is responsible for all file changes to versions before publishing to npm." }, - "test:all": "vitest" + "test:all": { + "command": "deno run -A --inspect npm:vitest@3.0.4", + "description": "Run all the project tests with vitest" + } }, "imports": { + "@deno/vite-plugin": "npm:@deno/vite-plugin@1.0.2", "@changesets/cli": "npm:@changesets/cli@2.27.12", "@types/node": "npm:@types/node@22.10.10", "@vitest/coverage-istanbul": "npm:@vitest/coverage-istanbul@3.0.4", diff --git a/deno.lock b/deno.lock index 4a15bb09..ab616bc2 100644 --- a/deno.lock +++ b/deno.lock @@ -1,13 +1,24 @@ { "version": "4", "specifiers": { + "jsr:@suddenly-giovanni/schema-resume@0.0.2": "0.0.2", "npm:@changesets/cli@2.27.12": "2.27.12", - "npm:@jsr/std__yaml@1.0.5": "1.0.5", + "npm:@deno/vite-plugin@1.0.2": "1.0.2_vite@6.0.11__@types+node@22.10.10__yaml@2.7.0_@types+node@22.10.10_yaml@2.7.0", "npm:@types/json-schema@7.0.15": "7.0.15", "npm:@types/node@22.10.10": "22.10.10", - "npm:@vitest/coverage-istanbul@3.0.4": "3.0.4_vitest@3.0.4__@types+node@22.10.10__vite@6.0.11___@types+node@22.10.10_@types+node@22.10.10", + "npm:@vitest/coverage-istanbul@3.0.4": "3.0.4_vitest@3.0.4__@types+node@22.10.10__vite@6.0.11___@types+node@22.10.10___yaml@2.7.0__yaml@2.7.0_@types+node@22.10.10_yaml@2.7.0", "npm:effect@3.12.7": "3.12.7", - "npm:vitest@3.0.4": "3.0.4_@types+node@22.10.10_vite@6.0.11__@types+node@22.10.10" + "npm:vitest@*": "3.0.4_@types+node@22.10.10_vite@6.0.11__@types+node@22.10.10__yaml@2.7.0_yaml@2.7.0", + "npm:vitest@3.0.4": "3.0.4_@types+node@22.10.10_vite@6.0.11__@types+node@22.10.10__yaml@2.7.0_yaml@2.7.0", + "npm:yaml@2.7.0": "2.7.0" + }, + "jsr": { + "@suddenly-giovanni/schema-resume@0.0.2": { + "integrity": "7fdf4fe2899219020597b49e96f877856883893812027efa26b299081a49f696", + "dependencies": [ + "npm:effect" + ] + } }, "npm": { "@ampproject/remapping@2.3.0": { @@ -154,7 +165,7 @@ "outdent", "prettier", "resolve-from", - "semver@7.6.3" + "semver@7.7.0" ] }, "@changesets/assemble-release-plan@6.0.5": { @@ -165,7 +176,7 @@ "@changesets/should-skip-package", "@changesets/types@6.0.0", "@manypkg/get-packages", - "semver@7.6.3" + "semver@7.7.0" ] }, "@changesets/changelog-git@0.2.0": { @@ -202,7 +213,7 @@ "package-manager-detector", "picocolors", "resolve-from", - "semver@7.6.3", + "semver@7.7.0", "spawndamnit", "term-size" ] @@ -231,7 +242,7 @@ "@changesets/types@6.0.0", "@manypkg/get-packages", "picocolors", - "semver@7.6.3" + "semver@7.7.0" ] }, "@changesets/get-release-plan@4.0.6": { @@ -314,6 +325,12 @@ "prettier" ] }, + "@deno/vite-plugin@1.0.2_vite@6.0.11__@types+node@22.10.10__yaml@2.7.0_@types+node@22.10.10_yaml@2.7.0": { + "integrity": "sha512-ZaC5W1yCb1xdRURU5qHFHrxZABr1tC68tS73/YhXUUbe9nuytCV4CG/dpLxMkxS64Fs3YwcqEz2k1eAqE9W5SQ==", + "dependencies": [ + "vite" + ] + }, "@esbuild/aix-ppc64@0.24.2": { "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==" }, @@ -427,9 +444,6 @@ "@jridgewell/sourcemap-codec" ] }, - "@jsr/std__yaml@1.0.5": { - "integrity": "sha512-jbh2xwnja+ar+7NE0oDTlbST1WW29dAQOKX8+1DZgdT54NVt9lZ9YVDrzh4uP1w6ZHVirtY0z99BSym0v+Zh4Q==" - }, "@manypkg/find-root@1.1.0": { "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", "dependencies": [ @@ -542,7 +556,7 @@ "undici-types" ] }, - "@vitest/coverage-istanbul@3.0.4_vitest@3.0.4__@types+node@22.10.10__vite@6.0.11___@types+node@22.10.10_@types+node@22.10.10": { + "@vitest/coverage-istanbul@3.0.4_vitest@3.0.4__@types+node@22.10.10__vite@6.0.11___@types+node@22.10.10___yaml@2.7.0__yaml@2.7.0_@types+node@22.10.10_yaml@2.7.0": { "integrity": "sha512-a+SgPMom0PlRTuDasoucL2V7FDpS8j7p6jpHLNgt3d7oOSWYwtAFVCfZ3iQ+a+cOnh76g4mOftVR5Y9HokB/GQ==", "dependencies": [ "@istanbuljs/schema", @@ -567,7 +581,7 @@ "tinyrainbow" ] }, - "@vitest/mocker@3.0.4_vite@6.0.11__@types+node@22.10.10_@types+node@22.10.10": { + "@vitest/mocker@3.0.4_vite@6.0.11__@types+node@22.10.10__yaml@2.7.0_@types+node@22.10.10_yaml@2.7.0": { "integrity": "sha512-gEef35vKafJlfQbnyOXZ0Gcr9IBUsMTyTLXsEQwuyYAerpHqvXhzdBnDFuHLpFqth3F7b6BaFr4qV/Cs1ULx5A==", "dependencies": [ "@vitest/spy", @@ -674,8 +688,8 @@ "cac@6.7.14": { "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==" }, - "caniuse-lite@1.0.30001695": { - "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==" + "caniuse-lite@1.0.30001696": { + "integrity": "sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==" }, "chai@5.1.2": { "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", @@ -971,7 +985,7 @@ "@babel/parser", "@istanbuljs/schema", "istanbul-lib-coverage", - "semver@7.6.3" + "semver@7.7.0" ] }, "istanbul-lib-report@3.0.1": { @@ -1064,7 +1078,7 @@ "make-dir@4.0.0": { "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dependencies": [ - "semver@7.6.3" + "semver@7.7.0" ] }, "merge2@1.4.1": { @@ -1238,8 +1252,8 @@ "semver@6.3.1": { "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, - "semver@7.6.3": { - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" + "semver@7.7.0": { + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==" }, "shebang-command@2.0.0": { "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", @@ -1367,7 +1381,7 @@ "picocolors" ] }, - "vite-node@3.0.4_@types+node@22.10.10": { + "vite-node@3.0.4_@types+node@22.10.10_yaml@2.7.0": { "integrity": "sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==", "dependencies": [ "cac", @@ -1377,17 +1391,18 @@ "vite" ] }, - "vite@6.0.11_@types+node@22.10.10": { + "vite@6.0.11_@types+node@22.10.10_yaml@2.7.0": { "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", "dependencies": [ "@types/node@22.10.10", "esbuild", "fsevents", "postcss", - "rollup" + "rollup", + "yaml" ] }, - "vitest@3.0.4_@types+node@22.10.10_vite@6.0.11__@types+node@22.10.10": { + "vitest@3.0.4_@types+node@22.10.10_vite@6.0.11__@types+node@22.10.10__yaml@2.7.0_yaml@2.7.0": { "integrity": "sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==", "dependencies": [ "@types/node@22.10.10", @@ -1444,29 +1459,33 @@ }, "yallist@3.1.1": { "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yaml@2.7.0": { + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==" } }, "workspace": { "dependencies": [ "npm:@changesets/cli@2.27.12", + "npm:@deno/vite-plugin@1.0.2", "npm:@types/node@22.10.10", "npm:@vitest/coverage-istanbul@3.0.4", "npm:vitest@3.0.4" ], "members": { "packages/resume": { - "packageJson": { - "dependencies": [ - "npm:@jsr/std__yaml@1.0.5", - "npm:@suddenly-giovanni/schema-resume@*", - "npm:@types/node@22.10.10", - "npm:effect@3.12.7", - "npm:vitest@3.0.4" - ] - } + "dependencies": [ + "jsr:@suddenly-giovanni/schema-resume@0.0.2", + "npm:@deno/vite-plugin@1.0.2", + "npm:@types/node@22.10.10", + "npm:effect@3.12.7", + "npm:vitest@3.0.4", + "npm:yaml@2.7.0" + ] }, "packages/schema-resume": { "dependencies": [ + "npm:@deno/vite-plugin@1.0.2", "npm:@types/json-schema@7.0.15", "npm:@types/node@22.10.10", "npm:effect@3.12.7", diff --git a/flake.lock b/flake.lock index 09a0f968..22bde6c7 100644 --- a/flake.lock +++ b/flake.lock @@ -2,16 +2,18 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1737672001, - "narHash": "sha256-YnHJJ19wqmibLQdUeq9xzE6CjrMA568KN/lFPuSVs4I=", - "rev": "035f8c0853c2977b24ffc4d0a42c74f00b182cd8", - "revCount": 713549, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2411.713549%2Brev-035f8c0853c2977b24ffc4d0a42c74f00b182cd8/019499b9-80c8-7221-bbc4-8cee30ee0dcb/source.tar.gz" + "lastModified": 1738136902, + "narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c", + "type": "github" }, "original": { - "type": "tarball", - "url": "https://flakehub.com/f/NixOS/nixpkgs/%2A.tar.gz" + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" } }, "root": { diff --git a/flake.nix b/flake.nix index 29480eea..25e3eb47 100644 --- a/flake.nix +++ b/flake.nix @@ -1,47 +1,22 @@ { - description = "An empty flake template that you can adapt to your own environment"; + description = "A flake for aarch64-darwin"; - # Flake inputs - inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/*.tar.gz"; + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; - # Flake outputs outputs = { self, nixpkgs }: let - # The systems supported for this flake - supportedSystems = [ - "x86_64-linux" # 64-bit Intel/AMD Linux - "aarch64-linux" # 64-bit ARM Linux - "x86_64-darwin" # 64-bit Intel macOS - "aarch64-darwin" # 64-bit ARM macOS - ]; - - # Helper to provide system-specific attributes - forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f { - pkgs = import nixpkgs { inherit system; }; - }); - in - { - devShells = forEachSupportedSystem ({ pkgs }: { - default = pkgs.mkShell { - # The Nix packages provided in the environment - # Add any you need here - packages = with pkgs; [ - nodejs-slim_23 - corepack_23 - biome - deno - ]; - - # Set any environment variables for your dev shell - env = { }; - - # Add any shell logic you want executed any time the environment is activated - shellHook = '' - echo "Nix dev env!" - echo "Node 🪢 version: $(node --version)" - echo "Deno 🦕 version: $(deno -V)" - ''; - }; - }); + system = "aarch64-darwin"; + pkgs = import nixpkgs { inherit system; }; + in { + devShells.aarch64-darwin.default = pkgs.mkShell { + packages = with pkgs; [ + biome + deno + ]; + shellHook = '' + echo "Nix dev env!" + echo "Deno 🦕 version: $(deno -V)" + ''; + }; }; } diff --git a/package.json b/package.json deleted file mode 100644 index 86f5a087..00000000 --- a/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "workspaces": ["./packages/resume", "./packages/schema-resume"] -} diff --git a/packages/resume/deno.json b/packages/resume/deno.json index c958e70b..a813dccc 100644 --- a/packages/resume/deno.json +++ b/packages/resume/deno.json @@ -1,5 +1,13 @@ { "$schema": "https://raw.githubusercontent.com/denoland/deno/refs/heads/main/cli/schemas/config-file.v1.json", + "imports": { + "@deno/vite-plugin": "npm:@deno/vite-plugin@1.0.2", + "@suddenly-giovanni/schema-resume": "jsr:@suddenly-giovanni/schema-resume@0.0.2", + "@types/node": "npm:@types/node@22.10.10", + "effect": "npm:effect@3.12.7", + "vitest": "npm:vitest@3.0.4", + "yaml": "npm:yaml@2.7.0" + }, "tasks": { "format": { "description": "Format the codebase", @@ -27,7 +35,7 @@ }, "test": { "description": "Run tests", - "command": "vitest" + "command": "deno run -A --inspect npm:vitest@3.0.4 --inspect --no-file-parallelism" } } } diff --git a/packages/resume/package.json b/packages/resume/package.json deleted file mode 100644 index 9fc8f797..00000000 --- a/packages/resume/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "@suddenly-giovanni/resume", - "type": "module", - "version": "0.0.2", - "private": true, - "dependencies": { - "@suddenly-giovanni/schema-resume": "npm:@suddenly-giovanni/schema-resume", - "@std/yaml": "npm:@jsr/std__yaml@1.0.5", - "effect": "3.12.7" - }, - "devDependencies": { - "@types/node": "22.10.10", - "vitest": "3.0.4" - } -} diff --git a/packages/resume/src/integration-test.spec.ts b/packages/resume/src/integration-test.spec.ts index 99dc6623..dc66a721 100644 --- a/packages/resume/src/integration-test.spec.ts +++ b/packages/resume/src/integration-test.spec.ts @@ -2,11 +2,10 @@ import * as fs from 'node:fs/promises' // @ts-types="@types/node" import { URL } from 'node:url' - -import * as yaml from '@std/yaml' import { Resume } from '@suddenly-giovanni/schema-resume' import { Schema } from 'effect' import { describe, expect, it } from 'vitest' +import YAML from 'yaml' describe('integration test', () => { it('resume.yml should fulfill Resume schema constraints', async () => { @@ -14,7 +13,7 @@ describe('integration test', () => { const pathToResume = new URL('./resume.yml', import.meta.url) const stringifyResumeYaml = await fs.readFile(pathToResume, 'utf8') - const resumeYaml = yaml.parse(stringifyResumeYaml) + const resumeYaml = YAML.parse(stringifyResumeYaml) expect(() => parse(resumeYaml)).not.toThrow() }) diff --git a/packages/resume/vitest.config.ts b/packages/resume/vitest.config.ts index 718559ae..af80f242 100644 --- a/packages/resume/vitest.config.ts +++ b/packages/resume/vitest.config.ts @@ -1,6 +1,8 @@ +import deno from '@deno/vite-plugin' import { defineConfig } from 'vitest/config' export default defineConfig({ + plugins: [deno()], test: { include: ['src/**/*.spec.ts'], }, diff --git a/packages/schema-resume/deno.json b/packages/schema-resume/deno.json index 36ed9d57..4b50c9ef 100644 --- a/packages/schema-resume/deno.json +++ b/packages/schema-resume/deno.json @@ -9,6 +9,7 @@ "exclude": ["package.json", "src/test", "src/**/*.spec.ts"] }, "imports": { + "@deno/vite-plugin": "npm:@deno/vite-plugin@1.0.2", "@types/json-schema": "npm:@types/json-schema@7.0.15", "@types/node": "npm:@types/node@22.10.10", "effect": "npm:effect@3.12.7", @@ -36,7 +37,7 @@ "description": "Lint all files and write changes" }, "test": { - "command": "vitest", + "command": "deno run -A --inspect npm:vitest@3.0.4", "description": "Run tests" }, "typecheck": { diff --git a/packages/schema-resume/package.json b/packages/schema-resume/package.json deleted file mode 100644 index 215369b3..00000000 --- a/packages/schema-resume/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "@suddenly-giovanni/schema-resume", - "type": "module", - "version": "0.0.2", - "exports": { - ".": "./src/index.ts" - } -} diff --git a/packages/schema-resume/vitest.config.ts b/packages/schema-resume/vitest.config.ts index a4bd68b5..cd75b7bb 100644 --- a/packages/schema-resume/vitest.config.ts +++ b/packages/schema-resume/vitest.config.ts @@ -1,6 +1,8 @@ +import deno from '@deno/vite-plugin' import { defineConfig } from 'vitest/config' export default defineConfig({ + plugins: [deno()], test: { includeSource: ['./src/test/test-globals.ts'], globalSetup: './src/test/test-globals.ts', diff --git a/vitest.config.ts b/vitest.config.ts index 686b5b3b..72023962 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,6 +1,8 @@ +import deno from '@deno/vite-plugin' import { defineConfig } from 'vitest/config' export default defineConfig({ + plugins: [deno()], test: { reporters: process.env['GITHUB_ACTIONS'] ? ['dot', 'github-actions'] : ['dot'], workspace: ['packages/*'],