diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml new file mode 100644 index 0000000..904fd9e --- /dev/null +++ b/.gitea/workflows/ci.yaml @@ -0,0 +1,61 @@ +name: CI + +on: + push: + branches: [master, main] + tags: ['v*'] + pull_request: + branches: [master, main] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + fetch-tags: true + + - uses: actions/setup-node@v4 + with: + node-version: 22 + + - name: Auth for Gitea npm registry + run: | + echo "@rigor:registry=https://hub.kl1.tenere.ai/api/packages/Rigor/npm/" > .npmrc + echo "//hub.kl1.tenere.ai/api/packages/Rigor/npm/:_authToken=${{ secrets.PACKAGE_TOKEN }}" >> .npmrc + echo "@tenere:registry=https://hub.kl1.tenere.ai/api/packages/Tenere/npm/" >> .npmrc + echo "//hub.kl1.tenere.ai/api/packages/Tenere/npm/:_authToken=${{ secrets.PACKAGE_TOKEN }}" >> .npmrc + + - run: npm ci + + - name: Full suite + run: npm test + + - name: Rigor campaigns + run: npm run test:rigor + + publish: + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/v') + needs: test + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 22 + + - name: Auth for Gitea npm registry + run: | + echo "@rigor:registry=https://hub.kl1.tenere.ai/api/packages/Rigor/npm/" > .npmrc + echo "//hub.kl1.tenere.ai/api/packages/Rigor/npm/:_authToken=${{ secrets.PACKAGE_TOKEN }}" >> .npmrc + echo "@tenere:registry=https://hub.kl1.tenere.ai/api/packages/Tenere/npm/" >> .npmrc + echo "//hub.kl1.tenere.ai/api/packages/Tenere/npm/:_authToken=${{ secrets.PACKAGE_TOKEN }}" >> .npmrc + echo "@arbiter:registry=https://hub.kl1.tenere.ai/api/packages/Arbiter/npm/" >> .npmrc + echo "//hub.kl1.tenere.ai/api/packages/Arbiter/npm/:_authToken=${{ secrets.PACKAGE_TOKEN }}" >> .npmrc + + - run: npm ci + + - run: npm publish diff --git a/.npmrc b/.npmrc index 1331212..2f23c0d 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,6 @@ @rigor:registry=https://hub.kl1.tenere.ai/api/packages/Rigor/npm/ //hub.kl1.tenere.ai/api/packages/Rigor/npm/:_authToken=${PACKAGE_TOKEN} +@tenere:registry=https://hub.kl1.tenere.ai/api/packages/Tenere/npm/ +//hub.kl1.tenere.ai/api/packages/Tenere/npm/:_authToken=${PACKAGE_TOKEN} +@arbiter:registry=https://hub.kl1.tenere.ai/api/packages/Arbiter/npm/ +//hub.kl1.tenere.ai/api/packages/Arbiter/npm/:_authToken=${PACKAGE_TOKEN} diff --git a/package-lock.json b/package-lock.json index 67bafd8..8245835 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@tenere/pltc-core": "file:../../../../data_structures/pltc-core", + "@tenere/pltc-core": "^0.6.3", "heapify": "^1.0.2", "uuidv7": "^1.0.2" }, @@ -19,28 +19,8 @@ "peggy": "^5.0.6" } }, - "../../../../data_structures/pltc-core": { - "name": "@tenere/pltc-core", - "version": "0.6.3", - "license": "SEE LICENSE IN LICENSE", - "dependencies": { - "@tenere/graph-core": "^1.0.1" - }, - "devDependencies": { - "@rigor/core": "0.2.8", - "@rigor/model": "0.2.11", - "@rigor/reporters": "0.0.4", - "@tenere/benchmark-lib": "^2.0.0", - "fast-check": "^3.0.0" - }, - "engines": { - "node": ">=22.0.0" - } - }, "node_modules/@peggyjs/from-mem": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@peggyjs/from-mem/-/from-mem-3.1.3.tgz", - "integrity": "sha512-LLlgtfXIaeYXoOYovOI0spLM8ZXaqkAlmcRRrLzHJzLMqkU6Sw0R4KMoCoHx1PjaP815pSCBlS+BN6aD8t1Jgg==", "dev": true, "license": "MIT", "dependencies": { @@ -52,51 +32,53 @@ }, "node_modules/@rigor/analysis": { "version": "0.0.7", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fanalysis/-/0.0.7/analysis-0.0.7.tgz", - "integrity": "sha512-CH9g9gU5P+aWZfneL7l91Q8wgZ0kwteYTpOdShqi6VFg2aoOSk4HMl8RTzkO4suxWa2VQ/mMnFJ/TAiHwJOobA==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { "@rigor/instrument": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=22.0.0" } }, "node_modules/@rigor/artifact": { "version": "0.1.3", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fartifact/-/0.1.3/artifact-0.1.3.tgz", - "integrity": "sha512-/SP5veJOpZ7y0dEBYOm+iBKQnBqZbTQzCXGd/LvQvmDtMGL7KJv2UbU7blnWp9CIwD8qU8t9U9c9oKO+qupUcA==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { "@rigor/trace": "*" + }, + "engines": { + "node": ">=22.0.0" } }, "node_modules/@rigor/benchmark": { "version": "0.0.6", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fbenchmark/-/0.0.6/benchmark-0.0.6.tgz", - "integrity": "sha512-uCCtEhCeY0t81aSgvV1Q7D3cgNU1WufEGJ/vcljhjXnx05hdMWnlK0NPdI/qkWRbRiz+4sSpcGOGO9NBFk7ExQ==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { "@rigor/artifact": "*", "@rigor/complexity": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/complexity": { "version": "0.0.7", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fcomplexity/-/0.0.7/complexity-0.0.7.tgz", - "integrity": "sha512-RfrkXLykb37WFwmB6OfZoXYMEZJLG78r2HqfDB27jWQmGt5l/4Hb9Zh77dEKl2CsUx2fgd5NafdDl9qFtTE6bg==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { "@rigor/trace": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/core": { "version": "3.0.5", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fcore/-/3.0.5/core-3.0.5.tgz", - "integrity": "sha512-9Lzozlm5LvSGTny2ISw/meYfB+gJD8mq9iJzAY3rs4SNeTI0bjbv3y5KMf7PC/L8YbT2s+GpD5bk2bMsu1g9mg==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { @@ -119,24 +101,26 @@ "@rigor/spec": "*", "@rigor/storage": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=22.0.0" } }, "node_modules/@rigor/fault": { "version": "0.0.5", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Ffault/-/0.0.5/fault-0.0.5.tgz", - "integrity": "sha512-MxzAEk8tx/Nc9CL3dQZZwKXj7eqBgnfTC9dI9TiU9b1u3zW7EIoL28vGqtrr1ucqSTeNwD8BGGAenan2tvb1ZQ==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { "@rigor/rng": "*", "@rigor/shrink": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/fuzzer": { "version": "0.0.4", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Ffuzzer/-/0.0.4/fuzzer-0.0.4.tgz", - "integrity": "sha512-cJu9bL0GqpkTsIne9PLMcsLtRfBlDz18DqPiarSi+MetH9R0joh7C+fp/e4guo0y+Q2RBJZwulA8gOh9AwgEaQ==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { @@ -144,33 +128,36 @@ "@rigor/rng": "*", "@rigor/shrink": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/gen": { "version": "0.0.10", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fgen/-/0.0.10/gen-0.0.10.tgz", - "integrity": "sha512-MNtPAFL3ZyXNjbwLBqz7RQpdDL9NxYP7dtN/0nRJlDEjfu5oA9UQjpwa+lZCWn2yQiacZ0m5DL13X9IMJ0g/bA==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { "@rigor/rng": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/instrument": { "version": "0.0.5", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Finstrument/-/0.0.5/instrument-0.0.5.tgz", - "integrity": "sha512-GXJa6kcEAbd86yM57hR+2g0vcxJlpBfBOoMldWk3mzLmAcCkyYXNSjJekTAwNovfUrtIcnYgQ187Zj3A2d8Tcw==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { "@rigor/probe": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/model": { "version": "0.2.13", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fmodel/-/0.2.13/model-0.2.13.tgz", - "integrity": "sha512-eZ/888p1zGJGCBFVMA9suvS2mUNX+iHhZn+Uwl9lWa9CSHVRUWH9dTYYB+Qr1hNrCSGIDjV7rOC34wzT+QA4fw==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { @@ -182,12 +169,13 @@ "@rigor/rng": "*", "@rigor/shrink": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/network": { "version": "0.0.4", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fnetwork/-/0.0.4/network-0.0.4.tgz", - "integrity": "sha512-iNmiQA5QiCNkXnjAMPibGYzDk3Lf5hsgwXQGwRcSSVlZNBfVVw5fURzTsNen3TeAnqh9nozJnhD52yp3zdfP6Q==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { @@ -195,24 +183,26 @@ "@rigor/rng": "*", "@rigor/scheduler": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/probe": { "version": "0.0.5", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fprobe/-/0.0.5/probe-0.0.5.tgz", - "integrity": "sha512-F0llJf7r0fDC0itOg1y5mgii3GpP1Tibqq97rPtR+Zm2vM5s3THprs8Prab7fCcCM6L6g+tn/RxYCiWievZ/MQ==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { "@rigor/fault": "*", "@rigor/gen": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/prop": { "version": "0.0.4", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fprop/-/0.0.4/prop-0.0.4.tgz", - "integrity": "sha512-z3+STJPeNpz080ZfFbw5h6LpNFjCNnSymoQPUsjyaSovq3euyJrGx9sqtosVgVVE7Rzld6K4QwchJSJOqIi73w==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { @@ -223,30 +213,33 @@ "@rigor/rng": "*", "@rigor/shrink": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/reporters": { "version": "0.0.4", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Freporters/-/0.0.4/reporters-0.0.4.tgz", - "integrity": "sha512-TPxoRgHsrktw/oBbeq5gDWROZJVpjnMJ0N6+dy5niXRB3mXaUefhg9KX+MKZICEw+7IhJYtJRQ/+Qbb5xbQbEA==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { "@rigor/artifact": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/rng": { "version": "0.0.3", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Frng/-/0.0.3/rng-0.0.3.tgz", - "integrity": "sha512-OFERK5HlI6eV1yUadHoz9n88twqsd/lstAxMzBWFJiN1CCM0xG7IHUYMBCnYK6Di3TTcAarFNFL16Bchm3LrKg==", "dev": true, - "license": "SEE LICENSE IN LICENSE" + "license": "SEE LICENSE IN LICENSE", + "engines": { + "node": ">=18.0.0" + } }, "node_modules/@rigor/scheduler": { "version": "0.0.4", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fscheduler/-/0.0.4/scheduler-0.0.4.tgz", - "integrity": "sha512-tY7KASEfufOw4L1vIGeD1bTArCv+zAEPqT/XqiXFz+fckGxY8Nux6zDhGcjkur3qWOUNoWap6KOjSZSORHhXiw==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { @@ -254,40 +247,44 @@ "@rigor/rng": "*", "@rigor/shrink": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/search": { "version": "0.1.2", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fsearch/-/0.1.2/search-0.1.2.tgz", - "integrity": "sha512-L0E4d7lLMHH6wU4SJUJHXDSx7zBN4YaJD5LWiRV/PJicCIO443faKIQvUiUXNb89hcbaRHpLuIqLavryUUOsQA==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { "@rigor/gen": "*", "@rigor/shrink": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/shrink": { "version": "0.0.7", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fshrink/-/0.0.7/shrink-0.0.7.tgz", - "integrity": "sha512-z0yaZqmyysn40BBqAnqTQlymLuaIIU5u2BijjayX0+XZxhhcPIyvs4PISzJ4nmfkx2yE6qKABe2HHub9wVVUQw==", "dev": true, - "license": "SEE LICENSE IN LICENSE" + "license": "SEE LICENSE IN LICENSE", + "engines": { + "node": ">=18.0.0" + } }, "node_modules/@rigor/spec": { "version": "2.0.1", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fspec/-/2.0.1/spec-2.0.1.tgz", - "integrity": "sha512-0/lg19KenJy1e8D87+WqaMRh8Xad4h209/CgK6ofCQapwz/IcriMPHgOZZbHMA4C8G3B6/luVbSVT0EHZoJ8qg==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { "@rigor/gen": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/storage": { "version": "0.0.4", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Fstorage/-/0.0.4/storage-0.0.4.tgz", - "integrity": "sha512-7XapdgmvEg/C/kERldqFlw3mT1JkpjPMNK6fEcB2Ggx7+UR3ZeE9GyaodJ29my61b28SrQUWxLBHT5bm0bIVaA==", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { @@ -295,23 +292,36 @@ "@rigor/rng": "*", "@rigor/scheduler": "*", "@rigor/trace": "*" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@rigor/trace": { "version": "0.0.7", - "resolved": "https://hub.kl1.tenere.ai/api/packages/Rigor/npm/%40rigor%2Ftrace/-/0.0.7/trace-0.0.7.tgz", - "integrity": "sha512-vCLF+WTSdy0pwe9sTonPt8HnNeSkK9U5SAxNpdIeiT+IBP74t9K7JoHMmfo7ka+S0puWecDjjNtWCSqtvKkjNg==", "dev": true, - "license": "SEE LICENSE IN LICENSE" + "license": "SEE LICENSE IN LICENSE", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@tenere/graph-core": { + "version": "1.0.1", + "resolved": "https://hub.kl1.tenere.ai/api/packages/Tenere/npm/%40tenere%2Fgraph-core/-/1.0.1/graph-core-1.0.1.tgz", + "integrity": "sha512-29EzF1yBVLuaaapmrL+xNGRaWsM2Ln0G+WHVJURNzwQnDUC2ZSgaeVRMGj3aHFOj2K4mfSh9JqBP5Az2ZHU4pw==", + "license": "MIT" }, "node_modules/@tenere/pltc-core": { - "resolved": "../../../../data_structures/pltc-core", - "link": true + "version": "0.6.3", + "resolved": "https://hub.kl1.tenere.ai/api/packages/Tenere/npm/%40tenere%2Fpltc-core/-/0.6.3/pltc-core-0.6.3.tgz", + "integrity": "sha512-+XsxNw35fyX8ku19FfyFsb6DgYoaKb6wkAbo1VF+moeyZ0D3AqDTofsBnd2sv5o2y8RpB3XftBxt0Hv1sBcQtg==", + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "@tenere/graph-core": "^1.0.1" + } }, "node_modules/commander": { "version": "14.0.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", - "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", "dev": true, "license": "MIT", "engines": { @@ -320,8 +330,6 @@ }, "node_modules/fast-check": { "version": "4.9.0", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.9.0.tgz", - "integrity": "sha512-7ms6T7SybUev/PQITciI0yLM2pOSFy5zpG8Ty7tQofcVaQUvrMXp6CBwqF6fThLCLOrfBtuHAtwq6Yu4XPCllg==", "dev": true, "funding": [ { @@ -343,14 +351,10 @@ }, "node_modules/heapify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/heapify/-/heapify-1.0.2.tgz", - "integrity": "sha512-h/b3y12Orh2VsISvDsF/vulkoKH38P7yr223hfWJILo3imy7dX8f9ZrBgkkfLsJG11g8GI1/y6+8POSxgR7YcQ==", "license": "MIT" }, "node_modules/peggy": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/peggy/-/peggy-5.1.0.tgz", - "integrity": "sha512-IEo5aYRZ2kXH4Qby06cjtL114PZnwLoTiA41vUmg2vPZgANn+c87m5BUurhuDr5/cu758ZlpgsAfBVx+hhO5+w==", "dev": true, "license": "MIT", "dependencies": { @@ -367,8 +371,6 @@ }, "node_modules/pure-rand": { "version": "8.4.2", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-8.4.2.tgz", - "integrity": "sha512-vvuOGgcuPJAirlHvuQw1TrOiw7ptaIXXmIbNuiNOY6lNGJJH49PQ1Kj4nd783nPdQhQdicgOjVI2yI/9BD6/Ng==", "dev": true, "funding": [ { @@ -384,8 +386,6 @@ }, "node_modules/semver": { "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -397,8 +397,6 @@ }, "node_modules/source-map-generator": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/source-map-generator/-/source-map-generator-2.0.6.tgz", - "integrity": "sha512-IlassDs1Ve8nV6uyQZXF9kdkJpVKnMte2JZQXu13M0A5zwc+vu6+LNHfmxsHBMDtoZE21RHiKI0/xvpecZRCNg==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -407,8 +405,6 @@ }, "node_modules/uuidv7": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/uuidv7/-/uuidv7-1.2.1.tgz", - "integrity": "sha512-4kPkK3/XTQW9Hbm4CaqfICn+kY9LJtDVEOfgsRRra/+n2Ofg4NqzRFceAkxvQ/Ud/6BpHOPzj8cirqM7TzTN5Q==", "license": "Apache-2.0", "bin": { "uuidv7": "cli.js" diff --git a/package.json b/package.json index f43b5af..6c325c2 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,9 @@ ".": "./src/index.js", "./package.json": "./package.json" }, + "files": [ + "src/" + ], "scripts": { "test": "node --test --test-force-exit \"tests/**/*.test.js\" \"tests/integration/*.js\"", "test:all": "npm test", @@ -55,7 +58,7 @@ "dsl" ], "dependencies": { - "@tenere/pltc-core": "file:../../../../data_structures/pltc-core", + "@tenere/pltc-core": "^0.6.3", "heapify": "^1.0.2", "uuidv7": "^1.0.2" },