@akanjs/devkit
This package is a sub-library of akanjs. For more information, please refer to [@akanjs/cli](https://www.npmjs.com/package/@akanjs/cli) and the [Akan.js Github](https://github.com/akan-team/akanjs).
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source, so a manually published version cannot be tied back to a reviewed commit.
Maintainers
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| dependencies | unvetted-dep:akanjs | AI (dependencies): Sibling package from same monorepo/org, pinned exact version. | ai | |
| semgrep | semgrep:shady-links-raw-ip | AI (semgrep): Local test fixture IP in capacitorApp.test.ts, not a live exfil target. | ai | |
| semgrep | semgrep:env-spread | AI (semgrep): Test file backing up env for restoration, not exfiltration. | ai | |
| phantom-deps | phantom-dep:daisyui | AI (phantom-deps): Used via config file, not import; expected for CSS framework. | ai | |
| phantom-deps | phantom-dep:tailwind-scrollbar | AI (phantom-deps): Used via config file, not import; expected for CSS plugin. | ai | |
| semgrep | semgrep:env-bulk-read | AI (semgrep): Filters env vars by regex into publicEnv for config exposure, standard pattern. | ai | |
| semgrep | semgrep:child-process-import | AI (semgrep): Executors module in a devkit legitimately uses child_process to run build/deploy commands. | ai |
Versions (showing 31 of 31)
| Version | Deps | Published |
|---|---|---|
| 2.3.10 | 22 / 0 | |
| 2.3.9 | 22 / 0 | |
| 2.2.9 | 22 / 0 | |
| 2.2.6 | 22 / 0 | |
| 1.0.21 | 21 / 0 | |
| 1.0.20 | 21 / 0 | |
| 1.0.19 | 21 / 0 | |
| 1.0.18 | 21 / 0 | |
| 1.0.17 | 21 / 0 | |
| 1.0.16 | 21 / 0 | |
| 1.0.15 | 21 / 0 | |
| 1.0.14 | 21 / 0 | |
| 1.0.13 | 21 / 0 | |
| 1.0.12 | 21 / 0 | |
| 1.0.11 | 21 / 0 | |
| 1.0.10 | 21 / 0 | |
| 1.0.9 | 21 / 0 | |
| 1.0.8 | 21 / 0 | |
| 1.0.7 | 21 / 0 | |
| 1.0.6 | 21 / 0 | |
| 1.0.5 | 21 / 0 | |
| 1.0.4 | 21 / 0 | |
| 1.0.3 | 21 / 0 | |
| 1.0.2 | 21 / 0 | |
| 1.0.1 | 21 / 0 | |
| 1.0.0 | 21 / 0 | |
| 0.9.59 | 20 / 0 | |
| 0.9.58 | 20 / 0 | |
| 0.9.57 | 20 / 0 | |
| 0.9.56 | 20 / 0 | |
| 0.9.55 | 20 / 0 |
v2.3.10
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.3.9
8 findingsHTTP request to raw IP address — legitimate packages use domain names Source: https://github.com/akan-team/akanjs/blob/ff597cabc64c270ab0fc2f008414994a7282d9c5/capacitorApp.test.ts#L98 96 | operation: "local", 97 | localIp: "192.168.0.5", > 98 | localServerUrl: "http://192.168.0.5:8282/en/admin?csr=true&akanMobileTarget=default", 99 | }, 100 | );
HTTP request to raw IP address — legitimate packages use domain names Source: https://github.com/akan-team/akanjs/blob/ff597cabc64c270ab0fc2f008414994a7282d9c5/capacitorApp.test.ts#L105 103 | hostname: "localhost", 104 | androidScheme: "http", > 105 | url: "http://192.168.0.5:8282/en/admin?csr=true&akanMobileTarget=default", 106 | cleartext: true, 107 | allowNavigation: ["api.example.com", "192.168.0.5", "localhost"],
Spreading entire process.env into an object — may capture all secrets Source: https://github.com/akan-team/akanjs/blob/ff597cabc64c270ab0fc2f008414994a7282d9c5/executors.test.ts#L10 8 | import type { PackageJson } from "./types"; 9 | > 10 | const originalEnv = { ...process.env }; 11 | const tempRoots: string[] = []; 12 |
Spreading entire process.env into an object — may capture all secrets Source: https://github.com/akan-team/akanjs/blob/ff597cabc64c270ab0fc2f008414994a7282d9c5/executors.ts#L782 780 | const proc = Bun.spawn([process.execPath, entry], { 781 | cwd: this.cwdPath, > 782 | env: { 783 | ...process.env, 784 | AKAN_TYPECHECK_CWD: this.cwdPath,
Spreading entire process.env into an object — may capture all secrets Source: https://github.com/akan-team/akanjs/blob/ff597cabc64c270ab0fc2f008414994a7282d9c5/executors.ts#L872 870 | static getBaseDevEnv(envPath?: string) { 871 | // Bun auto-loads .env, so we use process.env directly > 872 | const sourceEnv = envPath ? { ...process.env, ...parseEnvFile(envPath) } : process.env; 873 | 874 | const appName = sourceEnv.AKAN_PUBLIC_APP_NAME;
Spreading entire process.env into an object — may capture all secrets Source: https://github.com/akan-team/akanjs/blob/ff597cabc64c270ab0fc2f008414994a7282d9c5/executors.ts#L1366 1364 | const PORT = (basePort + portOffset).toString(); 1365 | const AKAN_PUBLIC_SERVER_PORT = portOffset ? (8282 + portOffset).toString() : undefined; > 1366 | return { 1367 | ...process.env, 1368 | AKAN_PUBLIC_APP_NAME: this.name,
Spreading entire process.env into an object — may capture all secrets Source: https://github.com/akan-team/akanjs/blob/ff597cabc64c270ab0fc2f008414994a7282d9c5/integration/devStabilityHarness.ts#L259 257 | const proc = Bun.spawn(["bash", "-lc", `bun run akan start ${JSON.stringify(this.appName)}`], { 258 | cwd: this.workspaceRoot, > 259 | env: { 260 | ...process.env, 261 | AKAN_VERBOSE: "1",
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.