{"_id":"@ar-js-org/artoolkit5-constants","_rev":"5-5731131814c965be68eed14aa0f8f384","name":"@ar-js-org/artoolkit5-constants","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@ar-js-org/artoolkit5-constants","version":"0.1.0","keywords":["artoolkit","artoolkit5","augmented-reality","ar","webar","webassembly","wasm","emscripten","constants","webarkit"],"author":{"url":"https://github.com/kalwalt","name":"Walter Perdan"},"license":"GPL-3.0","_id":"@ar-js-org/artoolkit5-constants@0.1.0","maintainers":[{"name":"kalwalt","email":"info@kalwaltart.it"},{"name":"nickw1","email":"nickw4426@gmail.com"},{"name":"nicolocarpignoli","email":"nicolocarpignoli@gmail.com"}],"homepage":"https://github.com/AR-js-org/artoolkit5-constants#readme","bugs":{"url":"https://github.com/AR-js-org/artoolkit5-constants/issues"},"dist":{"shasum":"201b09f0faa137a8e529ab91e5863531e5476aae","tarball":"https://registry.npmjs.org/@ar-js-org/artoolkit5-constants/-/artoolkit5-constants-0.1.0.tgz","fileCount":11,"integrity":"sha512-fDzBsQmXFxa0BWOX4FlQhCdDl4r4BNMXti+opA7SZG4Yw5FkjKMRWzSCyKOCJ8QxPYO3Rf++KdWgUEBMN/gr8Q==","signatures":[{"sig":"MEQCIGAgZJY9YH8ZuvIOCrt1tS9lUizWBBQq8/iiF3SXZweLAiBbLWXbDK8ORJjySAPufpHuyzeLY/LWuocZaBOg02ASvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48983},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"f10fe01cddc0fcbf90af02a1477d03364a3c4125","scripts":{"build":"npm run configure && npm run build:extractor && npm run generate && npm run build:ts","clean":"rimraf ./build ./dist","build:ts":"tsc","generate":"node ./tools/gen_constants.js ./build/constants_extractor.js ./src/generated/artoolkit_constants.ts","configure":"node ./tools/configure.js","prepublishOnly":"npm run build","build:extractor":"cmake --build build --target constants_extractor"},"_npmUser":{"name":"kalwalt","email":"info@kalwaltart.it"},"repository":{"url":"git+https://github.com/AR-js-org/artoolkit5-constants.git","type":"git"},"_npmVersion":"10.9.4","description":"Generator for ARToolKit5 constants via Embind extraction","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.3","typescript":"^6.0.3","@types/node":"^25.5.0","@types/emscripten":"^1.41.5"},"_npmOperationalInternal":{"tmp":"tmp/artoolkit5-constants_0.1.0_1780763267551_0.7827986099673616","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ar-js-org/artoolkit5-constants","version":"0.2.0","keywords":["artoolkit","artoolkit5","augmented-reality","ar","webar","webassembly","wasm","emscripten","constants","webarkit"],"author":{"url":"https://github.com/kalwalt","name":"Walter Perdan"},"license":"GPL-3.0","_id":"@ar-js-org/artoolkit5-constants@0.2.0","maintainers":[{"name":"kalwalt","email":"info@kalwaltart.it"},{"name":"nickw1","email":"nickw4426@gmail.com"},{"name":"nicolocarpignoli","email":"nicolocarpignoli@gmail.com"}],"homepage":"https://github.com/AR-js-org/artoolkit5-constants#readme","bugs":{"url":"https://github.com/AR-js-org/artoolkit5-constants/issues"},"dist":{"shasum":"037e75fe2e654647959369c30362b2e4d30b0d09","tarball":"https://registry.npmjs.org/@ar-js-org/artoolkit5-constants/-/artoolkit5-constants-0.2.0.tgz","fileCount":11,"integrity":"sha512-syJQC5gv5CBNzkXWmNBNz2/dPJQNTGdCgZBUL/AuzJqAJutUG2WDiUC8QY48Jd8QtxPIqDePAWF3/+QVu3C4oQ==","signatures":[{"sig":"MEYCIQCIcA/XWtGW+8jWS2ZgYFUUnifj6/tF/+IDCnusrdasCQIhAOCcgvY5a+Du6kWlxtRUI72rCET5XIBPOQftgOVaq1Fz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52172},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"d3cc2d975886353fb46afdc80590b0889f786fbf","scripts":{"build":"npm run configure && npm run build:extractor && npm run generate && npm run build:ts","clean":"rimraf ./build ./dist","build:ts":"tsc","generate":"node ./tools/gen_constants.js ./build/constants_extractor.js ./src/generated/artoolkit_constants.ts","configure":"node ./tools/configure.js","prepublishOnly":"npm run build","build:extractor":"cmake --build build --target constants_extractor"},"_npmUser":{"name":"kalwalt","email":"info@kalwaltart.it"},"repository":{"url":"git+https://github.com/AR-js-org/artoolkit5-constants.git","type":"git"},"_npmVersion":"10.9.4","description":"Generator for ARToolKit5 constants via Embind extraction","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.3","typescript":"^6.0.3","@types/node":"^25.5.0","@types/emscripten":"^1.41.5"},"_npmOperationalInternal":{"tmp":"tmp/artoolkit5-constants_0.2.0_1786636024408_0.8537910439507697","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ar-js-org/artoolkit5-constants","version":"0.3.0","keywords":["artoolkit","artoolkit5","augmented-reality","ar","webar","webassembly","wasm","emscripten","constants","webarkit"],"author":{"url":"https://github.com/kalwalt","name":"Walter Perdan"},"license":"GPL-3.0","_id":"@ar-js-org/artoolkit5-constants@0.3.0","maintainers":[{"name":"kalwalt","email":"info@kalwaltart.it"},{"name":"nickw1","email":"nickw4426@gmail.com"},{"name":"nicolocarpignoli","email":"nicolocarpignoli@gmail.com"}],"homepage":"https://github.com/AR-js-org/artoolkit5-constants#readme","bugs":{"url":"https://github.com/AR-js-org/artoolkit5-constants/issues"},"dist":{"shasum":"e53aa0adee1079ebec47dba6cf480a93ee333980","tarball":"https://registry.npmjs.org/@ar-js-org/artoolkit5-constants/-/artoolkit5-constants-0.3.0.tgz","fileCount":11,"integrity":"sha512-u68Wg6BAjfI+g/tHT43fUYIUemfx8v4Lvj8L1V7U9jjKFovfN7K0njlbQglYu+iXPmPy6mbuwH8tqXIVy0tRog==","signatures":[{"sig":"MEUCIQCDm9M+xhZU39wnoZRZ9lh6NvSXp/smKtgRDdmBE27I+gIgBaI2Y+5hQeZFhTC2i+J0BoII3T/wofXkcueJ2qRiU9Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56291},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"e5ee7baa91b97a15a042a32361d65edb8e1fa8f5","scripts":{"build":"npm run configure && npm run build:extractor && npm run generate && npm run build:ts","clean":"rimraf ./build ./dist","build:ts":"tsc","generate":"node ./tools/gen_constants.js ./build/constants_extractor.js ./src/generated/artoolkit_constants.ts","configure":"node ./tools/configure.js","build:docker":"node ./tools/docker-build.js","prepublishOnly":"npm run build","build:extractor":"cmake --build build --target constants_extractor"},"_npmUser":{"name":"kalwalt","email":"info@kalwaltart.it"},"repository":{"url":"git+https://github.com/AR-js-org/artoolkit5-constants.git","type":"git"},"_npmVersion":"10.9.4","description":"Generator for ARToolKit5 constants via Embind extraction","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.3","typescript":"^6.0.3","@types/node":"^25.5.0","@types/emscripten":"^1.41.5"},"_npmOperationalInternal":{"tmp":"tmp/artoolkit5-constants_0.3.0_1788193843927_0.3914936914378051","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@ar-js-org/artoolkit5-constants","version":"0.3.1","keywords":["artoolkit","artoolkit5","augmented-reality","ar","webar","webassembly","wasm","emscripten","constants","webarkit"],"author":{"url":"https://github.com/kalwalt","name":"Walter Perdan"},"license":"MIT","_id":"@ar-js-org/artoolkit5-constants@0.3.1","maintainers":[{"name":"kalwalt","email":"info@kalwaltart.it"},{"name":"nickw1","email":"nickw4426@gmail.com"},{"name":"nicolocarpignoli","email":"nicolocarpignoli@gmail.com"}],"homepage":"https://github.com/AR-js-org/artoolkit5-constants#readme","bugs":{"url":"https://github.com/AR-js-org/artoolkit5-constants/issues"},"dist":{"shasum":"386e10bd4d8c8a6481a7f5977ee8658e4cf0b26e","tarball":"https://registry.npmjs.org/@ar-js-org/artoolkit5-constants/-/artoolkit5-constants-0.3.1.tgz","fileCount":11,"integrity":"sha512-Ckg3MIP63FeGuFqiw21V4A7sc+1wL2vX9idZxPKR3PW/u4O4aPCsHENH3c7kNXJ7aPEf3Pp2bVEpFSWbcu6tZg==","signatures":[{"sig":"MEUCIAINMcyAKk4Qb2b7sJ0LL8ASIXBJ97AqcPQ1/pBspuXkAiEA5mb5Bn3aQWOKSmyOYVmF5yWhs2O9h/wmkf192kTZB9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDJmkvezk/iSvYOhP3nkTToa0x1b0O2mzokARRs6vDJ5QIgbMiak1lv2vS7TdLVnhIBJN5scV5eCjlsv0qCNpDlU30=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22361},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"5bf33c21db22d13600a8b547305ce3fbb63b747c","scripts":{"build":"npm run configure && npm run build:extractor && npm run generate && npm run build:ts","clean":"rimraf ./build ./dist","build:ts":"tsc","generate":"node ./tools/gen_constants.js ./build/constants_extractor.js ./src/generated/artoolkit_constants.ts","configure":"node ./tools/configure.js","build:docker":"node ./tools/docker-build.js","prepublishOnly":"npm run build","build:extractor":"cmake --build build --target constants_extractor"},"_npmUser":{"name":"kalwalt","email":"info@kalwaltart.it"},"repository":{"url":"git+https://github.com/AR-js-org/artoolkit5-constants.git","type":"git"},"_npmVersion":"11.19.0","description":"Generator for ARToolKit5 constants via Embind extraction","directories":{},"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.3","typescript":"^6.0.3","@types/node":"^25.5.0","@types/emscripten":"^1.41.5"},"_npmOperationalInternal":{"tmp":"tmp/artoolkit5-constants_0.3.1_1789748017823_0.11758838981081099","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@ar-js-org/artoolkit5-constants@0.4.0","bugs":{"url":"https://github.com/AR-js-org/artoolkit5-constants/issues"},"dist":{"shasum":"c005b3407c7ac4debf38154437fc73826c887d48","tarball":"https://registry.npmjs.org/@ar-js-org/artoolkit5-constants/-/artoolkit5-constants-0.4.0.tgz","fileCount":15,"integrity":"sha512-ceFUAASWlMPTI0byP0hcANHnnOxCfDQmJMnFpFo0Dvc7MeFq7OhTiCmZAkn49PoIEm92sVSFS6t6gYl+pX89kQ==","signatures":[{"sig":"MEYCIQCETjuGl8JyH9IIYmToqBL1jsNwTQ5p8Mo+1ZzF2FZhjAIhAMOdo8bif1gaOiz0DpxAZ/T/VY6CrrFcSssqxbFepsCW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID9TTA1Z+NE3bcgzPoGKWHP0teVxeQK4gSyIYpsBIYQjAiB5I2SqjLPJzgDZTikRyCBIGQUFryB2fUpEGWMxsfFVJg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ar-js-org%2fartoolkit5-constants@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23367},"main":"./dist/index.js","name":"@ar-js-org/artoolkit5-constants","type":"module","types":"./dist/index.d.ts","author":{"url":"https://github.com/kalwalt","name":"Walter Perdan"},"module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"2350a7dc20cc67f4ea3592ef78cfe161dcd10bf2","license":"MIT","scripts":{"build":"npm run configure && npm run build:extractor && npm run generate && npm run build:ts","clean":"rimraf ./build ./dist","build:ts":"tsc","generate":"npm run generate:constants && npm run generate:version","configure":"node ./tools/configure.js","build:docker":"node ./tools/docker-build.js","build:version":"npm run generate:version && tsc -p tsconfig.version.json","build:extractor":"cmake --build build --target constants_extractor","generate:version":"node ./tools/gen_version.js","generate:constants":"node ./tools/gen_constants.js ./build/constants_extractor.js ./src/generated/artoolkit_constants.ts"},"version":"0.4.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"d38db1aa-3b0f-4f5b-9d2c-bc1e01c70989"}},"homepage":"https://github.com/AR-js-org/artoolkit5-constants#readme","keywords":["artoolkit","artoolkit5","augmented-reality","ar","webar","webassembly","wasm","emscripten","constants","webarkit"],"repository":{"url":"git+https://github.com/AR-js-org/artoolkit5-constants.git","type":"git"},"_npmVersion":"11.19.0","description":"Generator for ARToolKit5 constants via Embind extraction","directories":{},"maintainers":[{"name":"kalwalt","email":"info@kalwaltart.it"},{"name":"nickw1","email":"nickw4426@gmail.com"},{"name":"nicolocarpignoli","email":"nicolocarpignoli@gmail.com"}],"_nodeVersion":"24.21.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.3","typescript":"^6.0.3","@types/node":"^25.5.0","@types/emscripten":"^1.41.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/artoolkit5-constants_0.4.0_1791039114742_0.17047434754186286"}}},"time":{"created":"2026-06-06T16:27:47.399Z","modified":"2026-10-03T14:51:55.193Z","0.1.0":"2026-06-06T16:27:47.685Z","0.2.0":"2026-08-13T15:47:04.617Z","0.3.0":"2026-08-31T16:30:44.072Z","0.3.1":"2026-09-18T16:13:37.898Z","0.4.0":"2026-10-03T14:51:54.850Z"},"bugs":{"url":"https://github.com/AR-js-org/artoolkit5-constants/issues"},"author":{"url":"https://github.com/kalwalt","name":"Walter Perdan"},"license":"MIT","homepage":"https://github.com/AR-js-org/artoolkit5-constants#readme","keywords":["artoolkit","artoolkit5","augmented-reality","ar","webar","webassembly","wasm","emscripten","constants","webarkit"],"repository":{"url":"git+https://github.com/AR-js-org/artoolkit5-constants.git","type":"git"},"description":"Generator for ARToolKit5 constants via Embind extraction","maintainers":[{"name":"kalwalt","email":"info@kalwaltart.it"},{"name":"nickw1","email":"nickw4426@gmail.com"},{"name":"nicolocarpignoli","email":"nicolocarpignoli@gmail.com"}],"readme":"# ARToolKit5 Constants\n\n[![npm version](https://img.shields.io/npm/v/@AR-js-org/artoolkit5-constants.svg)](https://www.npmjs.com/package/@AR-js-org/artoolkit5-constants)\n[![CI](https://github.com/AR-js-org/artoolkit5-constants/actions/workflows/ci.yml/badge.svg)](https://github.com/AR-js-org/artoolkit5-constants/actions)\n[![GitHub stars](https://img.shields.io/github/stars/AR-js-org/artoolkit5-constants)](https://github.com/AR-js-org/artoolkit5-constants/stargazers)\n[![GitHub forks](https://img.shields.io/github/forks/AR-js-org/artoolkit5-constants)](https://github.com/AR-js-org/artoolkit5-constants/network)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**Zero-dependency, auto-generated TypeScript definitions for ARToolKit5 constants.**\n\nThis package provides a strict \"Single Source of Truth\" for the ARToolKit ecosystem. Instead of manually maintaining magic numbers in JavaScript, we extract values directly from the C++ source code using a WebAssembly extractor.\n\n## 📦 Installation\n\n```bash\nnpm install @ar-js-org/artoolkit5-constants\n```\n\n## 🚀 Usage\n\nThis library exports constants individually to support **tree-shaking**. You have two ways to use them depending on your preference.\n\n### 1. Named Imports (Recommended)\nImport only what you need. This allows bundlers (Webpack, Rollup, Vite) to remove unused code, keeping your application lightweight.\n\n```typescript\nimport {\n    AR_PIXEL_FORMAT_RGBA,\n    AR_MATRIX_CODE_DETECTION,\n    ARTOOLKIT_CONSTANTS_VERSION\n} from '@ar-js-org/artoolkit5-constants';\n\nconsole.log(`Loaded constants v${ARTOOLKIT_CONSTANTS_VERSION}`);\n\n// Example: Configuring ARController\nconst config = {\n    pixelFormat: AR_PIXEL_FORMAT_RGBA,\n    detectionMode: AR_MATRIX_CODE_DETECTION\n};\n\nif (config.pixelFormat === AR_PIXEL_FORMAT_RGBA) {\n    console.log(\"Using RGBA format\");\n}\n```\n\n### 2. Namespace Import (Grouped Style)\nIf you prefer accessing constants via a global object (similar to how Enums work or legacy ARToolKit structure), use the `import * as` syntax:\n\n```typescript\nimport * as AR from '@ar-js-org/artoolkit5-constants';\n\nconsole.log(`Version: ${AR.VERSION}`);\nconsole.log(AR.AR_LOG_LEVEL_ERROR); // Output: 3\nconsole.log(AR.AR_TEMPLATE_MATCHING_MONO); // Output: 1\n\nfunction setLogLevel(level: number) {\n    if (level === AR.AR_LOG_LEVEL_DEBUG) {\n        // enable debug tools\n    }\n}\n```\n\n## 🛠 How it Works (For Contributors)\n\nThis project uses a unique build pipeline to ensure accuracy:\n1.  **C++ Source**: It links against the `WebARKitLib` submodule.\n2.  **Embind Extraction**: A minimal C++ program exposes macros and enums via WebAssembly.\n3.  **Generation**: A Node.js script loads the WASM, reads the values, and generates a static `.ts` file.\n\n### Building (recommended: Docker)\n\nThe generated constants are **committed**, and CI regenerates them and fails if\nthe result differs from what is in the repository. A build therefore has to use\nthe same toolchain CI does, or it produces a pull request that cannot pass.\n\n`npm run build:docker` guarantees that. It builds inside the pinned Emscripten\nimage — the same one CI runs in — so nothing depends on what happens to be\ninstalled locally:\n\n```bash\ngit submodule update --init --recursive\nnpm install\nnpm run build:docker\n```\n\nDocker is the only requirement; the image supplies Emscripten, CMake and Node.\n\n#### The version pin\n\nThe Emscripten version lives in [`.emscripten-version`](.emscripten-version) and\nis used in two places:\n\n| Where | How |\n|---|---|\n| `npm run build:docker` | reads the file and uses it as the image tag |\n| `.github/workflows/ci.yml` | `container:` tag, asserted against the file on every run |\n\nCI cannot read the file to choose its container — `container:` is resolved\nbefore the repository is checked out — so the tag is written out there as well.\nThe first CI step compares `emcc --version` against the file and fails if they\nhave drifted, which means **the two must be changed together**.\n\n### Building without Docker\n\nPossible, but you are responsible for matching the pinned version. You will need\n[Emscripten](https://emscripten.org/) (exactly the version in\n`.emscripten-version`), [CMake](https://cmake.org/), optionally\n[Ninja](https://ninja-build.org/) — the build falls back to Makefiles without it\n— and Node.js 18+.\n\n```bash\ngit submodule update --init --recursive\nnpm install\nnpm run build          # configure -> extractor -> generate -> TypeScript\n```\n\nThe generated source file is written to `src/generated/artoolkit_constants.ts`.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\nThe constants are extracted at build time from ARToolKit5 (WebARKitLib) headers,\nwhich are LGPLv3. Only the extracted values are published; no WebARKitLib code is\ndistributed. `src/constants_extractor.cpp` is the one file that includes those\nheaders, and it is a build-time tool that never ships.","readmeFilename":"README.md"}