geospec-engine 0.0.0 → 0.1.0-next.19
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.
- package/LICENSE +201 -0
- package/NOTICE +99 -0
- package/README.md +150 -0
- package/dist/bindings/mixed-wasm/geospec_engine_native.mjs +2 -0
- package/dist/bindings/mixed-wasm/geospec_engine_native.wasm +0 -0
- package/dist/host-types.d.mts +48 -0
- package/dist/host-types.mjs +1 -0
- package/dist/index.d.mts +3 -0
- package/dist/index.mjs +1 -0
- package/dist/mixed-wasm-loader.d.mts +16 -0
- package/dist/mixed-wasm-loader.mjs +3 -0
- package/dist/native/index.js +708 -0
- package/dist/node.d.mts +97 -0
- package/dist/node.mjs +1 -0
- package/dist/wasm.d.mts +93 -0
- package/dist/wasm.mjs +1 -0
- package/licenses/FreeType-FTL.txt +169 -0
- package/licenses/GeoSpec-LICENSE.txt +201 -0
- package/licenses/Manifold-Rust-LICENSE.txt +201 -0
- package/licenses/NOTICE.txt +99 -0
- package/licenses/OCCT-LGPL-2.1.txt +502 -0
- package/licenses/OCCT-LGPL-exception.txt +10 -0
- package/licenses/RapidJSON-LICENSE.txt +57 -0
- package/licenses/SOURCE-RELINK.json +152 -0
- package/licenses/SOURCE-RELINK.md +22 -0
- package/licenses/THIRD-PARTY-NOTICES.txt +1088 -0
- package/licenses/cargo/01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f-COPYING +3 -0
- package/licenses/cargo/0621878e61f0d0fda054bcbe02df75192c28bde1ecc8289cbd86aeba2dd72720-LICENSE-MIT +25 -0
- package/licenses/cargo/0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594-LICENSE-APACHE +177 -0
- package/licenses/cargo/0e6c282dfcb08a031c37b8f851fe5813fad63612e88a29dbe5121d727d67bbf2-LICENSE-MIT +26 -0
- package/licenses/cargo/0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f-LICENSE-MIT +21 -0
- package/licenses/cargo/123a331b5dbf04c30097fa43b8f858bc85df671fe776de498d01f3d6b7c1f69e-LICENSE-MIT +25 -0
- package/licenses/cargo/13ce2fb7da9c6c3a5a16e86877a604e80237f076b9258115d8f0444127f6a281-NOTICE.md +41 -0
- package/licenses/cargo/20fe7b00e904ed690e3b9fd6073784d3fc428141dbd10b81c01fd143d0797f58-LICENSE-APACHE +176 -0
- package/licenses/cargo/23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3-LICENSE-MIT +23 -0
- package/licenses/cargo/275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427-LICENSE-APACHE +202 -0
- package/licenses/cargo/27995d58ad5c1145c1a8cd86244ce844886958a35eb2b78c6b772748669999ac-LICENSE-MIT +25 -0
- package/licenses/cargo/30fefc3a7d6a0041541858293bcbea2dde4caa4c0a5802f996a7f7e8c0085652-LICENSE-MIT +23 -0
- package/licenses/cargo/3521672491a3479422d5fe1aca6645dd2984090f85da6e5205abfb18fb7a6897-LICENSE-MIT +25 -0
- package/licenses/cargo/36516aefdc84c5d5a1e7485425913a22dbda69eb1930c5e84d6ae4972b5194b9-LICENSE-MIT +23 -0
- package/licenses/cargo/3708458dee7f359ac6c9c5558023ed481be87e5372c43ebd7f2ca7ad23c12026-LICENSE-APACHE +202 -0
- package/licenses/cargo/378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397-LICENSE-MIT +25 -0
- package/licenses/cargo/3f8a05fc8617c5ce569fa5a4f2301cd847fe00fa011bdaa8f353fd55a2691a54-LICENSE-MIT +21 -0
- package/licenses/cargo/42fa16951ce7f24b5a467a40e5b449a1d41e662f97ca779864f053f39e097737-LICENSE-MIT +26 -0
- package/licenses/cargo/4455bf75a91154108304cb283e0fea9948c14f13e20d60887cf2552449dea3b1-LICENSE-MIT +21 -0
- package/licenses/cargo/516b24e051bf5630880ebbd55c40a25ce9552ebaf8970a53e8976eb70e522406-LICENSE-APACHE +201 -0
- package/licenses/cargo/553fffcd9b1cb158bc3e9edc35da85ca5c3b3d7d2e61c883ebcfa8a65814b583-LICENSE-APACHE +13 -0
- package/licenses/cargo/62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a-LICENSE-APACHE +176 -0
- package/licenses/cargo/6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb-LICENSE-MIT +25 -0
- package/licenses/cargo/6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd-LICENSE-MIT +26 -0
- package/licenses/cargo/7365cc8878a1d7ce155a58c4ca09c3d7a6be413efa5334a80ea842912b669349-LICENSE-MIT +25 -0
- package/licenses/cargo/7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0-LICENSE-MIT +25 -0
- package/licenses/cargo/7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c-UNLICENSE +24 -0
- package/licenses/cargo/8ce0830173fdac609dfb4ea603fdc002c2f4af0dc9b1a005653f5da9cf534b18-LICENSE +25 -0
- package/licenses/cargo/95bd3988beee069fa2848f648dab43cc6e0b2add2ad6bcb17360caf749802bcc-LICENSE-APACHE +176 -0
- package/licenses/cargo/98b52ccf20010b67d8fd3bdf151f50ecdfc01f25d6de190e015dd436d9f7ea0b-LICENSE +201 -0
- package/licenses/cargo/9e0dfd2dd4173a530e238cb6adb37aa78c34c6bc7444e0e10c1ab5d8881f63ba-LICENSE-MIT +25 -0
- package/licenses/cargo/a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2-LICENSE-APACHE +201 -0
- package/licenses/cargo/a825bd853ab71619a4923d7b4311221427848070ff44d990da39b0b274c1683f-LICENSE-MIT +21 -0
- package/licenses/cargo/a8ad31b1c3f40dca5a84119351b8fa8ddc868edd77fad8a8ebf6d8f2d16fa4ae-LICENSE-APACHE +201 -0
- package/licenses/cargo/a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5-LICENSE-APACHE +201 -0
- package/licenses/cargo/aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf-LICENSE-APACHE +201 -0
- package/licenses/cargo/ae9baa7beea910273c2f384c2a6b721fb7bd02bda3436074a1072e4ee689f985-LICENSE-MIT +25 -0
- package/licenses/cargo/aed7b1758e35afa0cd0fde059d61950747ca11cd0e5e169cb21c11608daed772-LICENSE +21 -0
- package/licenses/cargo/b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744-LICENSE +19 -0
- package/licenses/cargo/b29f8b01452350c20dd1af16ef83b598fea3053578ccc1c7a0ef40e57be2620f-LICENSE +12 -0
- package/licenses/cargo/b4eb00df6e2a4d22518fcaa6a2b4646f249b3a3c9814509b22bd2091f1392ff1-LICENSE-MIT +27 -0
- package/licenses/cargo/b7e650f3fce5c53249d1cdc608b54df156a97edd636cf9d23498d0cfe7aec63e-LICENSE-MIT +19 -0
- package/licenses/cargo/bccaa8b6c09f94e81f06696e179dbe058464bbdfbc823b6d49cada1d71e84ac3-LICENSE-MIT +5 -0
- package/licenses/cargo/beb8e42e9d6b4284e03304d05a81a0755200a965fc8d0a5e0aea1e84cf805d6e-LICENSE +23 -0
- package/licenses/cargo/c09aae9d3c77b531f56351a9947bc7446511d6b025b3255312d3e3442a9a7583-LICENSE +21 -0
- package/licenses/cargo/c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4-LICENSE +201 -0
- package/licenses/cargo/c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566-LICENSE-BOOST +23 -0
- package/licenses/cargo/cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30-LICENSE-APACHE +202 -0
- package/licenses/cargo/d1fc1bc0d155df60b2e7705b6b2ae02a05c96f948e1cec6e2fb86360b09f346b-LICENSE +29 -0
- package/licenses/cargo/d5c22aa3118d240e877ad41c5d9fa232f9c77d757d4aac0c2f943afc0a95e0ef-LICENSE-MIT +25 -0
- package/licenses/cargo/db11fec9946737df39ca3898d9cd8c10ec6f6c3a884a6802b0ad0b81b4e8f23a-LICENSE +1 -0
- package/licenses/cargo/e36d55837170195cdf934aa6a48c0ad6efba1bde3f5b4a1b9259c171d5aeb647-LICENSE-APACHE +201 -0
- package/licenses/cargo/ea084a2373ebc1f0902c09266e7bf25a05ab3814c1805bb017ffa7308f90c061-LICENSE-MIT +21 -0
- package/licenses/cargo/ec353d4fecf7963b4c054384557e5dbc3c7a717997eb4a3815b315721a6aa75a-LICENSE-MIT +18 -0
- package/licenses/cargo/f71fd5946d6674af304514dc7b3b4272aa9117052dd347fb3a9dc9679f33d95f-LICENSE-MIT +26 -0
- package/licenses/cargo/f7db81051789b729fea528a63ec4c938fdcb93d9d61d97dc8cc2e9df6d47f2a1-LICENSE-UNICODE +39 -0
- package/licenses/cargo/fe5c9498374de7953275f83f35565b289f377ceab4a28d04c7da87723e02a372-LICENSE +20 -0
- package/licenses/cargo/ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2-LICENSE-MIT +25 -0
- package/licenses/components.json +5897 -0
- package/licenses/fallback/MIT.txt +21 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/backtrace/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/backtrace/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/compiler-builtins/LICENSE.txt +275 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/compiler-builtins/libm/LICENSE.txt +258 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/portable-simd/LICENSE-APACHE +202 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/portable-simd/LICENSE-MIT +19 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/portable-simd/crates/core_simd/LICENSE-APACHE +202 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/portable-simd/crates/core_simd/LICENSE-MIT +19 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/stdarch/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/stdarch/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/stdarch/crates/core_arch/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/stdarch/crates/core_arch/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/stdarch/crates/intrinsic-test/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/stdarch/crates/intrinsic-test/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/addr2line-0.27.1/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/addr2line-0.27.1/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/adler2-2.0.1/LICENSE-0BSD +12 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/adler2-2.0.1/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/adler2-2.0.1/LICENSE-MIT +23 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/cc-1.2.0/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/cc-1.2.0/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/cfg-if-1.0.4/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/cfg-if-1.0.4/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/dlmalloc-0.2.14/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/dlmalloc-0.2.14/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/foldhash-0.2.0/LICENSE +19 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/getopts-0.2.24/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/getopts-0.2.24/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/gimli-0.34.0/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/gimli-0.34.0/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/hashbrown-0.17.1/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/hashbrown-0.17.1/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/hermit-abi-0.5.2/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/hermit-abi-0.5.2/LICENSE-MIT +23 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/libc-0.2.189/LICENSE-APACHE +176 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/libc-0.2.189/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/memchr-2.8.3/COPYING +3 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/memchr-2.8.3/LICENSE-MIT +21 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/memchr-2.8.3/UNLICENSE +24 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/miniz_oxide-0.9.1/LICENSE +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/miniz_oxide-0.9.1/LICENSE-APACHE.md +177 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/miniz_oxide-0.9.1/LICENSE-MIT.md +24 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/miniz_oxide-0.9.1/LICENSE-ZLIB.md +14 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/moto-rt-0.16.3/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/moto-rt-0.16.3/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/object-0.39.1/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/object-0.39.1/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/r-efi-5.3.0/AUTHORS +74 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/r-efi-alloc-2.1.0/AUTHORS +62 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rand-0.9.5/COPYRIGHT +12 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rand-0.9.5/LICENSE-APACHE +176 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rand-0.9.5/LICENSE-MIT +26 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rand_core-0.9.5/COPYRIGHT +12 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rand_core-0.9.5/LICENSE-APACHE +187 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rand_core-0.9.5/LICENSE-MIT +26 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rand_xorshift-0.4.0/COPYRIGHT +12 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rand_xorshift-0.4.0/LICENSE-APACHE +176 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rand_xorshift-0.4.0/LICENSE-MIT +26 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rustc-demangle-0.1.28/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rustc-demangle-0.1.28/LICENSE-MIT +25 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rustc-literal-escaper-0.0.8/LICENSE-APACHE +176 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/rustc-literal-escaper-0.0.8/LICENSE-MIT +23 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/shlex-1.3.0/LICENSE-APACHE +13 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/shlex-1.3.0/LICENSE-MIT +21 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/unwinding-0.2.10/LICENSE-APACHE +176 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/unwinding-0.2.10/LICENSE-MIT +23 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/wasip2-1.0.4+wasi-0.2.12/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/wasip2-1.0.4+wasi-0.2.12/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/wasip2-1.0.4+wasi-0.2.12/LICENSE-MIT +23 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/wasip3-0.7.1+wasi-0.3.0/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/wasip3-0.7.1+wasi-0.3.0/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/wasip3-0.7.1+wasi-0.3.0/LICENSE-MIT +23 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/wit-bindgen-0.57.1/LICENSE-APACHE +201 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/wit-bindgen-0.57.1/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
- package/licenses/mixed-tools/rustPrefix/lib/rustlib/src/rust/library/vendor/wit-bindgen-0.57.1/LICENSE-MIT +23 -0
- package/licenses/mixed-tools/rustPrefix/share/doc/rust/COPYRIGHT-library.html +29378 -0
- package/licenses/mixed-tools/sdkPrefix/emscripten/AUTHORS +607 -0
- package/licenses/mixed-tools/sdkPrefix/emscripten/LICENSE +102 -0
- package/licenses/mixed-tools/sdkPrefix/emscripten/system/include/SDL/COPYING +24 -0
- package/licenses/mixed-tools/sdkPrefix/emscripten/system/lib/compiler-rt/LICENSE.TXT +311 -0
- package/licenses/mixed-tools/sdkPrefix/emscripten/system/lib/libc/musl/COPYRIGHT +193 -0
- package/licenses/mixed-tools/sdkPrefix/emscripten/system/lib/libcxx/LICENSE.TXT +311 -0
- package/licenses/mixed-tools/sdkPrefix/emscripten/system/lib/libcxxabi/LICENSE.TXT +311 -0
- package/licenses/mixed-tools/sdkPrefix/emscripten/system/lib/libunwind/LICENSE.TXT +311 -0
- package/licenses/mixed-tools/sdkPrefix/emscripten/system/lib/llvm-libc/LICENSE.TXT +278 -0
- package/licenses/mixed-tools/sdkPrefix/emscripten/system/lib/mimalloc/LICENSE +21 -0
- package/licenses/mixed-tools/sdkPrefix/emscripten/system/lib/openmp/LICENSE.TXT +361 -0
- package/licenses/mixed-tools/sdkPrefix/emscripten/system/lib/openmp/src/thirdparty/ittnotify/LICENSE.txt +8 -0
- package/package.json +83 -4
- package/trust/README.md +42 -0
- package/trust/canonicalize.mjs +37 -0
- package/trust/evaluate-worker.mjs +164 -0
- package/trust/index.d.mts +112 -0
- package/trust/run.mjs +850 -0
- package/trust/verify.py +470 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/* oxlint-disable @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return, @typescript-eslint/use-unknown-in-catch-callback-variable -- Approved JSON and native byte responses cross an intentionally untyped process boundary. */
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { createHash } from 'node:crypto';
|
|
4
|
+
import { readFileSync, writeFileSync } from 'node:fs';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { pathToFileURL } from 'node:url';
|
|
7
|
+
|
|
8
|
+
const sha256 = (bytes) => createHash('sha256').update(bytes).digest('hex');
|
|
9
|
+
const decode = (bytes) => JSON.parse(Buffer.from(bytes).toString('utf8'));
|
|
10
|
+
|
|
11
|
+
const exactKeys = (value, keys, label) => {
|
|
12
|
+
assert.ok(value && typeof value === 'object' && !Array.isArray(value), `${label} must be an object`);
|
|
13
|
+
assert.deepEqual(Object.keys(value).toSorted(), keys.toSorted(), `${label} fields`);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const main = async () => {
|
|
17
|
+
const config = JSON.parse(readFileSync(process.argv[2], 'utf8'));
|
|
18
|
+
exactKeys(config, ['planPath', 'productRoot', 'subjects'], 'worker config');
|
|
19
|
+
const planBytes = readFileSync(config.planPath);
|
|
20
|
+
const plan = JSON.parse(planBytes);
|
|
21
|
+
const modulePath = join(config.productRoot, 'node_modules/geospec-engine/dist/node.mjs');
|
|
22
|
+
const { canonicalize, Engine } = await import(pathToFileURL(modulePath).href);
|
|
23
|
+
assert.deepEqual(Buffer.from(canonicalize(planBytes)), planBytes, 'approved plan must use geospec-jcs-v1');
|
|
24
|
+
|
|
25
|
+
const engine = new Engine();
|
|
26
|
+
const canonical = (value) => Buffer.from(canonicalize(Buffer.from(JSON.stringify(value))));
|
|
27
|
+
const initializationRequest = canonical({
|
|
28
|
+
canonicalProfile: plan.authority.canonicalProfile,
|
|
29
|
+
method: 'initialize',
|
|
30
|
+
protocolVersion: plan.authority.protocolVersion,
|
|
31
|
+
registryVersion: plan.authority.registryVersion,
|
|
32
|
+
requestId: 'trusted-evaluator-initialize',
|
|
33
|
+
});
|
|
34
|
+
const initializationBytes = Buffer.from(engine.processRequest(initializationRequest));
|
|
35
|
+
const initialization = decode(initializationBytes);
|
|
36
|
+
const admitted = [];
|
|
37
|
+
|
|
38
|
+
try {
|
|
39
|
+
for (const subject of plan.subjects) {
|
|
40
|
+
const supplied = config.subjects.find((value) => value.slot === subject.slot);
|
|
41
|
+
assert.ok(supplied, `missing subject ${subject.slot}`);
|
|
42
|
+
const primary = readFileSync(supplied.primaryPath);
|
|
43
|
+
assert.equal(primary.byteLength, subject.primary.byteLength, `${subject.slot} primary length`);
|
|
44
|
+
assert.equal(sha256(primary), subject.primary.sha256, `${subject.slot} primary digest`);
|
|
45
|
+
const resources = subject.resources.map((resource) => {
|
|
46
|
+
const path = supplied.resourcePaths.find((value) => value.name === resource.name)?.path;
|
|
47
|
+
assert.ok(path, `missing resource ${subject.slot}/${resource.name}`);
|
|
48
|
+
const bytes = readFileSync(path);
|
|
49
|
+
assert.equal(bytes.byteLength, resource.byteLength, `${subject.slot}/${resource.name} length`);
|
|
50
|
+
assert.equal(sha256(bytes), resource.sha256, `${subject.slot}/${resource.name} digest`);
|
|
51
|
+
return bytes;
|
|
52
|
+
});
|
|
53
|
+
const ingestRequest = canonical(subject.ingestRequest);
|
|
54
|
+
assert.equal(sha256(ingestRequest), subject.ingestRequestSha256, `${subject.slot} ingest request`);
|
|
55
|
+
const admissionBytes = Buffer.from(engine.ingestSubject(ingestRequest, primary, resources));
|
|
56
|
+
const admission = decode(admissionBytes);
|
|
57
|
+
const actualIdentity = admission.result.subject[subject.identityField];
|
|
58
|
+
assert.equal(actualIdentity, subject.expectedIdentity, `${subject.slot} admitted identity`);
|
|
59
|
+
const handleRequest = canonical({
|
|
60
|
+
canonicalProfile: plan.authority.canonicalProfile,
|
|
61
|
+
method: 'subjectHandle',
|
|
62
|
+
protocolVersion: plan.authority.protocolVersion,
|
|
63
|
+
registryVersion: plan.authority.registryVersion,
|
|
64
|
+
requestId: `trusted-evaluator-handle:${subject.slot}`,
|
|
65
|
+
[subject.identityField]: actualIdentity,
|
|
66
|
+
});
|
|
67
|
+
const handleBytes = Buffer.from(engine.subjectHandle(handleRequest));
|
|
68
|
+
admitted.push({
|
|
69
|
+
admission: { base64: admissionBytes.toString('base64'), sha256: sha256(admissionBytes) },
|
|
70
|
+
actualIdentity,
|
|
71
|
+
handle: decode(handleBytes).result.subjectHandle,
|
|
72
|
+
identityField: subject.identityField,
|
|
73
|
+
ingestRequest: { base64: ingestRequest.toString('base64'), sha256: sha256(ingestRequest) },
|
|
74
|
+
slot: subject.slot,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const claims = plan.claims.map(({ claim }) => claim);
|
|
79
|
+
const protocolSubjects = plan.subjects.map((subject) => ({
|
|
80
|
+
slot: subject.slot,
|
|
81
|
+
[subject.identityField]: subject.expectedIdentity,
|
|
82
|
+
}));
|
|
83
|
+
const request = canonical({
|
|
84
|
+
canonicalProfile: plan.authority.canonicalProfile,
|
|
85
|
+
method: 'submitClaims',
|
|
86
|
+
plan: { claims, subjects: protocolSubjects },
|
|
87
|
+
protocolVersion: plan.authority.protocolVersion,
|
|
88
|
+
registryVersion: plan.authority.registryVersion,
|
|
89
|
+
requestId: 'trusted-evaluator-submit',
|
|
90
|
+
});
|
|
91
|
+
const canonicalPlan = Buffer.from(engine.canonicalPlan(request));
|
|
92
|
+
const canonicalResult = Buffer.from(engine.evaluatePlan(canonicalPlan));
|
|
93
|
+
const planEnvelope = decode(canonicalPlan);
|
|
94
|
+
const resultEnvelope = decode(canonicalResult);
|
|
95
|
+
const expectedIds = claims.map((claim) => claim.claimId);
|
|
96
|
+
assert.deepEqual(
|
|
97
|
+
planEnvelope.plan.claims.map((claim) => claim.claimId),
|
|
98
|
+
expectedIds,
|
|
99
|
+
'canonical claim order',
|
|
100
|
+
);
|
|
101
|
+
assert.deepEqual(
|
|
102
|
+
resultEnvelope.results.map((result) => result.claimId),
|
|
103
|
+
expectedIds,
|
|
104
|
+
'result claim order',
|
|
105
|
+
);
|
|
106
|
+
assert.equal(resultEnvelope.results.length, claims.length, 'complete result count');
|
|
107
|
+
const rows = resultEnvelope.results.map((result, ordinal) => {
|
|
108
|
+
assert.ok(['passed', 'failed', 'refused'].includes(result.status));
|
|
109
|
+
const claimBytes = canonical(planEnvelope.plan.claims[ordinal]);
|
|
110
|
+
const resultBytes = canonical(result);
|
|
111
|
+
assert.equal(sha256(claimBytes), plan.claims[ordinal].canonicalClaimSha256);
|
|
112
|
+
return {
|
|
113
|
+
canonicalClaim: claimBytes.toString('base64'),
|
|
114
|
+
canonicalClaimSha256: sha256(claimBytes),
|
|
115
|
+
canonicalResult: resultBytes.toString('base64'),
|
|
116
|
+
canonicalResultSha256: sha256(resultBytes),
|
|
117
|
+
claimId: result.claimId,
|
|
118
|
+
ordinal,
|
|
119
|
+
polarity: planEnvelope.plan.claims[ordinal].polarity,
|
|
120
|
+
status: result.status,
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
const record = {
|
|
124
|
+
cache: { mode: 'disabled', persistent: false },
|
|
125
|
+
canonicalPlan: { base64: canonicalPlan.toString('base64'), sha256: sha256(canonicalPlan) },
|
|
126
|
+
canonicalResult: { base64: canonicalResult.toString('base64'), sha256: sha256(canonicalResult) },
|
|
127
|
+
complete: true,
|
|
128
|
+
initialization: {
|
|
129
|
+
base64: initializationBytes.toString('base64'),
|
|
130
|
+
canonicalProfile: initialization.result.canonicalProfile,
|
|
131
|
+
numericProfile: initialization.result.numericProfile,
|
|
132
|
+
protocolVersion: initialization.result.protocolVersion,
|
|
133
|
+
registryVersion: initialization.result.registryVersion,
|
|
134
|
+
sha256: sha256(initializationBytes),
|
|
135
|
+
},
|
|
136
|
+
rows,
|
|
137
|
+
schema: 'geospec-trusted-native-evaluation-v2',
|
|
138
|
+
subjects: admitted.map(({ handle: _handle, ...entry }) => entry),
|
|
139
|
+
};
|
|
140
|
+
writeFileSync(1, canonical(record));
|
|
141
|
+
} finally {
|
|
142
|
+
for (const subject of admitted.toReversed()) {
|
|
143
|
+
const releaseRequest = canonical({
|
|
144
|
+
canonicalProfile: plan.authority.canonicalProfile,
|
|
145
|
+
method: 'releaseSubject',
|
|
146
|
+
protocolVersion: plan.authority.protocolVersion,
|
|
147
|
+
registryVersion: plan.authority.registryVersion,
|
|
148
|
+
requestId: `trusted-evaluator-release:${subject.slot}`,
|
|
149
|
+
subjectHandle: subject.handle,
|
|
150
|
+
});
|
|
151
|
+
engine.releaseSubject(releaseRequest);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
try {
|
|
157
|
+
await main();
|
|
158
|
+
} catch (error) {
|
|
159
|
+
writeFileSync(
|
|
160
|
+
2,
|
|
161
|
+
`${JSON.stringify({ code: 'EVALUATION_INFRASTRUCTURE', message: error.message, name: error.name })}\n`,
|
|
162
|
+
);
|
|
163
|
+
process.exitCode = 2;
|
|
164
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/** Exact digest and retained name of one approved subject artifact. @public */
|
|
2
|
+
export type TrustedSubjectDigest = {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly sha256: string;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
/** Inputs that derive the identities an evaluation authority must pin. @public */
|
|
8
|
+
export type DescribeTrustedInputsOptions = {
|
|
9
|
+
readonly planPath: string;
|
|
10
|
+
readonly productRoot: string;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/** Exact plan, product, runner, subject, claim, and profile identities derived before evaluation. @public */
|
|
14
|
+
export type TrustedInputDescription = {
|
|
15
|
+
readonly approvedPlanSha256: string;
|
|
16
|
+
readonly canonicalProfile: string;
|
|
17
|
+
readonly engineManifestSha256: string;
|
|
18
|
+
readonly expectedClaimIds: readonly string[];
|
|
19
|
+
readonly expectedSubjects: readonly TrustedSubjectDigest[];
|
|
20
|
+
readonly protocolVersion: number;
|
|
21
|
+
readonly registryVersion: number;
|
|
22
|
+
readonly requirementRevision: string;
|
|
23
|
+
readonly requireFreshChallenge: boolean;
|
|
24
|
+
readonly runnerManifestSha256: string;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/** Caller-owned signer invoked with the exact DSSE PAE bytes after complete-result validation. @public */
|
|
28
|
+
export type TrustedEvaluationSigner = {
|
|
29
|
+
readonly sign: (payload: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>> | Uint8Array<ArrayBuffer>;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/** Independently supplied identities and limits accepted by the evaluator and offline verifier. @public */
|
|
33
|
+
export type TrustedVerifierPolicy = TrustedInputDescription & {
|
|
34
|
+
readonly cacheMode: 'disabled';
|
|
35
|
+
readonly evaluatorId: string;
|
|
36
|
+
/** Expected execution mode; the current runner enforces this literal. */
|
|
37
|
+
readonly evaluatorMode: 'signed-local-record';
|
|
38
|
+
readonly expectedJobChallenge: string;
|
|
39
|
+
/** No OS isolation is enforced by the current runner. */
|
|
40
|
+
readonly isolationClass: 'none';
|
|
41
|
+
readonly maxArtifactBytes: 67_108_864;
|
|
42
|
+
readonly maxEnvelopeBytes: 4_194_304;
|
|
43
|
+
readonly numericProfile: string;
|
|
44
|
+
readonly payloadType: 'application/vnd.in-toto+json';
|
|
45
|
+
readonly predicateType: 'https://taucad.dev/attestation/geospec-trusted-evaluation/v3';
|
|
46
|
+
readonly publicKeyPem: string;
|
|
47
|
+
readonly schema: 'geospec-trusted-verifier-policy-v3';
|
|
48
|
+
readonly trustedKeyId: string;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
/** Inputs for one approved signed native evaluation. @public */
|
|
52
|
+
export type TrustedEvaluationOptions = {
|
|
53
|
+
readonly jobChallenge: string;
|
|
54
|
+
readonly outputDirectory: string;
|
|
55
|
+
readonly planPath: string;
|
|
56
|
+
readonly productRoot: string;
|
|
57
|
+
readonly signer: TrustedEvaluationSigner;
|
|
58
|
+
readonly verificationPolicy: TrustedVerifierPolicy;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/** Statuses that may appear in a complete signed evaluation. @public */
|
|
62
|
+
export type TrustedClaimStatus = 'failed' | 'passed' | 'refused';
|
|
63
|
+
|
|
64
|
+
/** One observed native result in approved claim order. @public */
|
|
65
|
+
export type TrustedClaimInventory = {
|
|
66
|
+
readonly canonicalClaimSha256: string;
|
|
67
|
+
readonly canonicalResultSha256: string;
|
|
68
|
+
readonly claimId: string;
|
|
69
|
+
readonly ordinal: number;
|
|
70
|
+
readonly polarity: 'negative' | 'positive';
|
|
71
|
+
readonly status: TrustedClaimStatus;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
/** Result returned after writing and signing a complete evaluation record. @public */
|
|
75
|
+
export type TrustedEvaluationResult = {
|
|
76
|
+
readonly artifacts: number;
|
|
77
|
+
readonly cacheMode: 'disabled';
|
|
78
|
+
readonly claims: readonly TrustedClaimInventory[];
|
|
79
|
+
readonly envelopeSha256: string;
|
|
80
|
+
readonly output: string;
|
|
81
|
+
readonly scope: 'authenticated-complete-record-not-independent-geometry-proof';
|
|
82
|
+
readonly statementSha256: string;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/** Declarative file input accepted by the trusted-evaluation CLI. @public */
|
|
86
|
+
export type TrustedEvaluationRequest = {
|
|
87
|
+
readonly jobChallenge: string;
|
|
88
|
+
readonly outputDirectory: string;
|
|
89
|
+
readonly planPath: string;
|
|
90
|
+
readonly privateKeyPath: string;
|
|
91
|
+
readonly productRoot: string;
|
|
92
|
+
readonly schema: 'geospec-trusted-evaluation-request-v1';
|
|
93
|
+
readonly verificationPolicyPath: string;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Derive exact identities for an authority-supplied verification policy.
|
|
98
|
+
*
|
|
99
|
+
* @param options - Installed product and immutable approved-plan paths.
|
|
100
|
+
* @returns Exact identities observed before evaluation.
|
|
101
|
+
* @public
|
|
102
|
+
*/
|
|
103
|
+
export declare const describeTrustedInputs: (options: DescribeTrustedInputsOptions) => TrustedInputDescription;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Evaluate one approved declarative plan and sign its complete result.
|
|
107
|
+
*
|
|
108
|
+
* @param options - Product, plan, output, challenge, signer, and pinned policy.
|
|
109
|
+
* @returns The signed-record location, hashes, and observed claim inventory.
|
|
110
|
+
* @public
|
|
111
|
+
*/
|
|
112
|
+
export declare const evaluateTrustedPlan: (options: TrustedEvaluationOptions) => Promise<TrustedEvaluationResult>;
|