{"_id":"@civitai/app-sdk","_rev":"53-2ebc3dd6ccf8bfc00241b28039ad214f","name":"@civitai/app-sdk","dist-tags":{"latest":"0.51.0"},"versions":{"0.1.0":{"name":"@civitai/app-sdk","version":"0.1.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.1.0","maintainers":[{"name":"flipperbw","email":"flipperbw@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"23ffa9f94faba894b2b168e0f0b3b749d382b90f","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.1.0.tgz","fileCount":46,"integrity":"sha512-VDxgVuZq6Voa58DoyKIiDGNor+6SBkfDf+vBPeUWy6gk6SKPabGgB6SRkyGOzgzHJyQ7g1TuC1wnQyVahpRVHQ==","signatures":[{"sig":"MEQCIBGOL21/YbOB3vA1VkPSQZ0LGo0Nmu/qN5qbem5Pk1W+AiADontVh//agR8wwRwlfu3EEsBLx2g3eGhEY29PeAucUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75669},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"}},"gitHead":"e36956f16727b60b3f4dee7a046ebc03a732c9e7","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"justmaier","email":"just.maier@gmail.com"},"repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"10.9.3","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.2","@types/node":"^20.19.9"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.1.0_1779244078095_0.017893727816618687","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@civitai/app-sdk","version":"0.6.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.6.0","maintainers":[{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"d44f53651bae8aede860dffe801c45e889a86dc2","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.6.0.tgz","fileCount":59,"integrity":"sha512-+qTWLzI0oYmeZuvlaZmy1EqjmrfkADZVNeqsfU0cF58B5MLvopufU6yKlpGdnMfVzjVX9YzlvW3QTOzSgug9IQ==","signatures":[{"sig":"MEUCIAa6im3b0iIKeqVxyWFxLqEOL9bnYIVY2gTFicyOYaCVAiEAj3+DUZX80ISsibuNB1MwoiLf5PIFHUxdR/OvA8WzRFs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162226},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"gitHead":"ec0555b754a7241639f7edab6e1035a2cd5a21e3","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"devzacx","email":"zachlowden1@gmail.com"},"repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"10.8.2","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"20.20.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.6.0_1779897309258_0.07321357085987068","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@civitai/app-sdk","version":"0.7.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.7.0","maintainers":[{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"da69047c206b5e352e57858560f6910d969a9c12","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.7.0.tgz","fileCount":59,"integrity":"sha512-QTmHKZmJW3b4HjD7tmFBdQvYo8SVwXEcaMTDuZm6X8nWr7HTWJmX9XZU5hSL7a1MKNOQMcmjzTZhoX2hyNaYcw==","signatures":[{"sig":"MEUCIQC2lHvDlwmIVjG6GSt+LYNSDRFwMM49UF0npC36viD87QIgEQWBybBNdYv2KI7OSvitEnnJRMdALDsUbuxc4ekbUlg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166215},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"gitHead":"19e76ae3b76700556b98cde73d9758f6bc0556d8","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"devzacx","email":"zachlowden1@gmail.com"},"repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"10.8.2","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"20.20.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.7.0_1780344668741_0.377774919439235","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@civitai/app-sdk","version":"0.8.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.8.0","maintainers":[{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"823e3c1b76db9d47457f5d01a1ea63d2de3a3a82","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.8.0.tgz","fileCount":59,"integrity":"sha512-QgG+oTA6sexcdjCnZW4UWqEFFQX3/JgvBaj5d+v6EeVMjb305R+bI31SSXlU3FvnVnNMHvlZZawYRkJwIeHt4Q==","signatures":[{"sig":"MEUCIGsbtXFXehqsQEvjB7asXp+4yjB1K3V64spbIUyCobvtAiEA2Hr/X6geeUErzBv83ulgEQPWC9d1DZ+imlVXPVjwsFE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171649},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"gitHead":"2ad3d6cbbf4622b6bc79fff7ed6477b40477eeb4","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"devzacx","email":"zachlowden1@gmail.com"},"repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"10.8.2","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"20.20.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.8.0_1780445024763_0.5332112890272587","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@civitai/app-sdk","version":"0.8.1","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.8.1","maintainers":[{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"c88b985eeba6dfd56c6de1fabac7eb78610b69e9","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.8.1.tgz","fileCount":60,"integrity":"sha512-ygovSml6OyJUlpuLZGLo5wd2oFptw2JkMTCs8Dm+MHn16WhNGx6a8c5eutySOwMM81TBpyZ8gLhtNPp3ip/ibg==","signatures":[{"sig":"MEYCIQDdNx5k/EgJcfxwI8kAnYb4kxkWQIlLib7mEZDFjGcXMQIhAPfMlRVEmPM+w+LeKEDFjMmLSS+EgyjbpFzJtPpLKdRF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172855},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.8.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"devzacx","email":"zachlowden1@gmail.com"},"_resolved":"/tmp/nix-shell-3404242-384278022/9ea0a850baadef4e5b0126a881e962e8/civitai-app-sdk-0.8.1.tgz","_integrity":"sha512-ygovSml6OyJUlpuLZGLo5wd2oFptw2JkMTCs8Dm+MHn16WhNGx6a8c5eutySOwMM81TBpyZ8gLhtNPp3ip/ibg==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.12.1","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.15.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.8.1_1781458698260_0.03504380574555532","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@civitai/app-sdk","version":"0.9.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.9.0","maintainers":[{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"e2456da53357c11461a6b1edda368616e50f4540","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.9.0.tgz","fileCount":59,"integrity":"sha512-pkMBL/4Gll9Q+XgtSW5QA1A927T7yiOqgFPMcjZIvL43JgNNyRk6fj5ZivxTygSN55HPuApZrm2tAX/SUUwITQ==","signatures":[{"sig":"MEQCIC9XdZvHxJgR+xCZ96fyEALowMCwJtXRAjGay3xIrXiYAiALVnX8ReCB5D7Bdoo2s7wnc5C+wVm2XdJl0DNhZCTbaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172166},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"gitHead":"cd04c61c78b49e36f044e3b05d9a0a08a138ef5d","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"devzacx","email":"zachlowden1@gmail.com"},"repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.9.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.14.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.9.0_1781725552863_0.04931382238023452","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@civitai/app-sdk","version":"0.10.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.10.0","maintainers":[{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"b512ffd92c017e90220879898479447dffcfa2f8","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.10.0.tgz","fileCount":60,"integrity":"sha512-6ma7KbBG0cOjo+ne6QImdinPBRuCVcyluAZRuGbr+xW+Q9z6CcCHR6AVz8Hm0GH+twl7lw0tF3vaAl0RCkjquQ==","signatures":[{"sig":"MEYCIQC3fdrTbqezAOkgxV9AXEzr4PUwu7gnKuJGEx9flqgMewIhANST+2gvK1ZXbOg/mWELuolNfjWzCpttoxQlSiUJbBUS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":174147},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.10.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/bd38c94852908f9a4f6e45a063b4f966/civitai-app-sdk-0.10.0.tgz","_integrity":"sha512-6ma7KbBG0cOjo+ne6QImdinPBRuCVcyluAZRuGbr+xW+Q9z6CcCHR6AVz8Hm0GH+twl7lw0tF3vaAl0RCkjquQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.17.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.10.0_1781880334462_0.6926898601323712","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@civitai/app-sdk","version":"0.11.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.11.0","maintainers":[{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"ea26fa376c2911b5ef8c26c87ec2d2f9c3dc900c","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.11.0.tgz","fileCount":60,"integrity":"sha512-62tcbrpGHL3ehiZVEKwmJsZ3+UbtCIkmoWXkjM2NCJgfRtdPJ4tt91FpOBGHXo00XLIgKHMYSJ4xQxPuvILSbw==","signatures":[{"sig":"MEQCIGrVGbWEEAKTzKLTBdDyfTgEV6zsfHVJmLKR5Vt5eRhJAiAs2kLR4k71R52V1Z5mNf3WDz0H1JsFKCZ4yqpLak9svA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":176735},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.11.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/20a7e2ce7b57a0aeef636a8843f524b3/civitai-app-sdk-0.11.0.tgz","_integrity":"sha512-62tcbrpGHL3ehiZVEKwmJsZ3+UbtCIkmoWXkjM2NCJgfRtdPJ4tt91FpOBGHXo00XLIgKHMYSJ4xQxPuvILSbw==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.17.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.11.0_1781892475293_0.020720592696468865","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@civitai/app-sdk","version":"0.12.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.12.0","maintainers":[{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"728bc1c1dca201a6d0dfa490c549b3adf3f4df4f","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.12.0.tgz","fileCount":60,"integrity":"sha512-XgdOhhf/CclZGTqhSjc8TzeORJd/7mi/jnKut7JnZ/sM4Oofa1Ym86DxQaydf61SA9uCLDNmuFRUaeG37WaGgg==","signatures":[{"sig":"MEYCIQD91QNpmBCxkcwpBvFvf8Gyrw2i6VW6CkTVARd6ISwgQQIhAP/qcMoMDMKCvtkkazypJbmUz+A4QgPz7NinsvAifUU9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177200},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.12.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/071dd58148ee79839563501829e50c5e/civitai-app-sdk-0.12.0.tgz","_integrity":"sha512-XgdOhhf/CclZGTqhSjc8TzeORJd/7mi/jnKut7JnZ/sM4Oofa1Ym86DxQaydf61SA9uCLDNmuFRUaeG37WaGgg==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.17.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.12.0_1781896180318_0.850005505724984","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@civitai/app-sdk","version":"0.13.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.13.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"979573983128d064f1ffa72575334770a522e154","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.13.0.tgz","fileCount":64,"integrity":"sha512-YqChMRBkANyTEq95KCoTnjOAQkqULrY3bWxLPm9GJ7kikl+iwg/15fIM0ncgRRu5m7rGBNz5oUc1Q+6oLzflmg==","signatures":[{"sig":"MEUCIQC+AwnDbfH47pXXn8b+F1N81EQV9/FpQ49nfo0IUyCsYAIgMsizof7sMGTGxpL7RV3Wq1pByjdv6jUuki7zZs++XTE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188910},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.13.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/7bc66e73285b6fe461b75b819c025093/civitai-app-sdk-0.13.0.tgz","_integrity":"sha512-YqChMRBkANyTEq95KCoTnjOAQkqULrY3bWxLPm9GJ7kikl+iwg/15fIM0ncgRRu5m7rGBNz5oUc1Q+6oLzflmg==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.17.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.13.0_1782073859838_0.3630614785703561","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"@civitai/app-sdk","version":"0.13.1","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.13.1","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"8f71dac44c053f4e35fc3527b5c900ec6c079bc2","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.13.1.tgz","fileCount":64,"integrity":"sha512-bIPN8uX4vJFrq2wk2vcoak/hyeAgJ4vNW6qIvm0SYtwlKOa9kDSstlpL7dsHQb/hyl5wqC/kFvo6nRtwC5vpwQ==","signatures":[{"sig":"MEYCIQDXEMj8Sc0mgjogqRroPdXc62CbNAi9N8N/xS+t534efAIhAMVHwIxbkmAfYGtkJ2VwTdrnJ4E5d0TaCQcveufplgv6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188986},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.13.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/74cb29e15bce889a2b568a26b35e88da/civitai-app-sdk-0.13.1.tgz","_integrity":"sha512-bIPN8uX4vJFrq2wk2vcoak/hyeAgJ4vNW6qIvm0SYtwlKOa9kDSstlpL7dsHQb/hyl5wqC/kFvo6nRtwC5vpwQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.17.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.13.1_1782228891159_0.36603804456879496","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@civitai/app-sdk","version":"0.14.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.14.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"432eda03a64933be79ca0f8b9cc637c7991a75d0","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.14.0.tgz","fileCount":64,"integrity":"sha512-YdXRZzBQe48+eJJSQXmKTP9SLKC6a97UBbcUDOPxzuH3UbWbyVL3Hh/jMK5Q4TrmDtYkkSs/RZbuF4ykIVtNBA==","signatures":[{"sig":"MEUCIGLYcEojrodZOKkFBTboCWeHenrZ9mTZf51A1+vmTyMIAiEA9ZUXbipPZBYYtN9ok7UkDdkQ+k48NqrdcnezzsN1Miw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":210626},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.14.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/7531dc4508c4a14359d78c53cbc431ef/civitai-app-sdk-0.14.0.tgz","_integrity":"sha512-YdXRZzBQe48+eJJSQXmKTP9SLKC6a97UBbcUDOPxzuH3UbWbyVL3Hh/jMK5Q4TrmDtYkkSs/RZbuF4ykIVtNBA==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.18.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.14.0_1783010047952_0.4268775336754975","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@civitai/app-sdk","version":"0.15.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.15.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"022fd9bede79598f2a804de001e9b9deeabea4cb","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.15.0.tgz","fileCount":64,"integrity":"sha512-Hmrr8yK8HniA5/4AX2i/FC3V1dO2xSm7WJ3HPtAbgsRJu8zs/9xFlWHCOd8P3Ns/UXBr6eddg9g8RA0HcX+0ag==","signatures":[{"sig":"MEQCIDK+vpfPWGszNNSwcIhGH+44ESPT3dT74jr1lG04sOHyAiAO9cBZyXToV+/uqZ/Guoq4aGqvyvy/y4V3RZfd0+5+oA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":215863},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.15.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/1984cfe24f9226bf0ac795447c3584e5/civitai-app-sdk-0.15.0.tgz","_integrity":"sha512-Hmrr8yK8HniA5/4AX2i/FC3V1dO2xSm7WJ3HPtAbgsRJu8zs/9xFlWHCOd8P3Ns/UXBr6eddg9g8RA0HcX+0ag==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.15.0_1783612063001_0.8287382483730379","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@civitai/app-sdk","version":"0.16.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.16.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"27ed8d71f0946d6e3921825f1d444048c9379a1f","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.16.0.tgz","fileCount":64,"integrity":"sha512-KOaAmzBIoSUE1LfbAkHKoETrR0+lKoO8BwkV5gxPyALu3G4/rWzgsKw+dVu3tqvIbqaT7Si61jfJZ8JI0Oo//A==","signatures":[{"sig":"MEQCIH3wJzMK7WWIOIygYobYWhg/HYxeDXz2V1dGPkTzlfmCAiANRFhwimeuvB9SMsGolrZNUyc63xdMEVEW4O/3uZSgvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":216617},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.16.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/1b635e7f0b6321af758ced1453c8c959/civitai-app-sdk-0.16.0.tgz","_integrity":"sha512-KOaAmzBIoSUE1LfbAkHKoETrR0+lKoO8BwkV5gxPyALu3G4/rWzgsKw+dVu3tqvIbqaT7Si61jfJZ8JI0Oo//A==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.16.0_1783967388261_0.1120472378691626","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@civitai/app-sdk","version":"0.17.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.17.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"11466e17fd99684e4dbc3ce118de83a5b99edf16","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.17.0.tgz","fileCount":64,"integrity":"sha512-2r1NKVu3JSfK6LgDDk2fGiv/bJyWbpWgpXx8v7dBKxNGZM1jO3lnkVHyUhWZGWajGDyQcH7MQ8WJ/1518H9O6A==","signatures":[{"sig":"MEQCIFUQq/V3fpgVc1tvC3KDoLNjw0s82UFZXscKLmQptHcUAiB7mY0oXa6Q1QFT68C4Y/YOIYGq00hgVMVAIcQrj6ZWgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":223264},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.17.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/e416efea3bc0dbf38a4b01bf5e2273ed/civitai-app-sdk-0.17.0.tgz","_integrity":"sha512-2r1NKVu3JSfK6LgDDk2fGiv/bJyWbpWgpXx8v7dBKxNGZM1jO3lnkVHyUhWZGWajGDyQcH7MQ8WJ/1518H9O6A==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.17.0_1783980298790_0.551104516996592","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@civitai/app-sdk","version":"0.18.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.18.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"1497e9f9a8d8d2141d4bd7f44f3d07cc7ae4720f","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.18.0.tgz","fileCount":64,"integrity":"sha512-eS6ZD8dJ++NumgGsI7FJfIJ5vmJx7UlnZPo7JtALrgzHdGT9S6KAeLDfGEWUsHLpmS6uoJzpkRPYFX+hhkTuHg==","signatures":[{"sig":"MEUCIQCNmG3dtEHrSVvjvUK/rzy3N2vUVvW4BtfOxB/parO5/gIgVd0C7qHcVstZ2SzFZyZKgXbc6ODKnWBG29DYWTI5D/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":228379},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.18.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/0d5e21832d86226716f7e4ed36b6518c/civitai-app-sdk-0.18.0.tgz","_integrity":"sha512-eS6ZD8dJ++NumgGsI7FJfIJ5vmJx7UlnZPo7JtALrgzHdGT9S6KAeLDfGEWUsHLpmS6uoJzpkRPYFX+hhkTuHg==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.18.0_1784131945620_0.5935726895718918","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@civitai/app-sdk","version":"0.19.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.19.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"a0a94625a3e223378de254ecdc75c126113b4ff1","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.19.0.tgz","fileCount":64,"integrity":"sha512-4gWm05FColK0i4I3PWBmu1B3czjViOJxxTGNolnIHsUOr2kzjJVbt455Y+nVaT/p0WYmRJHaEZivU3dz2VuITA==","signatures":[{"sig":"MEUCICx1CrSH5aEKbBlOYZYYyPr7Yuco49NTTnFbhsslOg/tAiEAlkNhX6TTXzXmfY+HPK6Z2BzcYVUaef/cb22gIO7t7WE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":230431},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.19.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/729c943b3d0c5994a2790afb00caeaf4/civitai-app-sdk-0.19.0.tgz","_integrity":"sha512-4gWm05FColK0i4I3PWBmu1B3czjViOJxxTGNolnIHsUOr2kzjJVbt455Y+nVaT/p0WYmRJHaEZivU3dz2VuITA==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.19.0_1784144424399_0.09827486979957589","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@civitai/app-sdk","version":"0.20.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.20.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"c73a98134c4c8603819948214e6235d901175185","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.20.0.tgz","fileCount":64,"integrity":"sha512-RIsPbkEx/qrP3H60tARcPMoF7+3Cp7Tb6prNIJCGdiICzeWyubHWZks8XCCvnTlSZGb1FxO19jqSQH4R5XZ6HA==","signatures":[{"sig":"MEYCIQCDk0bA4ws9FeNc0/xAUO8JhxBeFxX4mbPTMOwiHUSdOgIhALOvqEzRiAFyXgu6UGRohwcDl7gvp4JF9bla9abrOsjt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":230987},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.20.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/5a32de93fa191afe84574a1e728d8619/civitai-app-sdk-0.20.0.tgz","_integrity":"sha512-RIsPbkEx/qrP3H60tARcPMoF7+3Cp7Tb6prNIJCGdiICzeWyubHWZks8XCCvnTlSZGb1FxO19jqSQH4R5XZ6HA==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.20.0_1784153455929_0.8914473986520284","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@civitai/app-sdk","version":"0.21.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.21.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"f2504563bc6bce5990099d211da6098ba7941225","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.21.0.tgz","fileCount":64,"integrity":"sha512-eIsMXUqxriC0q0G+vLuW7NqZNnQ+Tg2XmKx9IKZ+LXYBvWdoPxBs1nirJ62/hJGJSRkz8GIHcMNF4tBMncfmVQ==","signatures":[{"sig":"MEYCIQDzlH7hPC1LCmczuey0cpMOzE3S1dX7IrKtrs+3tgpyZwIhAJ0aJQrIK1WEhZ079YrRy/RK9EiSm1IHknH1jjoHcLVf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243558},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.21.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/f8045dabe1016bc9f284f2d272e4f4c0/civitai-app-sdk-0.21.0.tgz","_integrity":"sha512-eIsMXUqxriC0q0G+vLuW7NqZNnQ+Tg2XmKx9IKZ+LXYBvWdoPxBs1nirJ62/hJGJSRkz8GIHcMNF4tBMncfmVQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.21.0_1784160121209_0.5543576728976203","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@civitai/app-sdk","version":"0.22.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.22.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"064878b5b9070529bb41428dc69bb24d6796a3dc","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.22.0.tgz","fileCount":64,"integrity":"sha512-YXH/3Nrur7QncyI5MQJzzPjaWpFIDRscFio7sfIQ+GYQVNwIjImVMPI9Ty2kVgcYDBOS79ywgkoq02MOvyv0vQ==","signatures":[{"sig":"MEUCIQCqKqG0fv3sQN99FBVjtQh+Jc8VLB7z+SvjbdaOAz4OXgIgK1oysZjX0z+y1auyIENErOnEU2LUhy1RXknp0rcPh3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":245546},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.22.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/c41c9e8141e73e270d873c6ae80c9de5/civitai-app-sdk-0.22.0.tgz","_integrity":"sha512-YXH/3Nrur7QncyI5MQJzzPjaWpFIDRscFio7sfIQ+GYQVNwIjImVMPI9Ty2kVgcYDBOS79ywgkoq02MOvyv0vQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.22.0_1784164194922_0.2737883488106514","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@civitai/app-sdk","version":"0.23.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.23.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"88353a18d842e08a447ad836946494ccf8e29041","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.23.0.tgz","fileCount":64,"integrity":"sha512-2fQd66o46AnaiPOp58rtdwKmSUDEYK4owbMYepCh5E5WyMyaqUx81M3uWXAHiJsi4RAJtz+2lRkWXxym+e7+TA==","signatures":[{"sig":"MEUCIGmdH5Vl3DX3+RR9w7nz4S4aYhwJpYSLgbmOfO/7M71gAiEAwkqThXjUqW9wUmLt4eNGIoiZKZGfg7khXUf5aSIvSzY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":249631},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.23.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/223e12ee4df95537100d51801811977b/civitai-app-sdk-0.23.0.tgz","_integrity":"sha512-2fQd66o46AnaiPOp58rtdwKmSUDEYK4owbMYepCh5E5WyMyaqUx81M3uWXAHiJsi4RAJtz+2lRkWXxym+e7+TA==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.23.0_1784169228402_0.39241010143040556","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@civitai/app-sdk","version":"0.24.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.24.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"53b0808a99774d78f55330156f1fa175683ea35a","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.24.0.tgz","fileCount":64,"integrity":"sha512-tu7jX7qzLbrBPyVnOnKeunMapu7MMiRUK4BWEkTszHcYx42qj00UN8EyQGqLpDrn6AQWe3Oa+byO9EThAUhNsQ==","signatures":[{"sig":"MEQCIDXXB0DAon68ysynWD7qTIAPvtiJmutXTgFKpcIy2YWIAiB5zC3a2fTuA6tLpgXO/1O5ZZlVvWmCNRpp5ludgjwCSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":254820},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.24.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/c1f3effb02bd42c43c075cf371c80926/civitai-app-sdk-0.24.0.tgz","_integrity":"sha512-tu7jX7qzLbrBPyVnOnKeunMapu7MMiRUK4BWEkTszHcYx42qj00UN8EyQGqLpDrn6AQWe3Oa+byO9EThAUhNsQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.24.0_1784223161821_0.9676833546166923","host":"s3://npm-registry-packages-npm-production"}},"0.24.1":{"name":"@civitai/app-sdk","version":"0.24.1","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.24.1","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"ed75cc69d5f7b76f3be572772dcf2edbc5fef64f","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.24.1.tgz","fileCount":64,"integrity":"sha512-OTIwQ5mjk1YZ7aYn+uGZblyDOhpmpRPge+GOzR9meY6Yw0NlwOTqv5bHkID1H+h8HvzJ4wuyOV0fYZxtO0Y9fw==","signatures":[{"sig":"MEUCIQDr0IJRxWmJjF0IlWpf5i2xqkwm3F3ZZpUcH6tf3XTQXAIgLEFgYaWQB1cwevgZIo6t+N03bkXaBo4rtIeroy5SgpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.24.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":254820},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.24.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/e21e98400d06319c9ea2bcd5b4280a5e/civitai-app-sdk-0.24.1.tgz","_integrity":"sha512-OTIwQ5mjk1YZ7aYn+uGZblyDOhpmpRPge+GOzR9meY6Yw0NlwOTqv5bHkID1H+h8HvzJ4wuyOV0fYZxtO0Y9fw==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.24.1_1784231896408_0.901886221117902","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@civitai/app-sdk","version":"0.25.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.25.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"f28177f08c1ea995f8cace3c4b5053ae92e144fe","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.25.0.tgz","fileCount":64,"integrity":"sha512-b4dDf4zwMBevzeUl03C/BfXCYQZFRVCbK1Bm2gJ8r1rS6EAIo/P0IMpKXq8DpjhOqWSjLCdCuiCYnBp0lj5mvQ==","signatures":[{"sig":"MEUCIQCSQq4caXbfMhH4d9+KYGJb6ot0hR+eWt2anrItGCNL0gIgYkDdauIug2mR5aoZdE8Yn+jBNFyaafHLpzELwSniJaY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":258097},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.25.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/4764c978c1d4eb1bd77694a4afeb2801/civitai-app-sdk-0.25.0.tgz","_integrity":"sha512-b4dDf4zwMBevzeUl03C/BfXCYQZFRVCbK1Bm2gJ8r1rS6EAIo/P0IMpKXq8DpjhOqWSjLCdCuiCYnBp0lj5mvQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.25.0_1784237856241_0.6047242677315463","host":"s3://npm-registry-packages-npm-production"}},"0.25.1":{"name":"@civitai/app-sdk","version":"0.25.1","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.25.1","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"c3d9945acdfd5dfde40007918165680773015d06","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.25.1.tgz","fileCount":64,"integrity":"sha512-jELfRwi7rdlI9SnQgt1i4mxh48b57+o+DT5pnpSK6j11/ETv3iJQyZ9NzxfmV9kwUoqiLVRSYjW1inCSxEYk4Q==","signatures":[{"sig":"MEUCIF/e4XlZKS0Tzknu9D0arfzUX94717nWehdQNlALXuY5AiEAmaMJ4VDnZqCZWn8f58A7Rx05Oh0eORNsF5WwPXGYRN4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.25.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":260865},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.25.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/3b550db311b7e60c81f6e5435ca12adb/civitai-app-sdk-0.25.1.tgz","_integrity":"sha512-jELfRwi7rdlI9SnQgt1i4mxh48b57+o+DT5pnpSK6j11/ETv3iJQyZ9NzxfmV9kwUoqiLVRSYjW1inCSxEYk4Q==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.25.1_1784312070225_0.3760370934013204","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@civitai/app-sdk","version":"0.26.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.26.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"31a1f426be89fb18f539be76ee3381265b08cd8b","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.26.0.tgz","fileCount":64,"integrity":"sha512-sOLZhaKJnSehTu0cM33W1R9Wwm+gamnJLNTl9rDdyJ1Qd5cShOyMeEbSTq7IU33HZ8YXZxRjQ1j3Ow2ERkaiYw==","signatures":[{"sig":"MEYCIQCU6U/T4k5hkTSB6ASRVYj4WmbBKjDdUukS4H2EBqar5gIhANCk+lrqeBTRRPEhDAUfleFrSgna9A7XbxhPAV9JpEep","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":264940},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.26.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/488f9b71be916f0d0c549f51598ef7b7/civitai-app-sdk-0.26.0.tgz","_integrity":"sha512-sOLZhaKJnSehTu0cM33W1R9Wwm+gamnJLNTl9rDdyJ1Qd5cShOyMeEbSTq7IU33HZ8YXZxRjQ1j3Ow2ERkaiYw==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.26.0_1784332649213_0.9486095976019888","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@civitai/app-sdk","version":"0.27.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.27.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"90ea86cceb56cc6eed16835e29704cd79f4dcf78","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.27.0.tgz","fileCount":68,"integrity":"sha512-wMubNSBuiVMDo4vWeODAge1cykWWvrg2z4VRcBPQ3IM3MCp24bthZybYtjX7BiM6Q3IkyNi8e/w3xrj6T7B+Wg==","signatures":[{"sig":"MEUCIGFTL9ASUPeKDbiOp5Khxy+3dwYTIcGCq8BHxafTlnU/AiEApJAFBl6h8HEkGixf9sYiebglJidugAbOGxDAWbYbd8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":296430},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.27.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/74ff27967b4e9eae2a9f2bf48839e26e/civitai-app-sdk-0.27.0.tgz","_integrity":"sha512-wMubNSBuiVMDo4vWeODAge1cykWWvrg2z4VRcBPQ3IM3MCp24bthZybYtjX7BiM6Q3IkyNi8e/w3xrj6T7B+Wg==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.27.0_1785269769770_0.1647704878361942","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"@civitai/app-sdk","version":"0.28.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.28.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"5a868e086a858eea7242111858bb16696b85ba33","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.28.0.tgz","fileCount":68,"integrity":"sha512-MeNJDM5mrNeU3jKWXSS27Zw6J7uFHCQL5qKresHJuroJ2ZKwe3a9R4k/jpkcPhQzW8Ey4ACate1+qTH+aVcaQQ==","signatures":[{"sig":"MEUCIFYrB6d2OFNHMLxw0zlqkXgDa2+NPC5grWcixvyRYEb6AiEAyXleJG8vODFxuupFLl4Yvze+HhGSTChvO1BkrHZ9y74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":301475},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.28.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/445ca2db2d2b5e89c4b8a9ed82b08a5d/civitai-app-sdk-0.28.0.tgz","_integrity":"sha512-MeNJDM5mrNeU3jKWXSS27Zw6J7uFHCQL5qKresHJuroJ2ZKwe3a9R4k/jpkcPhQzW8Ey4ACate1+qTH+aVcaQQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.28.0_1785290578174_0.6050927191545363","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@civitai/app-sdk","version":"0.29.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.29.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"4a3c550cb73d30e06c041ce8b0ef16d62866405b","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.29.0.tgz","fileCount":68,"integrity":"sha512-bsfEDSudkmjwvG9K8qdhPo/7B94w4U7z7MRWB6xoLvMeTFO1dZ+tg9kXtsYjYvRuE1OpyyWl6cLJtm1ycDE4tQ==","signatures":[{"sig":"MEUCIB9h4j8b7LygJGVkWk3rC1s+PBY+ihUq5WoiUwb5e03kAiEA7CpppiC9oXL2lMTLKz0No3nCrTazQMe4Ggcn7xF9BzM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":308759},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.29.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/ed605363d322b7965f9a67e97396aac1/civitai-app-sdk-0.29.0.tgz","_integrity":"sha512-bsfEDSudkmjwvG9K8qdhPo/7B94w4U7z7MRWB6xoLvMeTFO1dZ+tg9kXtsYjYvRuE1OpyyWl6cLJtm1ycDE4tQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.29.0_1785788145957_0.5040979660255436","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@civitai/app-sdk","version":"0.30.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.30.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"95b1a8e0cb46d5f2b1abab413ee67b94e4544b9c","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.30.0.tgz","fileCount":68,"integrity":"sha512-Vitoy5iF8TCq+nxRQ0br7RY1S1v33Jg899CO1zAnRJqktJVT/yhQNzoO3FKbwNn6umLL6aKqUXIYb4nsxzDtng==","signatures":[{"sig":"MEYCIQC35gxfGMf1ia80e84ZCz8T08JtViHdHoo/S7SULc9v1QIhAI/582bGYI0AjLgdxKfGx6tNqP3UjDEtDHy+zVW5rvwY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":312397},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.30.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/c0500a45b0f6c06be121554b6c10ed3d/civitai-app-sdk-0.30.0.tgz","_integrity":"sha512-Vitoy5iF8TCq+nxRQ0br7RY1S1v33Jg899CO1zAnRJqktJVT/yhQNzoO3FKbwNn6umLL6aKqUXIYb4nsxzDtng==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.30.0_1785795187231_0.47217856951466697","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"@civitai/app-sdk","version":"0.31.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.31.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"1ff661a3da0d757c80407bfbf08ae67e169f00d2","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.31.0.tgz","fileCount":72,"integrity":"sha512-FhQ6heL3TceUXdEGjgToVejqvGE4DWtiS85hX2T/nkF/YDf9L6jlKMH4upTaN2kSreS6PybziuWkGREL6GwRYQ==","signatures":[{"sig":"MEQCIB2SHDq9IZ73EHmzhu96o25CuoSvTbRb4lea3bc6aoYqAiBjL8DcO2iPYNqCVmFU2MW5pJ54/oXJDeItJz0CBICrCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":342729},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.31.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/69a20264a7a5788d3d6ea6318e79a8c9/civitai-app-sdk-0.31.0.tgz","_integrity":"sha512-FhQ6heL3TceUXdEGjgToVejqvGE4DWtiS85hX2T/nkF/YDf9L6jlKMH4upTaN2kSreS6PybziuWkGREL6GwRYQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.31.0_1785902086231_0.7023262836394797","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"@civitai/app-sdk","version":"0.32.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.32.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"f1b08da02bdd574cd873d9bf7e8897c31aa7bf63","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.32.0.tgz","fileCount":72,"integrity":"sha512-p+x1WHFSCJvzk3aSenvWxZ9mKOu4fJWfVKlALOYF1qPtTHJle7Z1L9V/8cIhKE372eSefhwWsKBxtksXHo0FRQ==","signatures":[{"sig":"MEUCIFyNb04NqN3pjgksbWT2OSokAnGowBqXwdLmFVj8VKg/AiEAu/trUgSjWw+Dgz2YI61NtcvsaqC1urKgyRtYJFKc6MY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":382920},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.32.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/19ed0e0fb331c8462ab092f5e170c090/civitai-app-sdk-0.32.0.tgz","_integrity":"sha512-p+x1WHFSCJvzk3aSenvWxZ9mKOu4fJWfVKlALOYF1qPtTHJle7Z1L9V/8cIhKE372eSefhwWsKBxtksXHo0FRQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.32.0_1786575483117_0.6171415912676745","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"@civitai/app-sdk","version":"0.33.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.33.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"bf30c623bcc8dc899067f6652211aaea3e4c1d29","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.33.0.tgz","fileCount":72,"integrity":"sha512-LDFhqdbkXYEgLPQcRLPv6/rBAK7pVocdrRf4YDIZX17+mbPagF6M3tckPxl/tfeXn4Bv8Xp3e/uvYaMxNc89Yw==","signatures":[{"sig":"MEYCIQDqJ7AZs+DVeTzaqts1Mew20s+Ms33HeowxAgAWF1LYMAIhANDCsB2xadQyOUF0bjZPZbnzouS7G0pVm/d/3BBjr5Dy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":385931},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.33.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/d1f43c56fee15303581039ad4538acbc/civitai-app-sdk-0.33.0.tgz","_integrity":"sha512-LDFhqdbkXYEgLPQcRLPv6/rBAK7pVocdrRf4YDIZX17+mbPagF6M3tckPxl/tfeXn4Bv8Xp3e/uvYaMxNc89Yw==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.16.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.33.0_1786576361553_0.6568538666210268","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@civitai/app-sdk","version":"0.34.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.34.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"8d9c74fd265ff2568f1253d244da61768ccec942","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.34.0.tgz","fileCount":72,"integrity":"sha512-XNFPFqvg2TZZaUlLskBtX/NAKN3n8EJ0uUkCZ2a2FPRP4MbNXumxrEa6kDTU8FF6rA5gMLO/D/9Yu/r470QF6Q==","signatures":[{"sig":"MEUCIQDZ6wgeV0awsqiEpOV+0ep7gLwCXX/LvMsjmxPJmrLpkAIgMdCg7XKwsIXmuatr8xaOauDNG++tFLF+T842AcqukME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":386342},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.34.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/eeeaf0837d5e6472aded231bf29cff45/civitai-app-sdk-0.34.0.tgz","_integrity":"sha512-XNFPFqvg2TZZaUlLskBtX/NAKN3n8EJ0uUkCZ2a2FPRP4MbNXumxrEa6kDTU8FF6rA5gMLO/D/9Yu/r470QF6Q==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.17.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.34.0_1786655394926_0.7899175965148073","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@civitai/app-sdk","version":"0.35.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.35.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"90ad9805a75d2e4fedca07dfafcca2b77e01bf3d","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.35.0.tgz","fileCount":72,"integrity":"sha512-NStJ7C4m7TGtFkB2FW693lZ8smOSLN0k3fz3RpynlBMJDqVUeL7FTTkzMYqiwFF5QIXSAtx9yGKcxvH6qfadvg==","signatures":[{"sig":"MEYCIQCYZ7sEWl+4d2r/9Du649Ya1eYbW9YrV80Y+KH3ohvgfwIhAMkHk7aD9GLkAZycblhgfwiGpHbc+CIOMZyBvi6MKZUT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":387753},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.35.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/659bce337c29020a97147385ebe836c8/civitai-app-sdk-0.35.0.tgz","_integrity":"sha512-NStJ7C4m7TGtFkB2FW693lZ8smOSLN0k3fz3RpynlBMJDqVUeL7FTTkzMYqiwFF5QIXSAtx9yGKcxvH6qfadvg==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.17.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.35.0_1786768674922_0.2679898686808573","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"@civitai/app-sdk","version":"0.36.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.36.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"e1776698b78918315dc0ccaeb707056c66bd6323","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.36.0.tgz","fileCount":72,"integrity":"sha512-L9X9RrSyuWZnwv6d3+lQ3ySCdKKycDXaBOAVgr1O0zb1B6Q/XamfpIYF//yqzgROz+TyTo6wZQy9S32IGy7U9w==","signatures":[{"sig":"MEQCIFYd8zpaQiek/VZ0K3oHuU/QsV4lwVgBpzV2RUQ5Ad9EAiAX4HgMD40JhZlmZorxmnBrWhS8qp7eXS+N8HlsmhijOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":391763},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.36.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/0acc365e6340842bd62ef5146bb26fd3/civitai-app-sdk-0.36.0.tgz","_integrity":"sha512-L9X9RrSyuWZnwv6d3+lQ3ySCdKKycDXaBOAVgr1O0zb1B6Q/XamfpIYF//yqzgROz+TyTo6wZQy9S32IGy7U9w==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.17.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.36.0_1788024072652_0.40243819025656546","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"@civitai/app-sdk","version":"0.37.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.37.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"67430fd35e0a56dc3b95a458639db27abd1e9eb0","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.37.0.tgz","fileCount":72,"integrity":"sha512-x0uulFdoI3amgny9TVoFZ/77okRj7pX2gBC7f/SA3VX+JzKV1IuBLlhfwyV2JH8Rh/0FRNSyRV+eVJmAHeQgyQ==","signatures":[{"sig":"MEQCIAue1gRqWzvcOgxJVsFvzy8o72ehmRODTQOQUUsxDaJKAiAttUtBFL7VOhZx9bgzJFexGDive1vSWsiRCv1fOmvc2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":393837},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.37.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/a6c3041c5296b66e56932dd6757fe04f/civitai-app-sdk-0.37.0.tgz","_integrity":"sha512-x0uulFdoI3amgny9TVoFZ/77okRj7pX2gBC7f/SA3VX+JzKV1IuBLlhfwyV2JH8Rh/0FRNSyRV+eVJmAHeQgyQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.17.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.37.0_1788376404122_0.9980771500645453","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"@civitai/app-sdk","version":"0.38.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.38.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"c2ad090876ca77fe5d960e0e0fa38593c46ba03c","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.38.0.tgz","fileCount":72,"integrity":"sha512-ybmlmnol1IQqqYcAWDFb8mPMst8ldp1PlG+dtppwUeQINTBwy0SU8qgymTJmYI0ksiZdJHYeOBNpqouFMSWNfA==","signatures":[{"sig":"MEUCIAjDewS5H8Q6PiVCCU6X8lT4g78uqxoovIL5BrpfLjg1AiEAxfyNy+2Y3aYPuyorNeHB4WK3EOiNxB7Q9oniADD/Gk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.38.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":398838},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.38.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/bb3043a6785e746f8a379bace9d8e4f7/civitai-app-sdk-0.38.0.tgz","_integrity":"sha512-ybmlmnol1IQqqYcAWDFb8mPMst8ldp1PlG+dtppwUeQINTBwy0SU8qgymTJmYI0ksiZdJHYeOBNpqouFMSWNfA==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.38.0_1788805624643_0.5552124235074576","host":"s3://npm-registry-packages-npm-production"}},"0.39.0":{"name":"@civitai/app-sdk","version":"0.39.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.39.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"439fe2cbcefeafbabadef7504360c1d259f74255","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.39.0.tgz","fileCount":72,"integrity":"sha512-2+fTmLKTJTDFP1Ce0h/jGPXQRG9sAJYk9cOU4AMCUiDKIxSex6ssiqBjDrXCOvAP4Gc2QE9Cfolo+FRhvu61Yg==","signatures":[{"sig":"MEUCIQDuA3wn+nYcejH7Z2BrLNcpsr0uyu5rKuMV63YJC9mQsgIgeW+fp3RAhdzw2Xf4nUJS1n3UAQ7QZKEXs9VRHG/WCFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.39.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":407908},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.39.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/66aebb464dc4742dd56d7cf4f1ddcf3c/civitai-app-sdk-0.39.0.tgz","_integrity":"sha512-2+fTmLKTJTDFP1Ce0h/jGPXQRG9sAJYk9cOU4AMCUiDKIxSex6ssiqBjDrXCOvAP4Gc2QE9Cfolo+FRhvu61Yg==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.39.0_1788840530648_0.28321196965803574","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"@civitai/app-sdk","version":"0.40.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.40.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"889b433ebdada8b1a8a9d99fe92e4125a66f7bb0","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.40.0.tgz","fileCount":72,"integrity":"sha512-yzxdfso+Ht+psPdyqmyNKv/AMWpPRgaMVkhm7VNfEL/glPuqXBEnikfbVaQmDDCooIULwFcouvoOfTKlZhzBOg==","signatures":[{"sig":"MEUCIHPF62xzMpfwW/ztbdJeB0+XKvfWxJV3pG0b2+tY9P2KAiEArGGut3nAecol448GVet8F2+zpWX3E6sN+2gLaqHbFlY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCnIwSfpWRGe+MxQSA6pcKgfMUQSee6wwYiQGAKCYKiKwIgGiuV8oVF9AvxFMehsw/74GqIDqle3s9+6BEv270qoB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.40.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":416018},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.40.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/1cfa75b960dc9a1b04487a5c3f9a78af/civitai-app-sdk-0.40.0.tgz","_integrity":"sha512-yzxdfso+Ht+psPdyqmyNKv/AMWpPRgaMVkhm7VNfEL/glPuqXBEnikfbVaQmDDCooIULwFcouvoOfTKlZhzBOg==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.40.0_1789428254844_0.33358403328891395","host":"s3://npm-registry-packages-npm-production"}},"0.41.0":{"name":"@civitai/app-sdk","version":"0.41.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.41.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"dfd85252deae3ad663120e365397cb7440a40b3e","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.41.0.tgz","fileCount":76,"integrity":"sha512-N+PRe/jgMTINeFV9lf1fsHXK2w4DpJL9zCd4Wvdoe9IAO+mhmDa/LxqQEBSylmEyW0rK+Tvl1K5fwGrsRQn+Ew==","signatures":[{"sig":"MEQCIGqnIsVtA3PYcdYhs/IACT0zZMTOJS/1WUXHHXmSop2lAiB7qVvJdLlrVmqGDK2l/fKez9dcHqEyZqNDoa/kEkf39A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFpQ+u/36H3B1lno2H8zB1gFOc+9UGr+Fifv2f72dWVBAiAVXfjjf7GKNyp01sG2cs8KJhq8khGbCNObrZpkUJf6NQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.41.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":463317},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.41.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./orchestrator/steps":{"types":"./dist/orchestrator/steps.d.ts","import":"./dist/orchestrator/steps.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/e6a1380723075daac5d9ac94c394b2e3/civitai-app-sdk-0.41.0.tgz","_integrity":"sha512-N+PRe/jgMTINeFV9lf1fsHXK2w4DpJL9zCd4Wvdoe9IAO+mhmDa/LxqQEBSylmEyW0rK+Tvl1K5fwGrsRQn+Ew==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1","@civitai/client":"0.2.0-beta.98"},"peerDependencies":{"@civitai/client":"^0.2.0-beta.98"},"peerDependenciesMeta":{"@civitai/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.41.0_1789574351155_0.07517923844726959","host":"s3://npm-registry-packages-npm-production"},"comment-peerDependencies":["@civitai/client is consumed for TYPES ONLY, by `./orchestrator/steps`.","It is an OPTIONAL peer, never a dependency: `dependencies` is empty on","purpose (this package ships into sandboxed browser iframes and every app","inherits its install graph), and @civitai/client has no types-only entry","point -- it ships .d.ts beside .js in one package with a real runtime","(@hey-api/client-fetch, rfc6902, tslib). Optional-peer keeps that graph","out of every app that does not ask for the step types, and keeps the","version the APP's choice.","","🔴 THE PIN IS NOT `latest` AND MUST NOT BECOME IT. @civitai/client's npm","`latest` dist-tag is 0.1.1-beta.0; the version the orchestrator is","actually generated against ships under the `beta` tag (0.2.0-beta.98 as of","this writing -- cross-checked against what civitai/civitai resolves).","`pnpm add @civitai/client` therefore installs something ~97 betas behind","and MISSING MOST STEP TYPES, with no error. The range below deliberately","excludes 0.1.x: verify with","`semver.satisfies('0.1.1-beta.0', '^0.2.0-beta.98')` === false.","Install with the tag: `pnpm add -D @civitai/client@beta`."]},"0.42.0":{"name":"@civitai/app-sdk","version":"0.42.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.42.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"1f35b9f8a941cc24ebed5dd32afc5cb1785aa10e","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.42.0.tgz","fileCount":76,"integrity":"sha512-AzQAC0zdn9zF+7dW6ltirQo7+nsIsF8Xt/zidaGTjlGAPM2yFy8LTLQfEr84PTd92LY8DI1Fdtss8eldCYB33w==","signatures":[{"sig":"MEUCIDF1Vkk+nPSjCy1RdwLHIc2MJrfiSbDhfEbtKquSJmW3AiEAjRRX8Tudz+Z8unQbpRThg5ftlDu4oVHyoevj/5D1jSk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHr4MDfv4NpdPNK7Xj124CIY9/sYx3Zahb1lOCLRbnhjAiEAwcUNl1td8GBcjuE0Bq2p5yd4dD7o2NyMFlqIB8FH07E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.42.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":465223},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.42.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./orchestrator/steps":{"types":"./dist/orchestrator/steps.d.ts","import":"./dist/orchestrator/steps.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/9539de515d6c50d9509f69fecae1a113/civitai-app-sdk-0.42.0.tgz","_integrity":"sha512-AzQAC0zdn9zF+7dW6ltirQo7+nsIsF8Xt/zidaGTjlGAPM2yFy8LTLQfEr84PTd92LY8DI1Fdtss8eldCYB33w==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1","@civitai/client":"0.2.0-beta.98"},"peerDependencies":{"@civitai/client":"^0.2.0-beta.98"},"peerDependenciesMeta":{"@civitai/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.42.0_1789661685880_0.5381974797045435","host":"s3://npm-registry-packages-npm-production"},"comment-peerDependencies":["@civitai/client is consumed for TYPES ONLY, by `./orchestrator/steps`.","It is an OPTIONAL peer, never a dependency: `dependencies` is empty on","purpose (this package ships into sandboxed browser iframes and every app","inherits its install graph), and @civitai/client has no types-only entry","point -- it ships .d.ts beside .js in one package with a real runtime","(@hey-api/client-fetch, rfc6902, tslib). Optional-peer keeps that graph","out of every app that does not ask for the step types, and keeps the","version the APP's choice.","","🔴 THE PIN IS NOT `latest` AND MUST NOT BECOME IT. @civitai/client's npm","`latest` dist-tag is 0.1.1-beta.0; the version the orchestrator is","actually generated against ships under the `beta` tag (0.2.0-beta.98 as of","this writing -- cross-checked against what civitai/civitai resolves).","`pnpm add @civitai/client` therefore installs something ~97 betas behind","and MISSING MOST STEP TYPES, with no error. The range below deliberately","excludes 0.1.x: verify with","`semver.satisfies('0.1.1-beta.0', '^0.2.0-beta.98')` === false.","Install with the tag: `pnpm add -D @civitai/client@beta`."]},"0.43.0":{"name":"@civitai/app-sdk","version":"0.43.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.43.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"c93039ce40528e326871bfa4157bbbb0a551ab62","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.43.0.tgz","fileCount":76,"integrity":"sha512-nZy8qpZNmBc1I4FY41XF0PkgZhWj/q97GRC6nOKgb1nfKFmfmtuKN2V7UvgKRt6UVLlokCK5pmDPb/eUPKF5/A==","signatures":[{"sig":"MEUCIQCOjYs1wg/ex++PemekOQsqjrxl/6w/3E6rJU2HKyY+OAIgRwxitoU/F5IIK03SaIhtTqfagneEgF0YwC/L1iPDUc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEmoWyOJCx5F/yyOdaaDcU08HuCqOxZPz1djF8TdM8hxAiEAlCKsX7sSjcrzrtUwk/XK/WOEbY6UV6xt2tiX3X3jpFE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.43.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":474384},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.43.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./orchestrator/steps":{"types":"./dist/orchestrator/steps.d.ts","import":"./dist/orchestrator/steps.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/ed5bcf7a1d09d76f539f2ff756434c62/civitai-app-sdk-0.43.0.tgz","_integrity":"sha512-nZy8qpZNmBc1I4FY41XF0PkgZhWj/q97GRC6nOKgb1nfKFmfmtuKN2V7UvgKRt6UVLlokCK5pmDPb/eUPKF5/A==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1","@civitai/client":"0.2.0-beta.98"},"peerDependencies":{"@civitai/client":"^0.2.0-beta.98"},"peerDependenciesMeta":{"@civitai/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.43.0_1789752821607_0.9097586708541532","host":"s3://npm-registry-packages-npm-production"},"comment-peerDependencies":["@civitai/client is consumed for TYPES ONLY, by `./orchestrator/steps`.","It is an OPTIONAL peer, never a dependency: `dependencies` is empty on","purpose (this package ships into sandboxed browser iframes and every app","inherits its install graph), and @civitai/client has no types-only entry","point -- it ships .d.ts beside .js in one package with a real runtime","(@hey-api/client-fetch, rfc6902, tslib). Optional-peer keeps that graph","out of every app that does not ask for the step types, and keeps the","version the APP's choice.","","🔴 THE PIN IS NOT `latest` AND MUST NOT BECOME IT. @civitai/client's npm","`latest` dist-tag is 0.1.1-beta.0; the version the orchestrator is","actually generated against ships under the `beta` tag (0.2.0-beta.98 as of","this writing -- cross-checked against what civitai/civitai resolves).","`pnpm add @civitai/client` therefore installs something ~97 betas behind","and MISSING MOST STEP TYPES, with no error. The range below deliberately","excludes 0.1.x: verify with","`semver.satisfies('0.1.1-beta.0', '^0.2.0-beta.98')` === false.","Install with the tag: `pnpm add -D @civitai/client@beta`."]},"0.44.0":{"name":"@civitai/app-sdk","version":"0.44.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.44.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"6be005d80e4546c2da44ed57922daa9c4d7ba7a1","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.44.0.tgz","fileCount":76,"integrity":"sha512-9cAw9MJdGcDYefwlBPotpB4ocNmAYfYphWZ7mtX/oDifcF3Z5yyy3+GkHm5PVWSizWp0TVYytBbGFrbeGnXWJQ==","signatures":[{"sig":"MEQCIGiZmzsXi+QSXdRSjifE4M/zVBMFbcAftUK/zj7RXFMFAiB/yeFkzl+R6oXjzVjEeqn7ZKmI8/MZQ3D+Ryb+2UpFMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICwlmUXJZTWepnVt2tKj8+Pu0w2f5WEXcWqnxEJAySzyAiEAlCTlwFAEbU1zrFC/0CpKZ1TX0z0RAIXBEYoTLo+cN58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.44.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":477798},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.44.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./orchestrator/steps":{"types":"./dist/orchestrator/steps.d.ts","import":"./dist/orchestrator/steps.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/4d4adc09312a9c58ae04e8c97ebb94a1/civitai-app-sdk-0.44.0.tgz","_integrity":"sha512-9cAw9MJdGcDYefwlBPotpB4ocNmAYfYphWZ7mtX/oDifcF3Z5yyy3+GkHm5PVWSizWp0TVYytBbGFrbeGnXWJQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1","@civitai/client":"0.2.0-beta.98"},"peerDependencies":{"@civitai/client":"^0.2.0-beta.98"},"peerDependenciesMeta":{"@civitai/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.44.0_1789796955369_0.8148738936571209","host":"s3://npm-registry-packages-npm-production"},"comment-peerDependencies":["@civitai/client is consumed for TYPES ONLY, by `./orchestrator/steps`.","It is an OPTIONAL peer, never a dependency: `dependencies` is empty on","purpose (this package ships into sandboxed browser iframes and every app","inherits its install graph), and @civitai/client has no types-only entry","point -- it ships .d.ts beside .js in one package with a real runtime","(@hey-api/client-fetch, rfc6902, tslib). Optional-peer keeps that graph","out of every app that does not ask for the step types, and keeps the","version the APP's choice.","","🔴 THE PIN IS NOT `latest` AND MUST NOT BECOME IT. @civitai/client's npm","`latest` dist-tag is 0.1.1-beta.0; the version the orchestrator is","actually generated against ships under the `beta` tag (0.2.0-beta.98 as of","this writing -- cross-checked against what civitai/civitai resolves).","`pnpm add @civitai/client` therefore installs something ~97 betas behind","and MISSING MOST STEP TYPES, with no error. The range below deliberately","excludes 0.1.x: verify with","`semver.satisfies('0.1.1-beta.0', '^0.2.0-beta.98')` === false.","Install with the tag: `pnpm add -D @civitai/client@beta`."]},"0.45.0":{"name":"@civitai/app-sdk","version":"0.45.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.45.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"246ec638681e0b03ef2ad74e339abebb38f72182","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.45.0.tgz","fileCount":76,"integrity":"sha512-xsiUxNAIwj4JznZP7rwr5Kp1oXUKDF6XaJIxdbxZLdqH+zwj5dYxC12WiSJL22z0JCTVMW0SGNWLKKzCsXYIzw==","signatures":[{"sig":"MEYCIQCP3KIc45N4PtMTMtE2EYwoL4chiTuAuGyUDNuWUEYtIgIhAOhJh9FPzDmmLx8gvJ9+uXl7ea7pcti1sTf/PGlmkEfu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC+hvFBecG3PmRskDrx5Y5ta3Pq2LpaEyF+jvPvr98i3gIgG9Frm1QrFPXLC0zOx990Vd4UdHuO5nx7awlT8zPUHhc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.45.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":490217},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.45.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./orchestrator/steps":{"types":"./dist/orchestrator/steps.d.ts","import":"./dist/orchestrator/steps.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/01c241985d54f79075ed9d85048d9cac/civitai-app-sdk-0.45.0.tgz","_integrity":"sha512-xsiUxNAIwj4JznZP7rwr5Kp1oXUKDF6XaJIxdbxZLdqH+zwj5dYxC12WiSJL22z0JCTVMW0SGNWLKKzCsXYIzw==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1","@civitai/client":"0.2.0-beta.98"},"peerDependencies":{"@civitai/client":"^0.2.0-beta.98"},"peerDependenciesMeta":{"@civitai/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.45.0_1789844624313_0.8592125241186661","host":"s3://npm-registry-packages-npm-production"},"comment-peerDependencies":["@civitai/client is consumed for TYPES ONLY, by `./orchestrator/steps`.","It is an OPTIONAL peer, never a dependency: `dependencies` is empty on","purpose (this package ships into sandboxed browser iframes and every app","inherits its install graph), and @civitai/client has no types-only entry","point -- it ships .d.ts beside .js in one package with a real runtime","(@hey-api/client-fetch, rfc6902, tslib). Optional-peer keeps that graph","out of every app that does not ask for the step types, and keeps the","version the APP's choice.","","🔴 THE PIN IS NOT `latest` AND MUST NOT BECOME IT. @civitai/client's npm","`latest` dist-tag is 0.1.1-beta.0; the version the orchestrator is","actually generated against ships under the `beta` tag (0.2.0-beta.98 as of","this writing -- cross-checked against what civitai/civitai resolves).","`pnpm add @civitai/client` therefore installs something ~97 betas behind","and MISSING MOST STEP TYPES, with no error. The range below deliberately","excludes 0.1.x: verify with","`semver.satisfies('0.1.1-beta.0', '^0.2.0-beta.98')` === false.","Install with the tag: `pnpm add -D @civitai/client@beta`."]},"0.46.0":{"name":"@civitai/app-sdk","version":"0.46.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.46.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"bc15edc6f2f6ae1922ffa99191694c3ca7c062de","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.46.0.tgz","fileCount":76,"integrity":"sha512-7fR9bTJDzTwsiGZshTWNCfshCYSmrZ13wMfGhQfatgUJuElo1IMv3nSjhwLPhEOe29WszAV1WmL+iDpjxKCiiA==","signatures":[{"sig":"MEQCIG3TvBqn7wCOKnILkrPFtCTsGNkp6gQFVcI9QH/LPXuUAiBjh5Af3+JaAOYKnrPCsRwvJ/hVbVQutkHk8ejYqUGV+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAGaEw1ipxQHdoV+v2/3tv22v9KKaRIcSAh/UmVvwnPuAiEA0sbMVtN5k+LEBpNK0xiaTTB64E6Vfl9TVOBLH4Hf414=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.46.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":493269},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.46.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./orchestrator/steps":{"types":"./dist/orchestrator/steps.d.ts","import":"./dist/orchestrator/steps.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/1a4def1ac31008103638a61916880359/civitai-app-sdk-0.46.0.tgz","_integrity":"sha512-7fR9bTJDzTwsiGZshTWNCfshCYSmrZ13wMfGhQfatgUJuElo1IMv3nSjhwLPhEOe29WszAV1WmL+iDpjxKCiiA==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1","@civitai/client":"0.2.0-beta.98"},"peerDependencies":{"@civitai/client":"^0.2.0-beta.98"},"peerDependenciesMeta":{"@civitai/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.46.0_1789870804836_0.7648379786393844","host":"s3://npm-registry-packages-npm-production"},"comment-peerDependencies":["@civitai/client is consumed for TYPES ONLY, by `./orchestrator/steps`.","It is an OPTIONAL peer, never a dependency: `dependencies` is empty on","purpose (this package ships into sandboxed browser iframes and every app","inherits its install graph), and @civitai/client has no types-only entry","point -- it ships .d.ts beside .js in one package with a real runtime","(@hey-api/client-fetch, rfc6902, tslib). Optional-peer keeps that graph","out of every app that does not ask for the step types, and keeps the","version the APP's choice.","","🔴 THE PIN IS NOT `latest` AND MUST NOT BECOME IT. @civitai/client's npm","`latest` dist-tag is 0.1.1-beta.0; the version the orchestrator is","actually generated against ships under the `beta` tag (0.2.0-beta.98 as of","this writing -- cross-checked against what civitai/civitai resolves).","`pnpm add @civitai/client` therefore installs something ~97 betas behind","and MISSING MOST STEP TYPES, with no error. The range below deliberately","excludes 0.1.x: verify with","`semver.satisfies('0.1.1-beta.0', '^0.2.0-beta.98')` === false.","Install with the tag: `pnpm add -D @civitai/client@beta`."]},"0.47.0":{"name":"@civitai/app-sdk","version":"0.47.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.47.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"e93767a9ed8bcb19da772b95f09ba671fcb38a64","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.47.0.tgz","fileCount":80,"integrity":"sha512-x4rhntPL+vT7+7gQysi25S1NKLHC0nQxcvhtbHrqmejQpYTcJ05b4xLMYZInnEP8uyees+iAcvUsTtiVEBnmWw==","signatures":[{"sig":"MEYCIQCGvvnqovM92fn4T7GZC/vKBqlJeiB8pz8CFhW0gKaqxAIhAM5CpV4DOpfQEzUdDSMzKJQNxqK2kpxOLvHcLnQpAXE0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDdHzuLQRoXpEmVENa8YdouUL2NvNB/WzXU7EUZ9YdQVAiEA7J0VLoDda5Q8G/ByEuEkcBN0tkwiJpXNHm0NnWiZB7k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.47.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":526126},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.47.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./orchestrator/steps":{"types":"./dist/orchestrator/steps.d.ts","import":"./dist/orchestrator/steps.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/31496af27a245148d1e77d9d15fd5065/civitai-app-sdk-0.47.0.tgz","_integrity":"sha512-x4rhntPL+vT7+7gQysi25S1NKLHC0nQxcvhtbHrqmejQpYTcJ05b4xLMYZInnEP8uyees+iAcvUsTtiVEBnmWw==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1","@civitai/client":"0.2.0-beta.98"},"peerDependencies":{"@civitai/client":"^0.2.0-beta.98"},"peerDependenciesMeta":{"@civitai/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.47.0_1789923983019_0.07350097700769442","host":"s3://npm-registry-packages-npm-production"},"comment-peerDependencies":["@civitai/client is consumed for TYPES ONLY, by `./orchestrator/steps`.","It is an OPTIONAL peer, never a dependency: `dependencies` is empty on","purpose (this package ships into sandboxed browser iframes and every app","inherits its install graph), and @civitai/client has no types-only entry","point -- it ships .d.ts beside .js in one package with a real runtime","(@hey-api/client-fetch, rfc6902, tslib). Optional-peer keeps that graph","out of every app that does not ask for the step types, and keeps the","version the APP's choice.","","🔴 THE PIN IS NOT `latest` AND MUST NOT BECOME IT. @civitai/client's npm","`latest` dist-tag is 0.1.1-beta.0; the version the orchestrator is","actually generated against ships under the `beta` tag (0.2.0-beta.98 as of","this writing -- cross-checked against what civitai/civitai resolves).","`pnpm add @civitai/client` therefore installs something ~97 betas behind","and MISSING MOST STEP TYPES, with no error. The range below deliberately","excludes 0.1.x: verify with","`semver.satisfies('0.1.1-beta.0', '^0.2.0-beta.98')` === false.","Install with the tag: `pnpm add -D @civitai/client@beta`."]},"0.48.0":{"name":"@civitai/app-sdk","version":"0.48.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.48.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"f06cc34c230aec8693d97a0624a760345252a62d","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.48.0.tgz","fileCount":92,"integrity":"sha512-P82A4Q7DU2vda0YB0arJl+JTcuHD15vO4F1NbddwaSEBmYdPBnk6IQ4lh4X308YZwjSaidB9sSohtD1ZnhA3Ig==","signatures":[{"sig":"MEYCIQD7C3gaaM3JvGUASS5UrekcTRmJKN61t9U3MCzBz6dpngIhALQ5ypALf1MOPMPqK5hk320bBHtOzWpUroA9mKIeVerl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDoDorKRQ68/tLrVfydNuYzZuN9I+imMQM1EX+UK/JmhwIhAJm0LOweh32018ws9YyEfvKYyTTkSGFNV+kBukD+4C2q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.48.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":556225},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.48.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","import":"./dist/manifest/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./orchestrator/steps":{"types":"./dist/orchestrator/steps.d.ts","import":"./dist/orchestrator/steps.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:exports":"node scripts/check-exports.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/1c73781b64b8ef87e850c22f8554d117/civitai-app-sdk-0.48.0.tgz","_integrity":"sha512-P82A4Q7DU2vda0YB0arJl+JTcuHD15vO4F1NbddwaSEBmYdPBnk6IQ4lh4X308YZwjSaidB9sSohtD1ZnhA3Ig==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^8.0.14","vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1","@civitai/client":"0.2.0-beta.98"},"peerDependencies":{"ajv":"^8.17.1","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","@civitai/client":"^0.2.0-beta.98"},"peerDependenciesMeta":{"ajv":{"optional":true},"vite":{"optional":true},"@civitai/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.48.0_1789939548428_0.0038837979828556524","host":"s3://npm-registry-packages-npm-production"},"comment-peerDependencies":["@civitai/client is consumed for TYPES ONLY, by `./orchestrator/steps`.","It is an OPTIONAL peer, never a dependency: `dependencies` is empty on","purpose (this package ships into sandboxed browser iframes and every app","inherits its install graph), and @civitai/client has no types-only entry","point -- it ships .d.ts beside .js in one package with a real runtime","(@hey-api/client-fetch, rfc6902, tslib). Optional-peer keeps that graph","out of every app that does not ask for the step types, and keeps the","version the APP's choice.","","🔴 THE PIN IS NOT `latest` AND MUST NOT BECOME IT. @civitai/client's npm","`latest` dist-tag is 0.1.1-beta.0; the version the orchestrator is","actually generated against ships under the `beta` tag (0.2.0-beta.98 as of","this writing -- cross-checked against what civitai/civitai resolves).","`pnpm add @civitai/client` therefore installs something ~97 betas behind","and MISSING MOST STEP TYPES, with no error. The range below deliberately","excludes 0.1.x: verify with","`semver.satisfies('0.1.1-beta.0', '^0.2.0-beta.98')` === false.","Install with the tag: `pnpm add -D @civitai/client@beta`."],"comment-peerDependencies-ajv-vite":["ajv and vite are OPTIONAL peers of the NODE-ONLY subpaths added when #330","was closed: `./manifest` (defineBlock) and `./vite` (blockManifestPlugin).","","`dependencies` stays EMPTY for the same reason it always has: this package","ships into sandboxed browser iframes and every app inherits its install","graph. A build-time JSON-Schema engine has no business in that graph, so","ajv is a peer a scaffold opts into: `pnpm add -D ajv`.","","ajv: a VALUE import (`ajv/dist/2020.js`, the draft 2020-12 entry — the","canonical schema declares $schema draft/2020-12, so the default `ajv`","entry point would refuse to compile it). FLOOR ^8.17.1: `ajv/dist/2020`","has existed since 8.6.0, but 8.17.x is what this repo builds and tests","against, and 8.x is a single major so the caret admits every later 8.","","vite: TYPES ONLY (`import type { Plugin }`). Nothing is value-imported, so","there is no module-evaluation failure mode -- only a typecheck one. The","range spans 5-8 because `Plugin.configResolved(config)` (the one member","`./vite` reads) has been stable across all of them; this repo builds and","tests against vite 8, which is what every scaffold pins."]},"0.49.0":{"name":"@civitai/app-sdk","version":"0.49.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.49.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"2399019d38312465b331a500955191d27165a288","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.49.0.tgz","fileCount":96,"integrity":"sha512-wDSVm17z0flWcqce2n/820JfgAGuRuU4JWFUE5KSC/LSsUNsD+yPP0kCG23oR5eSS0/URGmqfkjPBH6nMVGOYQ==","signatures":[{"sig":"MEYCIQC0IYhVPYaA65Nx0BjhLBm/xEwiGKMzLGvkemcY9Vuj6wIhAOPHOBOEOGiB7xPl9bhNYmB/LNKfqm6rnc/pv4kqzatQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDN41Rr1c0uJeU08q5KrPXGTEw45EYXAEngIyJOvgpp5QIgXtxtRxmgMlCFOAkQFYqTT1YsK/iSmtAfe3T8BoPzPmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.49.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":610887},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.49.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","import":"./dist/manifest/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./orchestrator/steps":{"types":"./dist/orchestrator/steps.d.ts","import":"./dist/orchestrator/steps.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:exports":"node scripts/check-exports.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/93de4f8d23b31cbe67030f74088f98af/civitai-app-sdk-0.49.0.tgz","_integrity":"sha512-wDSVm17z0flWcqce2n/820JfgAGuRuU4JWFUE5KSC/LSsUNsD+yPP0kCG23oR5eSS0/URGmqfkjPBH6nMVGOYQ==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^8.0.14","vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1","@civitai/client":"0.2.0-beta.98"},"peerDependencies":{"ajv":"^8.17.1","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","@civitai/client":"^0.2.0-beta.98"},"peerDependenciesMeta":{"ajv":{"optional":true},"vite":{"optional":true},"@civitai/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.49.0_1790004812398_0.7218119747816549","host":"s3://npm-registry-packages-npm-production"},"comment-peerDependencies":["@civitai/client is consumed for TYPES ONLY, by `./orchestrator/steps`.","It is an OPTIONAL peer, never a dependency: `dependencies` is empty on","purpose (this package ships into sandboxed browser iframes and every app","inherits its install graph), and @civitai/client has no types-only entry","point -- it ships .d.ts beside .js in one package with a real runtime","(@hey-api/client-fetch, rfc6902, tslib). Optional-peer keeps that graph","out of every app that does not ask for the step types, and keeps the","version the APP's choice.","","🔴 THE PIN IS NOT `latest` AND MUST NOT BECOME IT. @civitai/client's npm","`latest` dist-tag is 0.1.1-beta.0; the version the orchestrator is","actually generated against ships under the `beta` tag (0.2.0-beta.98 as of","this writing -- cross-checked against what civitai/civitai resolves).","`pnpm add @civitai/client` therefore installs something ~97 betas behind","and MISSING MOST STEP TYPES, with no error. The range below deliberately","excludes 0.1.x: verify with","`semver.satisfies('0.1.1-beta.0', '^0.2.0-beta.98')` === false.","Install with the tag: `pnpm add -D @civitai/client@beta`."],"comment-peerDependencies-ajv-vite":["ajv and vite are OPTIONAL peers of the NODE-ONLY subpaths added when #330","was closed: `./manifest` (defineBlock) and `./vite` (blockManifestPlugin).","","`dependencies` stays EMPTY for the same reason it always has: this package","ships into sandboxed browser iframes and every app inherits its install","graph. A build-time JSON-Schema engine has no business in that graph, so","ajv is a peer a scaffold opts into: `pnpm add -D ajv`.","","ajv: a VALUE import (`ajv/dist/2020.js`, the draft 2020-12 entry — the","canonical schema declares $schema draft/2020-12, so the default `ajv`","entry point would refuse to compile it). FLOOR ^8.17.1: `ajv/dist/2020`","has existed since 8.6.0, but 8.17.x is what this repo builds and tests","against, and 8.x is a single major so the caret admits every later 8.","","vite: TYPES ONLY (`import type { Plugin }`). Nothing is value-imported, so","there is no module-evaluation failure mode -- only a typecheck one. The","range spans 5-8 because `Plugin.configResolved(config)` (the one member","`./vite` reads) has been stable across all of them; this repo builds and","tests against vite 8, which is what every scaffold pins."]},"0.50.0":{"name":"@civitai/app-sdk","version":"0.50.0","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"license":"MIT","_id":"@civitai/app-sdk@0.50.0","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"d80c5ad185478114d72e432a3f07133c3b428882","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.50.0.tgz","fileCount":50,"integrity":"sha512-NQ0+rIiJ7+tSkXysNt4VMs5OjhItjJiBUZ64aAwX+Ioplr2PzEJi+f42UCt/8I760A173PsH1sIZBJ4FjYGC6w==","signatures":[{"sig":"MEQCIB395I5hFGtKgR89Q6NH4Fr9M2QxE8UQJUFEpaLX6Kb+AiBbJMQakXwYqQTQhsM5MjcxlaE2S38xm79UTaWKkJJF/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC4PHzi9WS2Wneo3urfXuqppO0xeU4g6TLmC9IqUo//xQIhAMDbjDzs4qFmgMKrtxl6Wn0E4n6vAJl/jgd14oZGlpUi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.50.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":519173},"main":"./dist/index.js","type":"module","_from":"file:civitai-app-sdk-0.50.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","import":"./dist/manifest/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./orchestrator/steps":{"types":"./dist/orchestrator/steps.d.ts","import":"./dist/orchestrator/steps.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:exports":"node scripts/check-exports.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"_resolved":"/tmp/135f7f7fab0757aff65b3648fd00be54/civitai-app-sdk-0.50.0.tgz","_integrity":"sha512-NQ0+rIiJ7+tSkXysNt4VMs5OjhItjJiBUZ64aAwX+Ioplr2PzEJi+f42UCt/8I760A173PsH1sIZBJ4FjYGC6w==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.20.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^8.0.14","vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1","@civitai/client":"0.2.0-beta.98"},"peerDependencies":{"ajv":"^8.17.1","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","@civitai/client":"^0.2.0-beta.98"},"comment-packaging":"`!dist/**/*.map` keeps dangling sourcemaps out of the tarball (#376). Rationale: scripts/check-shipped-sourcemaps.mjs.","peerDependenciesMeta":{"ajv":{"optional":true},"vite":{"optional":true},"@civitai/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/app-sdk_0.50.0_1790110723274_0.07682028049765321","host":"s3://npm-registry-packages-npm-production"},"comment-peerDependencies":["@civitai/client is consumed for TYPES ONLY, by `./orchestrator/steps`.","It is an OPTIONAL peer, never a dependency: `dependencies` is empty on","purpose (this package ships into sandboxed browser iframes and every app","inherits its install graph), and @civitai/client has no types-only entry","point -- it ships .d.ts beside .js in one package with a real runtime","(@hey-api/client-fetch, rfc6902, tslib). Optional-peer keeps that graph","out of every app that does not ask for the step types, and keeps the","version the APP's choice.","","🔴 THE PIN IS NOT `latest` AND MUST NOT BECOME IT. @civitai/client's npm","`latest` dist-tag is 0.1.1-beta.0; the version the orchestrator is","actually generated against ships under the `beta` tag (0.2.0-beta.98 as of","this writing -- cross-checked against what civitai/civitai resolves).","`pnpm add @civitai/client` therefore installs something ~97 betas behind","and MISSING MOST STEP TYPES, with no error. The range below deliberately","excludes 0.1.x: verify with","`semver.satisfies('0.1.1-beta.0', '^0.2.0-beta.98')` === false.","Install with the tag: `pnpm add -D @civitai/client@beta`."],"comment-peerDependencies-ajv-vite":["ajv and vite are OPTIONAL peers of the NODE-ONLY subpaths added when #330","was closed: `./manifest` (defineBlock) and `./vite` (blockManifestPlugin).","","`dependencies` stays EMPTY for the same reason it always has: this package","ships into sandboxed browser iframes and every app inherits its install","graph. A build-time JSON-Schema engine has no business in that graph, so","ajv is a peer a scaffold opts into: `pnpm add -D ajv`.","","ajv: a VALUE import (`ajv/dist/2020.js`, the draft 2020-12 entry — the","canonical schema declares $schema draft/2020-12, so the default `ajv`","entry point would refuse to compile it). FLOOR ^8.17.1: `ajv/dist/2020`","has existed since 8.6.0, but 8.17.x is what this repo builds and tests","against, and 8.x is a single major so the caret admits every later 8.","","vite: TYPES ONLY (`import type { Plugin }`). Nothing is value-imported, so","there is no module-evaluation failure mode -- only a typecheck one. The","range spans 5-8 because `Plugin.configResolved(config)` (the one member","`./vite` reads) has been stable across all of them; this repo builds and","tests against vite 8, which is what every scaffold pins."]},"0.51.0":{"_id":"@civitai/app-sdk@0.51.0","bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"dist":{"shasum":"8033109059a2749a88fa5de21e79e8bcbe36a096","tarball":"https://registry.npmjs.org/@civitai/app-sdk/-/app-sdk-0.51.0.tgz","fileCount":50,"integrity":"sha512-xtZQbGJON96FuIrLpV2/p4U/N+6zB9hbUbkvDnXSyxmAsy9yU/S20gX0nWSTET9a93XvDTQrtSDzE1vjwiXb5g==","signatures":[{"sig":"MEUCIGxkbaHGCVHK4AgkSRYKvTybdfcS63nx12kFdZWOQPyeAiEAz5SEth7RdWCxLR63uzYzs6xzDHmg1fPfznxGIxekZtk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAuQPeyIYJshFlojdNPYL0TXe2jP/TJFIPMTaZqSRIhLAiBlYkr4QUpG1mN3MhwvBvhMfLcGb003pJuYyiiW5l9WGA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civitai%2fapp-sdk@0.51.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":520149},"main":"./dist/index.js","name":"@civitai/app-sdk","type":"module","_from":"file:civitai-app-sdk-0.51.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./oauth":{"types":"./dist/oauth/index.d.ts","import":"./dist/oauth/index.js"},"./blocks":{"types":"./dist/blocks/index.d.ts","import":"./dist/blocks/index.js"},"./scopes":{"types":"./dist/scopes/index.d.ts","import":"./dist/scopes/index.js"},"./cookies":{"types":"./dist/cookies/index.d.ts","import":"./dist/cookies/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","import":"./dist/manifest/index.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator/index.js"},"./safe-storage":{"types":"./dist/safe-storage/index.d.ts","import":"./dist/safe-storage/index.js"},"./orchestrator/steps":{"types":"./dist/orchestrator/steps.d.ts","import":"./dist/orchestrator/steps.js"},"./schemas/app-block/v1.json":"./schemas/app-block/v1.json"},"license":"MIT","scripts":{"test":"vitest run && tsc -p tsconfig.typecheck.json","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:exports":"node scripts/check-exports.mjs"},"version":"0.51.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5785e1e4-3287-4bb1-9e7b-03f77b2aa2c7"}},"homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"_resolved":"/tmp/065f3ddaf227509aac5a68375b4eeab8/civitai-app-sdk-0.51.0.tgz","_integrity":"sha512-xtZQbGJON96FuIrLpV2/p4U/N+6zB9hbUbkvDnXSyxmAsy9yU/S20gX0nWSTET9a93XvDTQrtSDzE1vjwiXb5g==","repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"_npmVersion":"11.19.0","description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","directories":{},"maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"sideEffects":["./dist/safe-storage/index.js","./dist/blocks/index.js"],"_nodeVersion":"24.21.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^8.0.14","vitest":"^4.1.11","typescript":"^5.9.2","@types/node":"^25.9.1","@civitai/client":"0.2.0-beta.98"},"peerDependencies":{"ajv":"^8.17.1","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","@civitai/client":"^0.2.0-beta.98"},"comment-packaging":"`!dist/**/*.map` keeps dangling sourcemaps out of the tarball (#376). Rationale: scripts/check-shipped-sourcemaps.mjs.","peerDependenciesMeta":{"ajv":{"optional":true},"vite":{"optional":true},"@civitai/client":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/app-sdk_0.51.0_1790282350805_0.7127992986315639"},"comment-peerDependencies":["@civitai/client is consumed for TYPES ONLY, by `./orchestrator/steps`.","It is an OPTIONAL peer, never a dependency: `dependencies` is empty on","purpose (this package ships into sandboxed browser iframes and every app","inherits its install graph), and @civitai/client has no types-only entry","point -- it ships .d.ts beside .js in one package with a real runtime","(@hey-api/client-fetch, rfc6902, tslib). Optional-peer keeps that graph","out of every app that does not ask for the step types, and keeps the","version the APP's choice.","","🔴 THE PIN IS NOT `latest` AND MUST NOT BECOME IT. @civitai/client's npm","`latest` dist-tag is 0.1.1-beta.0; the version the orchestrator is","actually generated against ships under the `beta` tag (0.2.0-beta.98 as of","this writing -- cross-checked against what civitai/civitai resolves).","`pnpm add @civitai/client` therefore installs something ~97 betas behind","and MISSING MOST STEP TYPES, with no error. The range below deliberately","excludes 0.1.x: verify with","`semver.satisfies('0.1.1-beta.0', '^0.2.0-beta.98')` === false.","Install with the tag: `pnpm add -D @civitai/client@beta`."],"comment-peerDependencies-ajv-vite":["ajv and vite are OPTIONAL peers of the NODE-ONLY subpaths added when #330","was closed: `./manifest` (defineBlock) and `./vite` (blockManifestPlugin).","","`dependencies` stays EMPTY for the same reason it always has: this package","ships into sandboxed browser iframes and every app inherits its install","graph. A build-time JSON-Schema engine has no business in that graph, so","ajv is a peer a scaffold opts into: `pnpm add -D ajv`.","","ajv: a VALUE import (`ajv/dist/2020.js`, the draft 2020-12 entry — the","canonical schema declares $schema draft/2020-12, so the default `ajv`","entry point would refuse to compile it). FLOOR ^8.17.1: `ajv/dist/2020`","has existed since 8.6.0, but 8.17.x is what this repo builds and tests","against, and 8.x is a single major so the caret admits every later 8.","","vite: TYPES ONLY (`import type { Plugin }`). Nothing is value-imported, so","there is no module-evaluation failure mode -- only a typecheck one. The","range spans 5-8 because `Plugin.configResolved(config)` (the one member","`./vite` reads) has been stable across all of them; this repo builds and","tests against vite 8, which is what every scaffold pins."]}},"time":{"created":"2026-05-20T02:27:57.968Z","modified":"2026-09-24T20:39:11.289Z","0.1.0":"2026-05-20T02:27:58.266Z","0.6.0":"2026-05-27T15:55:09.490Z","0.7.0":"2026-06-01T20:11:08.891Z","0.8.0":"2026-06-03T00:03:44.900Z","0.8.1":"2026-06-14T17:38:18.405Z","0.9.0":"2026-06-17T19:45:53.006Z","0.10.0":"2026-06-19T14:45:34.608Z","0.11.0":"2026-06-19T18:07:55.441Z","0.12.0":"2026-06-19T19:09:40.448Z","0.13.0":"2026-06-21T20:30:59.978Z","0.13.1":"2026-06-23T15:34:51.308Z","0.14.0":"2026-07-02T16:34:08.097Z","0.15.0":"2026-07-09T15:47:43.136Z","0.16.0":"2026-07-13T18:29:48.400Z","0.17.0":"2026-07-13T22:04:58.937Z","0.18.0":"2026-07-15T16:12:25.759Z","0.19.0":"2026-07-15T19:40:24.550Z","0.20.0":"2026-07-15T22:10:56.076Z","0.21.0":"2026-07-16T00:02:01.369Z","0.22.0":"2026-07-16T01:09:55.036Z","0.23.0":"2026-07-16T02:33:48.568Z","0.24.0":"2026-07-16T17:32:41.971Z","0.24.1":"2026-07-16T19:58:16.583Z","0.25.0":"2026-07-16T21:37:36.398Z","0.25.1":"2026-07-17T18:14:30.428Z","0.26.0":"2026-07-17T23:57:29.353Z","0.27.0":"2026-07-28T20:16:09.903Z","0.28.0":"2026-07-29T02:02:58.327Z","0.29.0":"2026-08-03T20:15:46.111Z","0.30.0":"2026-08-03T22:13:07.383Z","0.31.0":"2026-08-05T03:54:46.421Z","0.32.0":"2026-08-12T22:58:03.299Z","0.33.0":"2026-08-12T23:12:41.733Z","0.34.0":"2026-08-13T21:09:55.092Z","0.35.0":"2026-08-15T04:37:55.072Z","0.36.0":"2026-08-29T17:21:12.816Z","0.37.0":"2026-09-02T19:13:24.318Z","0.38.0":"2026-09-07T18:27:04.793Z","0.39.0":"2026-09-08T04:08:50.787Z","0.40.0":"2026-09-14T23:24:14.953Z","0.41.0":"2026-09-16T15:59:11.292Z","0.42.0":"2026-09-17T16:14:45.979Z","0.43.0":"2026-09-18T17:33:41.704Z","0.44.0":"2026-09-19T05:49:15.466Z","0.45.0":"2026-09-19T19:03:44.433Z","0.46.0":"2026-09-20T02:20:04.927Z","0.47.0":"2026-09-20T17:06:23.123Z","0.48.0":"2026-09-20T21:25:48.511Z","0.49.0":"2026-09-21T15:33:32.487Z","0.50.0":"2026-09-22T20:58:43.366Z","0.51.0":"2026-09-24T20:39:10.941Z"},"bugs":{"url":"https://github.com/civitai/civitai-app-starters/issues"},"license":"MIT","homepage":"https://github.com/civitai/civitai-app-starters/tree/main/packages/civitai-app-sdk#readme","keywords":["civitai","oauth","pkce","sdk","orchestrator","ai","generation","session","encrypted-cookie"],"repository":{"url":"git+https://github.com/civitai/civitai-app-starters.git","type":"git","directory":"packages/civitai-app-sdk"},"description":"OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.","maintainers":[{"name":"lrojas94","email":"lrojas94@gmail.com"},{"name":"justmaier","email":"just.maier@gmail.com"},{"name":"bkdiehl","email":"bkdiehl@gmail.com"},{"name":"manuelurenah","email":"manuel.ureh@hotmail.com"},{"name":"devzacx","email":"zachlowden1@gmail.com"}],"readme":"# `@civitai/app-sdk`\n\nShared OAuth + orchestrator glue for building third-party [Civitai](https://civitai.com) apps. Used internally by every starter in [`civitai/civitai-app-starters`](https://github.com/civitai/civitai-app-starters), and publishable for direct use in your own app.\n\nThis package is **runtime-agnostic** — Node 20+ APIs only. There is no Next.js, SvelteKit, or Express coupling. Each starter writes a ~30-line framework adapter that calls into these primitives.\n\n## Install\n\n```bash\npnpm add @civitai/app-sdk\n```\n\n## What it does\n\n| Surface | Why it exists |\n|---|---|\n| `oauth/*` — `generatePkce`, `buildAuthorizeUrl`, `exchangeCode`, `refreshToken`, `revokeToken`, `fetchMe` | The Civitai OAuth flow (Authorization Code + PKCE S256), as a set of stateless functions you call from your server-side handlers. |\n| `scopes/*` — `TokenScope`, `TokenScopePresets`, `bitmaskFromScopes`, `scopesFromBitmask`, `hasScope`, `getScopeLabel` | Civitai scopes are stored as bitmasks. These helpers let you compose scope sets from named flags rather than magic numbers. |\n| `cookies/*` — `sealCookie`, `unsealCookie`, `buildSetCookieHeader`, `readCookie` | AES-256-GCM authenticated cookie crypto. Use to seal a session blob (refresh token, expiry, scope) into an `httpOnly` cookie with zero external session store. |\n| `orchestrator/*` — `createOrchestratorClient`, `estimateWorkflow`, `submitWorkflow`, `getWorkflow`, `pollWorkflow`, `buildTextToImageBody`, `buildImageGenBody`, `buildWorkflowBody`, `WORKFLOW_STEP_TYPES`, `IMAGE_GEN_ENGINES`, `isTerminal`, `extractImageUrls`, `OrchestratorError`, `WorkflowSnapshot`, `GenerateInput`, `ImageGenInput`, `WorkflowStepType`, `ImageGenEngine`, `DEFAULT_MODEL_AIR` | Orchestrator workflow glue — types, body builders, raw HTTP, and long-poll helper. Client + server safe (fetch-only). `estimateWorkflow` calls `?whatif=true` to preview Buzz cost without spending. `pollWorkflow` long-polls to terminal status. `WORKFLOW_STEP_TYPES` is the catalog of every step `$type` the orchestrator accepts. |\n| `orchestrator/steps` — `WorkflowStepTemplates`, `WorkflowStepTemplateFor`, `WorkflowStepInputFor`, `AnyWorkflowStepTemplate`, `TypedWorkflowTemplate` | **Type-only** subpath (0 runtime bytes) keying the orchestrator's generated workflow-step shapes from `@civitai/client` by wire `$type`, so apps compose real step bodies against types that track the spec instead of hand-maintained copies. Requires the optional peer `@civitai/client@beta`. Type surface only — it grants no submit permission; see \"Typed step shapes\" below. |\n| `blocks/*` — `BlockManifestError`, `BLOCK_SCOPES`, `BLOCK_SCOPE_PATTERN`, `isMessage`, types (`BlockManifestV1`, `BlockContext`, `BlockToken`, `BlockSettings`, `ViewerInfo`, `ThemeInfo`, `BlockWorkflowSnapshot`, `BlockInitPayload`, `ParentToBlockMessage`, `BlockToParentMessage`, …) | Framework-agnostic contract for [Civitai Apps](https://github.com/civitai/civitai-app-starters/blob/main/docs/build-your-first-app-block.md). Ships a byte-identical copy of the server-published canonical JSON Schema (draft 2020-12, https://civitai.com/schemas/app-block/v1.json) at the `./schemas/app-block/v1.json` subpath for offline validation; a CI drift-check keeps it in sync. Runtime-agnostic and **zero runtime dependencies** — no React, no DOM types, nothing in your install graph. Hooks and the iframe transport live in a separate package. |\n| `manifest/*` — `defineBlock`, `SCHEMA_DIVERGENCES`, `KNOWN_GAPS` (**Node only**) | Build-time manifest validation. `defineBlock(config)` compiles the vendored canonical schema with [Ajv](https://ajv.js.org) and validates a `BlockManifestV1` against it, so authoring mistakes surface in `pnpm dev` instead of at `civitai app validate`/submit. It is **derived from the schema, not a hand-written mirror of it** — that mirror is what produced [#330](https://github.com/civitai/civitai-app-starters/issues/330). Needs `node:fs` and the optional peer `ajv`, which is why it is not on the browser-facing `./blocks` surface. |\n| `vite/*` — `blockManifestPlugin` (**Node only**) | A Vite plugin wrapping `defineBlock`, firing from `configResolved` — the one hook Vite calls on both the dev-server and the build path. Every block scaffold registers it, so `pnpm dev`, `pnpm dev:harness` and `pnpm build` all fail on a bad manifest with the offending field path. Optional peers: `ajv` (runtime) and `vite` (types only). |\n\n## Entry points, and what the root barrel is\n\nThe root — `import … from '@civitai/app-sdk'` — is **exactly the union of four subpaths**: `@civitai/app-sdk/oauth`, `/scopes`, `/cookies` and `/orchestrator`. All of each, and nothing else. Import from the root when you want the OAuth-app surface in one specifier; import a subpath when you want only that slice. The two are the same symbols either way, which is asserted in both directions by `test/export-surface.test.ts` — the root cannot quietly gain a symbol none of those four exports, or miss one they do.\n\nThe other five subpaths are **deliberately not on the root**, each for a concrete cost it would push onto every consumer:\n\n| Subpath | Why it is not on the root |\n|---|---|\n| `@civitai/app-sdk/blocks` | Importing it runs `/safe-storage` for its side effect, and it is the Civitai-Apps contract — a disjoint audience from OAuth apps. |\n| `@civitai/app-sdk/safe-storage` | Its purpose *is* the module side effect. A side effect on the root barrel is not something a consumer can opt out of. |\n| `@civitai/app-sdk/orchestrator/steps` | Type-only, and its declarations name `@civitai/client` — an **optional** peer that the root would make mandatory for everyone. |\n| `@civitai/app-sdk/manifest` | **Node only** — needs `node:fs` and the optional peer `ajv`. |\n| `@civitai/app-sdk/vite` | **Node only** — optional peers `ajv` (runtime) and `vite` (types). |\n\n> One name is declared twice on purpose: `BuzzAccountType` is the full set of Civitai Buzz pools on the root and `/oauth`, and a narrower three-pool union on `/blocks` — a block can neither prefer nor read the others. Same name, two subpaths, two types; the divergence is pinned rather than merged.\n\n## Subpath imports\n\n```ts\n// The OAuth-app surface, also available whole from the root specifier:\nimport { buildAuthorizeUrl, exchangeCode, type OAuthTokens } from '@civitai/app-sdk/oauth';\nimport { TokenScope, bitmaskFromScopes } from '@civitai/app-sdk/scopes';\nimport { sealCookie, unsealCookie } from '@civitai/app-sdk/cookies';\nimport { submitWorkflow, WORKFLOW_STEP_TYPES } from '@civitai/app-sdk/orchestrator';\n// The Civitai Apps contract (a different audience — see above):\nimport { BLOCK_SCOPES, isSignedIn } from '@civitai/app-sdk/blocks';\n// Build-time manifest validation (NODE ONLY — needs the optional peer `ajv`).\n// Most projects want the Vite plugin below rather than calling this directly:\nimport { defineBlock } from '@civitai/app-sdk/manifest';\n// The same gate as a Vite plugin (NODE ONLY — optional peers `ajv` + `vite`):\nimport { blockManifestPlugin } from '@civitai/app-sdk/vite';\n// Type-only: the orchestrator's generated per-step shapes. Needs the optional\n// peer `@civitai/client@beta` — see \"Typed step shapes\" below:\nimport type { TypedWorkflowTemplate } from '@civitai/app-sdk/orchestrator/steps';\n// Opaque-origin storage shim — see \"Web storage in a block\" below:\nimport '@civitai/app-sdk/safe-storage';\n// JSON Schema for the manifest, e.g. for IDE validation:\nimport manifestSchema from '@civitai/app-sdk/schemas/app-block/v1.json' with { type: 'json' };\n```\n\n## Civitai Apps contract (`@civitai/app-sdk/blocks`)\n\n> Building a **Civitai App** (an iframe-embedded UI on a civitai.com page)? This\n> subpath is the framework-agnostic contract — manifest types, scope strings and\n> the `postMessage` protocol. (The `defineBlock` validator moved to the node-only\n> [`@civitai/app-sdk/manifest`](#defineblock-validator-rules) subpath; `./blocks`\n> keeps zero runtime dependencies.) The React hooks + transport that consume it\n> live in\n> [`@civitai/blocks-react`](https://www.npmjs.com/package/@civitai/blocks-react).\n> Start from the runnable [examples](https://github.com/civitai/civitai-app-starters/tree/main/starters/examples).\n>\n> This is distinct from the OAuth flow above: a *block* runs inside civitai.com\n> and gets a short-lived block-scoped JWT handed to it; an *app* (the OAuth\n> starters) runs on your own domain and does the Authorization-Code dance.\n\n### The transport / message contract\n\nA block runs in a sandboxed iframe. The host (civitai.com) and the block speak\nover `window.postMessage({ type, payload }, targetOrigin)`, discriminated by\n`type`. The full union is exported:\n\n- **parent → block**: `BLOCK_INIT`, `TOKEN_REFRESH`, `TOKEN_REFRESH_RESPONSE`,\n  `ESTIMATE_RESULT`, `WORKFLOW_SUBMITTED`, `WORKFLOW_STATUS`,\n  `BUZZ_PURCHASE_RESULT`, `CHECKPOINT_PICKER_RESULT`, `USER_CHECKPOINT_SET`,\n  `APP_STORAGE_*_RESULT`, `SUSPEND`, `RESUME`, `THEME_CHANGE`,\n  `CONSENT_UNAVAILABLE` (`ParentToBlockMessage`).\n- **block → parent**: `BLOCK_READY`, `BLOCK_ERROR`, `REQUEST_TOKEN`,\n  `RESIZE_IFRAME`, `SUBMIT_WORKFLOW`, `ESTIMATE_WORKFLOW`, `POLL_WORKFLOW`,\n  `QUERY_APP_WORKFLOWS`, `CANCEL_APP_WORKFLOW`, `OPEN_BUZZ_PURCHASE`,\n  `OPEN_CHECKPOINT_PICKER`, `SET_USER_CHECKPOINT`, `NAVIGATE`, `TRACK_EVENT`,\n  `APP_STORAGE_*` (`BlockToParentMessage`).\n\nThe app generator **subqueue** pair — `QUERY_APP_WORKFLOWS` →\n`APP_WORKFLOWS_RESULT` and `CANCEL_APP_WORKFLOW` → `CANCEL_APP_WORKFLOW_RESULT` —\nlets an app read + cancel its **own** tag-scoped generations (the `AppWorkflow`\nprojection: `workflowId`, `status`, `images[]`, `cost`, `createdAt`). The host\nforces the per-app tag filter off the block token, so a block only ever sees the\nqueue it produced. Mirrors civitai/civitai PR #3164; the `@civitai/blocks-react`\n`useAppWorkflows()` hook wraps both.\n\n`isMessage(data, 'BLOCK_INIT')` is a **discriminator-only** narrowing helper — it\nchecks `data.type`, NOT the payload shape. Anything crossing the iframe trust\nboundary must be payload-validated at the boundary (the React transport does this\nfor you).\n\n### `BLOCK_INIT` — the first message\n\nThe host waits for the iframe `load` event AND a minted token, then posts:\n\n```ts\ninterface BlockInitPayload {\n  blockInstanceId: string;\n  blockId: string;\n  appId: string;                       // the OauthClient (app) this block belongs to\n  token: WrappedToken;                 // { raw, scopes[], expiresAt (ISO), buzzBudget? }\n  context: BlockContext;               // { slotId, … } — narrow to ModelSlotContext\n  settings: BlockSettings;             // { publisherSettings, userSettings }\n  viewer: ViewerInfo | null;           // null = anonymous — gate with isSignedIn(viewer)\n  theme: 'light' | 'dark';\n  renderMode: 'iframe' | 'inline';\n}\n```\n\n`token.buzzBudget` is only present when the manifest declares `ai:write:budgeted`.\n`expiresAt` is an ISO string on the wire; the React transport rehydrates it to a\n`Date`.\n\n### Primitives\n\n| Export | What |\n|---|---|\n| `BLOCK_SCOPES` / `BLOCK_SCOPE_PATTERN` | The 15 known block scope strings (the authoritative enum the canonical schema validates `scopes` against) + the `domain:verb:target` format-helper regex. A scope is valid only if it's a member of `BLOCK_SCOPES`, matching the [canonical schema](https://civitai.com/schemas/app-block/v1.json). |\n| `isMessage(data, type)` | Discriminator-only message narrowing (see above). |\n| `isModelSlotContext(ctx)` / `isPageSlotContext(ctx)` | Runtime narrowing for the `slotId`-discriminated `BlockContext` union. Real checks on a value that crossed a `postMessage` boundary — they verify every field they assert, not just `slotId`. |\n| `isSignedIn(viewer)` | **The sign-in gate.** `isSignedIn(useBlockContext().viewer)` — do not open-code it as `viewer !== null` or `viewer?.signedIn === true`. Which of those is correct has already changed once with the host contract, and this is the one place it is decided. It reads neither `viewer.id` nor `viewer.username` (both `@deprecated`), so nothing written through it changes when those are removed. Need the identity rather than the presence? `useViewer()` — scope-gated and audited per call. |\n| types | `BlockManifestV1`, `ManifestSettings` (+ field types), `BlockContext`, `ModelSlotContext`, `BlockCheckpointInfo`, `ShowcaseImage`, `BlockToken`, `WrappedToken`, `BlockSettings`, `ViewerInfo`, `Theme`, `WorkflowBody`, `BlockTextToImageParams`, `WorkflowBodyCustomComfy` (+ its two arms `WorkflowBodyCustomComfyRecipe` / `WorkflowBodyCustomComfyInline`, and `InlineComfyNode`), `WorkflowBodyStep` / `WorkflowBodyPassThroughStep` (the two arms of `kind: 'step'`), `BlockWorkflowSnapshot`, `WorkflowStatus`, `BlockInitPayload`, `ParentToBlockMessage`, `BlockToParentMessage`. |\n\n`WorkflowBody`'s `customComfy` member is a discriminated union on `mode`, mirroring\nthe host's `blockCustomComfyMemberSchema`. Narrow on the VALUE (`body.mode === 'inline'`),\nnever on the presence of a `mode` key — the recipe arm may carry `mode: 'recipe'` as an\nown key:\n\n- **`WorkflowBodyCustomComfyRecipe`** (the default; `mode` omitted or `'recipe'`) — names a\n  server-registered, code-reviewed recipe. A body written before the inline arm existed\n  omits `mode` entirely and still lands here, unchanged.\n- **`WorkflowBodyCustomComfyInline`** (`mode: 'inline'`) — the block ships the ComfyUI graph\n  itself as `workflow`, with a declared `resources` AIR manifest and a `maxBuzz` ceiling\n  that is **also the step timeout in seconds**. Server-side this arm is **app-developer-only\n  and page-token-only**, and code review is replaced by three fail-closed gates (AIR\n  containment, entitlement, and a moderation sweep over every string leaf in the graph). A\n  registered recipe remains the way to reach every viewer.\n\n`WorkflowBody`'s `step` member is likewise a union of two arms, mirroring the host's\n`blockStepMemberSchema`. Here the discriminator is the **presence of `step`**, so narrow with\n`'$type' in body` (or `body.step === undefined`) — `kind === 'step'` alone leaves both arms:\n\n- **`WorkflowBodyStep`** (`step` PRESENT) — names a **registered** step id (`'convert-image'`,\n  `'chat-completion'`, …). The wire enum is derived from the host's step registry, so an\n  unregistered id is rejected fail-closed at the schema, and `params` are validated by that\n  step's own `.strict()` schema.\n- **`WorkflowBodyPassThroughStep`** (`step` ABSENT) — names an **orchestrator `$type`** directly\n  and the host forwards `input` unmodified. There is no registry lookup, no param schema, no\n  prompt audit and no AIR scan; what bounds it is a denylist of platform-internal `$type`s\n  (scanners, moderation classifiers, hashing/model ingestion, web egress), a 64-character\n  `$type` cap, a 256 KB `input` cap, and `maxBuzz` — which, as on the inline arm, is **also the\n  step timeout in seconds**.\n\n```ts\nimport type { WorkflowBody } from '@civitai/app-sdk/blocks';\n\n// Pass-through: note there is NO `step` key.\nconst body: WorkflowBody = {\n  kind: 'step',\n  $type: 'imageBackgroundRemoval',\n  input: { image: imageUrl },\n  maxBuzz: 10,\n};\n```\n\n### `defineBlock` validator rules\n\n**There is no rule list here, and that is the point.** `defineBlock` does not\nmaintain one: it compiles the vendored copy of the\n[canonical schema](https://civitai.com/schemas/app-block/v1.json) with\n[Ajv](https://ajv.js.org) and validates against **that**. Every `required`,\n`enum`, `pattern`, bound, `additionalProperties` and `allOf` the canonical\nexpresses is enforced, and moves when the canonical moves. The schema is the\nrule list; read it, or read the errors.\n\nThat is [#330](https://github.com/civitai/civitai-app-starters/issues/330)'s own\nproposed fix. The previous implementation hand-mirrored the schema, and the\nmirror diverged exactly as the issue predicted: it required 11 fields where the\ncanonical requires **five** (`blockId`, `version`, `name`, `contentRating`,\n`scopes`), required `appId` — not a canonical property at all — and *required*\nthe SERVER-OWNED `iframe.src` that `civitai app submit` refuses, so it rejected\nevery `block.manifest.json` this repo ships.\n\nOn top of the schema, `defineBlock` applies exactly five extra rules, each\nmirroring a server rejection the canonical states only in **prose**:\n\n| Rule | The canonical prose it mirrors |\n|---|---|\n| a dev-set **`iframe.src`** is rejected | *\"SERVER-OWNED. Do NOT set `iframe.src` — the platform assigns it.\"* The JSON-Schema `not` is deliberately absent; the top-level `allOf` `$comment` says the platform validator and the Go CLI reject it instead. |\n| a dev-set **`trustTier`** is rejected | *\"SERVER-OWNED … the platform assigns the trust tier during review.\"* Same shape. |\n| **`iframe.sandbox`** rejects `allow-same-origin` and every `allow-top-navigation*` token | *\"Never combine allow-same-origin with allow-scripts.\"* Top-navigation is refused because a block must route navigation through the `NAVIGATE` postMessage. |\n| every **`scopeJustifications`** key must be a scope in `scopes` | *\"The requirement is enforced imperatively by the manifest validator (not expressed as JSON-Schema conditionals here).\"* |\n| **`settings`** is validated against the W3 settings meta-schema | Not in the app-block schema at all — settings are validated server-side by `manifest-settings.meta.schema.ts`. |\n\nEach is **strictly additive**: it can only reject a manifest Ajv accepted, never\nrelax a canonical rule. `test/manifest/divergences.test.ts` asserts exactly that\nper entry — the fixture must be schema-VALID and `defineBlock`-REJECTED — and the\ntable and the fixture set must be the same set, so a sixth hand-written rule with\nno entry fails the suite.\n\n> **Passing is necessary, not sufficient**, and it is **not** a replacement for\n> `civitai app validate` (the Go CLI's local pre-check against the same\n> canonical). Run that before `civitai app submit`. `KNOWN_GAPS` in\n> `src/manifest/defineBlock.ts` names each thing only the server can check —\n> including one that cuts the *other* way: the canonical's sandbox description is\n> an **allowlist** (*\"Unverified tier allows only: allow-scripts, allow-forms\"*)\n> while the rule above is a denylist, so `allow-popups`, `allow-modals` and\n> `allow-downloads` **pass here and may be refused at review**. The tier is\n> assigned server-side, so it cannot be enforced locally.\n\n**Where it runs.** Every scaffold that ships a `block.manifest.json`\n(`starters/civitai-block-starter` and all six `starters/examples/*`) registers\n`blockManifestPlugin` from `@civitai/app-sdk/vite` in its `vite.config.ts`. It\nfires from Vite's `configResolved`, the one hook called on both the dev-server\nand the build path — so `pnpm dev`, `pnpm dev:harness` and `pnpm build` all fail\nloudly on a bad manifest, with the offending field path in the message. Add\n`ajv` to your devDependencies (it is an optional peer):\n\n```bash\npnpm add -D ajv\n```\n\n```ts\n// vite.config.ts — drop this into your existing `defineConfig({ plugins: [...] })`.\nimport { blockManifestPlugin } from '@civitai/app-sdk/vite';\n\nconst plugins = [blockManifestPlugin()];\n```\n\n### Web storage in a block (`@civitai/app-sdk/safe-storage`)\n\nBlock iframes are sandboxed **without `allow-same-origin`**, so the document has\nan *opaque origin*. There is no origin to key web storage against, and the\nplatform doesn't hand back an empty store — merely **reading** the property\nthrows:\n\n```\nSecurityError: Failed to read the 'localStorage' property from 'Window':\nThe document is sandboxed and lacks the 'allow-same-origin' flag.\n```\n\n> **The usual guard does not work here.** `typeof localStorage === 'undefined'`\n> **also throws** in the sandbox — `typeof` still resolves the property and runs\n> the throwing getter; only `typeof` of an *undeclared identifier* is safe.\n> `'localStorage' in window` is the check that survives, and it returns `true`:\n> the global exists, it's just unreadable.\n\nGuarding your own call sites isn't enough anyway: **any dependency** that\ntouches storage unguarded takes the app down, and libraries routinely mislabel\nthe failure — one popular viewer catches the SecurityError and reports \"your browser\ndoes not support WebGL\", so the app's own fallback never runs and the user\ndead-ends on a wrong error message.\n\nSo the SDK repairs it for you. Importing `@civitai/app-sdk/blocks` (or\n`@civitai/blocks-react`, which imports it) installs a spec-shaped in-memory\n`Storage` over `localStorage` / `sessionStorage` — **only** when a real\nround-trip probe shows they're unusable. Rules:\n\n- **No-op where storage works.** A healthy `Storage` is never replaced, and its\n  contents are never read or written (beyond a probe key it removes).\n- **No-op where storage is absent** (Node / SSR / workers). Nothing is\n  fabricated, so `typeof localStorage === 'undefined'` feature detection keeps\n  working server-side.\n- **Idempotent**, and safe to call as often as you like.\n- **Never loses readable data.** A store that reads fine but refuses writes (a\n  full quota, storage disabled) still gets replaced — writes have to stop\n  throwing — but the fallback **inherits its entries first**, so the shim can't\n  shadow a live session.\n- **Never throws.** It installs at import, so an error escaping it would reject\n  `import '@civitai/app-sdk/blocks'` and take the whole block down. Even a\n  revoked `Proxy` or a throwing getter sitting on `localStorage` is classified,\n  not propagated.\n- The fallback is **session-scoped** — nothing survives a reload. That's the\n  honest semantic at an opaque origin. Treat storage as a cache; use the\n  platform's app-storage messages (`useAppStorage` in `@civitai/blocks-react`)\n  for anything durable.\n\nMost apps need to do nothing. Two cases where you reach for it explicitly:\n\n```ts\n// 1. A dependency reads storage while its module EVALUATES, and it's imported\n//    before anything from the SDK. Import statements are hoisted above every\n//    statement, so only another import can win the race — put this first in\n//    your entry file.\nimport '@civitai/app-sdk/safe-storage';\n```\n\n```ts\n// 2. Right before dynamically importing such a dependency.\nimport { installSafeStorage } from '@civitai/app-sdk/blocks';\n\ninstallSafeStorage(); // no-op if already healthy\nconst { Viewer } = await import(viewerModuleSpecifier);\n```\n\n`installSafeStorage(scope?)` returns `{ localStorage, sessionStorage }` — `true`\nfor each global it actually replaced. `createMemoryStorage()` is exported too,\nif you want the standalone `Storage` work-alike.\n\n### Version compatibility\n\n| `@civitai/app-sdk` | adds (blocks surface) |\n|---|---|\n| `0.27.0` | `@civitai/app-sdk/safe-storage` — opaque-origin `localStorage`/`sessionStorage` shim, auto-installed by the `blocks` subpath |\n| `0.24.0` | `QUERY_APP_WORKFLOWS` / `CANCEL_APP_WORKFLOW` messages + the `AppWorkflow` type (app generator subqueue, PR #3164) |\n| `0.7.0` | `CANCEL_WORKFLOW` / `WORKFLOW_CANCELED` messages (real cancel, gotcha #51) |\n| `0.6.0` | `APP_STORAGE_*` messages, `ManifestSettings` types |\n| `0.5.0` | settings types, earlier message set |\n\nPair with `@civitai/blocks-react` at the matching minor (it peer-depends on this\ncontract). See the blocks-react README's compatibility table.\n\n## Minimal usage example\n\n```ts\nimport {\n  buildAuthorizeUrl, generatePkce, generateState,\n  exchangeCode, fetchMe,\n  TokenScope, bitmaskFromScopes,\n  sealCookie, unsealCookie, buildSetCookieHeader,\n  createOrchestratorClient, buildTextToImageBody,\n  estimateWorkflow, submitWorkflow, pollWorkflow,\n} from '@civitai/app-sdk';\n\n// 1. Kick off OAuth login from your server-side handler\nconst { verifier, challenge } = generatePkce();\nconst state = generateState();\nconst scope = bitmaskFromScopes(['AIServicesWrite', 'BuzzRead', 'UserRead']);\n\n// Persist { verifier, state, scope } against the user's session — e.g. in an\n// encrypted cookie sealed with `sealCookie`. Then redirect to:\nconst authorizeUrl = buildAuthorizeUrl({\n  clientId: process.env.CIVITAI_CLIENT_ID!,\n  redirectUri: 'https://your-app.com/api/auth/callback/civitai',\n  scope,\n  state,\n  codeChallenge: challenge,\n});\n\n// 2. In your callback handler, exchange the code for tokens\nconst tokens = await exchangeCode({\n  clientId: process.env.CIVITAI_CLIENT_ID!,\n  clientSecret: process.env.CIVITAI_CLIENT_SECRET, // omit for public clients\n  redirectUri: 'https://your-app.com/api/auth/callback/civitai',\n  code: codeFromQuery,\n  codeVerifier: verifierFromSealedCookie,\n  fallbackScope: scope, // used if the response's `scope` is absent or unreadable\n});\n\n// 3. Store tokens in an encrypted httpOnly cookie\nconst sealed = sealCookie(JSON.stringify(tokens), process.env.SESSION_SECRET!);\nconst setCookie = buildSetCookieHeader('civ_session', sealed, { maxAge: 3600 });\n\n// 4. Use the token to make orchestrator calls\nconst client = createOrchestratorClient({ accessToken: tokens.access_token });\n// fetchMe returns `unknown` — narrow it to the fields you read. Note `/api/v1/me`\n// does NOT include Buzz balance; use `fetchBuzzAccount` (needs `BuzzRead`) for that.\nconst me = (await fetchMe({ accessToken: tokens.access_token })) as { username: string };\nconsole.log(`Hi ${me.username}`);\n```\n\n> **Two base URLs.** The OAuth endpoints moved to a standalone auth hub, so\n> `buildAuthorizeUrl` / `exchangeCode` / `refreshToken` / `revokeToken` default\n> `baseUrl` to `https://auth.civitai.com`, while `fetchMe` (`/api/v1/me`) and\n> `fetchBuzzAccount` (buzz tRPC) default to `https://civitai.com`. Pass an\n> explicit `baseUrl` to each call only when targeting a local / self-hosted\n> instance (e.g. a dev auth hub vs a dev main app).\n\n> **`fallbackScope`, and what happens to a `scope` we cannot read.** Civitai's\n> token endpoint returns `scope` as a decimal bitmask in a JSON *string*\n> (`\"scope\": \"114689\"` — see the\n> [endpoint reference](https://developer.civitai.com/site/oauth/endpoints)),\n> matching the decimal `scope` `buildAuthorizeUrl` puts on the authorize URL,\n> and that is what `exchangeCode` / `refreshToken` read. Anything that is not a\n> whole number in `[0, 2**31-1]` is **not** used: `Number()` of\n> [RFC 6749 §5.1](https://datatracker.ietf.org/doc/html/rfc6749#section-5.1)'s\n> space-delimited form is `NaN`, and `NaN & anything` is `0`, so `hasScope()`\n> would answer `false` for every scope and tell a user who just consented that\n> they granted nothing. A wrong *type* is rejected on the same grounds:\n> `Number(['65537'])` is `65537` and `Number(true)` is `1` (i.e.\n> `TokenScope.UserRead`), so an un-guarded coercion would invent a\n> valid-looking grant rather than fail. Such a value is replaced by\n> `fallbackScope` and a warning naming the value received — not an exception,\n> which on the token path would turn a degraded-but-working session into a hard\n> login failure.\n>\n> Pass `fallbackScope: REQUESTED_SCOPES` on exchange and\n> `fallbackScope: tokens.scope` on refresh — without it, either case resolves to\n> `0`, and a caller that persists the whole refreshed token blob would lock the\n> user out of features their token still grants. `fallbackScope` must itself be\n> a whole number in `[0, 2**31-1]`; `NaN` (what `Number(stored.scope)` gives you\n> on a half-populated store — and `??` does not catch it), a negative, a\n> fraction or an over-ceiling value is **discarded in favour of `0`** with its\n> own warning, rather than being handed back as the scope.\n>\n> **The two fallback paths are not equally sound.** An **omitted** `scope` is\n> not a fault at all: RFC 6749 §5.1/§6 make it optional *precisely when the\n> grant matches the request*, so the requested scope is the granted scope and\n> `fallbackScope` is exactly right — that path is silent. A **present but\n> unreadable** `scope` carries no such guarantee: the server is describing the\n> grant in terms this SDK cannot read, and it may be a *reduced* grant, so\n> falling back to the requested scope can **over-state** what the user granted.\n> All four starters render `scopesFromBitmask(tokens.scope)` to the user as\n> \"Granted scopes\", so the over-statement is user-visible. It is a deliberate\n> trade (`0` and a thrown error are both worse here), which is why this path\n> always warns — if you gate anything security-relevant on `tokens.scope`,\n> treat that warning as \"re-authenticate\", not as noise.\n\n```ts\n\n// 5. Estimate cost, then submit\nconst body = buildTextToImageBody({ prompt: 'a fox' }, { tags: ['my-app'] });\nconst estimate = await estimateWorkflow(client, body);\nconsole.log(`This will cost ${estimate.cost?.total ?? 0} Buzz`);\n// ...show to user, get confirmation...\nconst submitted = await submitWorkflow(client, body);\nconst finished = await pollWorkflow(client, submitted.id, { timeoutMs: 30_000 });\n```\n\n`pollWorkflow` is a real **long poll**: it sends the orchestrator's `?wait=<seconds>` parameter (20s per attempt by default) so the request returns the moment the workflow ends, and re-arms across each 202 until the `timeoutMs` budget runs out. On the budget above that is ~2 requests rather than ~30. Pass `waitSeconds: 0` for the older immediate-read-per-`intervalMs` behaviour, and keep `timeoutMs` under your platform's request budget on serverless (see PORTING.md).\n\nThe starters in `civitai/civitai-app-starters` wire this into framework-specific route handlers (Next.js App Router, SvelteKit `+server.ts`, Hono inside a Vite-built PWA). Read those for end-to-end reference implementations.\n\n## Choosing a workflow step type\n\nThe orchestrator is a workflow API: each request submits a list of typed steps. `WORKFLOW_STEP_TYPES` is the in-code catalog of every step `$type` it accepts, with a one-line description for each — `textToImage`, `imageGen`, `videoGen`, `comfy`, `customComfy`, `textToSpeech`, `aceStepAudio`, `transcription`, `imageUpscaler` among them (50 in total).\n\nThe catalog is pinned to the orchestrator's published OpenAPI spec two ways — an offline unit test against a transcribed copy of the spec's `WorkflowStepTemplate` discriminator mapping, and a CI job (`pnpm check:catalogs`) that re-fetches the live spec and diffs it. If a `$type` is listed here, the orchestrator accepts it.\n\nFind the step you want, then pick a builder:\n\n| Step type | Builder | When |\n|---|---|---|\n| `textToImage` | `buildTextToImageBody` | Diffusion checkpoints (SDXL / Flux.1 / Pony / SD1.5) via AIR URN |\n| `imageGen` | `buildImageGenBody` | Engine-routed image gen — hosted third-party APIs (e.g. Nano Banana, Gemini, GPT-Image, Flux.1 Kontext, Seedream) and self-hosted engines (e.g. SDCpp, Comfy graphs). `IMAGE_GEN_ENGINES` is the authoritative list; this row is illustrative and deliberately not exhaustive. |\n| Any other (`videoGen`, `comfy`, `textToSpeech`, `transcription`, …) | `buildWorkflowBody` | Generic single-step envelope — pass `{ $type, input }`, the SDK adds `name`/`timeout` defaults. |\n\nFor multi-step workflows, hand-build `{ tags?, steps: [step1, step2, ...] }` — no special envelope work beyond a JSON array.\n\n**Reference-image gen (the Nano Banana / Gemini / Kontext use case):**\n\n```ts\nimport { buildImageGenBody, estimateWorkflow, submitWorkflow } from '@civitai/app-sdk/orchestrator';\n\nconst body = buildImageGenBody({\n  engine: 'google',\n  model: 'nano-banana-2',\n  prompt: 'turn this person into a cartoon sticker',\n  images: ['data:image/png;base64,...', 'https://example.com/style-ref.jpg'],\n  aspectRatio: '1:1',\n  numImages: 1,\n  resolution: '1K',\n}, { tags: ['my-app'] });\n\nconst estimate = await estimateWorkflow(client, body);\nconsole.log(`This will cost ${estimate.cost?.total ?? 0} Buzz`);\nconst submitted = await submitWorkflow(client, body);\n```\n\nPer-engine input shapes (`aspectRatio`, `resolution`, `numImages`, etc.) come from the OpenAPI spec at <https://orchestration.civitai.com/openapi/v2-consumers.json> — `ImageGenInput` is intentionally pass-through so new engine fields work without an SDK release.\n\n## Typed step shapes (`@civitai/app-sdk/orchestrator/steps`)\n\n`WORKFLOW_STEP_TYPES` tells you which `$type`s exist; the body builders above take `input: unknown`. This subpath is the other half: the real per-step input shapes, keyed by wire `$type` over the orchestrator's own generated client (`@civitai/client`) so they track the spec by codegen rather than by hand.\n\nIt is **type-only** — every export is a `type`, the built `dist/orchestrator/steps.js` is an empty module, and bundling it yields 0 bytes. Nothing is added to your runtime.\n\n```ts\nimport { createOrchestratorClient, estimateWorkflow, submitWorkflow } from '@civitai/app-sdk/orchestrator';\nimport type { TypedWorkflowTemplate, WorkflowStepTemplateFor } from '@civitai/app-sdk/orchestrator/steps';\n\ndeclare const accessToken: string;\nconst client = createOrchestratorClient({ accessToken });\n\n// Fully typed — `$type` is a literal, and `input` is checked field by field.\n// `cfgScale` and `seed` are REQUIRED on `textToImage`, which is easy to miss\n// when hand-writing the body.\nconst step: WorkflowStepTemplateFor<'textToImage'> = {\n  $type: 'textToImage',\n  name: 'step_0',\n  timeout: '00:10:00',\n  input: {\n    prompt: 'a fox in the snow',\n    model: 'urn:air:sdxl:checkpoint:civitai:101055@128078',\n    cfgScale: 5,\n    seed: 1234,\n    width: 1024,\n    height: 1024,\n  },\n};\n\nconst body: TypedWorkflowTemplate = { steps: [step], tags: ['my-app'] };\nconst estimate = await estimateWorkflow(client, body);\nconst submitted = await submitWorkflow(client, body);\n```\n\nWhat it exports:\n\n| Export | What |\n|---|---|\n| `WorkflowStepTemplates` | `$type` → template type, for 47 of the catalog's 50 step types. Keyed by the WIRE name, which the generated type names don't always match (`model3DPreview` → `Model3dPreviewStepTemplate`). |\n| `WorkflowStepTemplateFor<'videoGen'>` | One step's template. |\n| `WorkflowStepInputFor<'videoGen'>` | One step's `input` shape, without needing the generated `*Input` name. |\n| `AnyWorkflowStepTemplate` | Discriminated union of all 47 mapped templates — `Extract<…, { $type: 'comfy' }>` and exhaustive `switch` work. `@civitai/client`'s base `WorkflowStepTemplate` has `$type` as a bare `string`, so it narrows nothing. |\n| `TypedWorkflowTemplate` | The submit envelope with `steps` narrowed to that union. Pass it straight to `submitWorkflow` / `estimateWorkflow`. |\n\n> 🔴 **The map is not total over the catalog, and that is the expected state.** `WORKFLOW_STEP_TYPES` documents 50 `$type`s; this map covers 47. The 3 with no generated template in the pinned `@civitai/client` are `imageScanning`, `preprocessVideo`, `yuE2`, and `WorkflowStepTemplateFor<…>` is a compile error for each of them.\n>\n> The two surfaces move independently on purpose: the catalog tracks the **live** orchestrator spec (a daily job syncs it), while these types track whatever `@civitai/client` was last published from. So the catalog runs ahead and the client catches up. The gap is never silent — `test/orchestrator/step-templates.test-d.ts` carries it as a `never` ledger plus one `@ts-expect-error` per gap `$type`, and `test/orchestrator/step-count-prose.test.ts` derives all four numbers (50, 47, 3, and the names) from `WORKFLOW_STEP_TYPES` and the map's own AST, then fails if this paragraph or its twin in `src/orchestrator/steps.ts` disagrees by one character.\n\nThe generated `*StepTemplate` and `*Input` types are **not** re-exported individually. Using this subpath already requires `@civitai/client` installed, so if you want one by name, import it straight from there — `import type { TextToImageStepTemplate } from '@civitai/client'`.\n\nIn practice `WorkflowStepTemplateFor<T>` and `WorkflowStepInputFor<T>` are the better route: they take the wire `$type` you already have, rather than the generated name you would otherwise have to go look up (`model3DPreview` → `Model3dPreviewStepTemplate`).\n\n### Installing the peer\n\n`@civitai/client` is an **optional peer dependency**, not a dependency: `@civitai/app-sdk` has an empty `dependencies` and this keeps it that way for every app that doesn't want the step types. Install it only if you import this subpath:\n\n```sh\npnpm add -D @civitai/client@beta\n```\n\n> 🔴 **Use the `beta` tag, not `latest`.** `@civitai/client`'s npm `latest` dist-tag points at `0.1.1-beta.0`, roughly 97 betas behind the `beta` tag the orchestrator is actually generated against — and missing most of the step types above. A plain `pnpm add @civitai/client` installs the stale one with no error; the first symptom is `TextToImageStepTemplate` not existing.\n\n> 🔴 **If the peer's types don't resolve, these types tell you — they used to just stop checking.** The unresolved `@civitai/client` import is in the SDK's shipped `steps.d.ts`, so `skipLibCheck: true` — the default for a TypeScript app, and set by every starter in this repo — suppresses the `TS2307` along with every other declaration-file diagnostic, and the types above degrade to an error type that behaves like `any`. Measured on a consumer with the peer uninstalled, against the subpath as it stood before the guard existed: **1 diagnostic** — a planted `const x: number = 's'` — on a project that also had a deliberately wrong `$type`. The wrong `$type` reported nothing.\n>\n> The subpath now carries a compile-time guard for exactly this. `keyof` over TypeScript's unresolved-import error type is `string | number | symbol`, not `any`, so `string extends keyof <template>` separates \"resolved\" from \"not resolved\" — it is `false` for all 47 generated templates (none has a string index signature; enumerated, not sampled) and `true` for the error type. When it fires, **all five exports above** collapse to a message type, so you get a `TS2322` **in your own file** naming the install command instead of silence. Same consumer with the guard: every annotation reports when the peer is missing, and when it is installed the output is the same, character for character, as the pre-guard build's. `test/orchestrator/steps-peer-guard.test.ts` pins both arms — and pins the export list itself, by reading the module's exported symbols through the TypeScript API and failing if any of them has no consumer file asserted to report, so a sixth export cannot arrive unguarded.\n\n> 🔴 **Use `\"moduleResolution\": \"Bundler\"` for this subpath.** `@civitai/client@0.2.0-beta.98` is published with `\"type\": \"module\"`, no `exports` map, and extensionless relative re-exports (`export * from './generated'`), which Node's ESM resolution does not resolve. Under `NodeNext`/`Node16` the peer therefore degrades to the same error type *even when it is correctly installed* — measured: 1 diagnostic (the planted control alone) before the guard, and every annotation reporting afterwards. That arm is a test too, with the same directory compiled under `Bundler` as its control. Every starter in this repo, and this package itself, use `Bundler`.\n\n### `currencies` is optional here, and required in the spec\n\n`TypedWorkflowTemplate` makes `currencies` optional where the generated `WorkflowTemplate` has it required. The helpers in `@civitai/app-sdk/orchestrator` have never emitted it and every starter submits through them, so requiring it would break every existing caller for a field none of them sends.\n\nThe spec describes `currencies` as *\"Limit the currencies that can be used to pay for this workflow.\"* — that is what the field does when it is **present**. What the orchestrator does when it is **omitted** is not verified, and the spec licenses no inference about it. Pass it explicitly if you want a workflow's payment scoped to particular currencies. This divergence is reasoned from the spec, this package's helpers and civitai's call sites — not from a live submit, which costs real Buzz.\n\n### These are types, not permissions\n\nA `$type` having a type here says nothing about whether you may submit it.\n\n- **App Blocks** don't reach the orchestrator at all. A block posts a `WorkflowBody` to the host, which validates it server-side against its own schema. That contract is `@civitai/app-sdk/blocks` and is completely unaffected by this subpath.\n- **Standalone apps / BFFs** submit directly with the user's OAuth token, and the orchestrator applies its own authorization. A body that compiles can still come back 400 or 403.\n\nSeveral of the 47 exist to serve Civitai's own pipelines rather than third-party apps — `modelPickleScan`, `xGuardModeration`, `training`, `comfyNodepackSnapshot`, `qwenImageBench`, the `model*`/`media*` hashing and classification steps. They're in the consumer spec, so they're typed here. They are not an invitation.\n\nNote that `WORKFLOW_STEP_TYPES` does **not** mark most of them: of its 50 entries exactly two — `comfyNodepackSnapshot` and `qwenImageBench` — sit under its \"Platform internals\" heading, and the rest are ordinary documented entries (`webScrape` even carries usage notes). The reason the platform steps are typed anyway is not that the catalog flags them as internal; it's that the catalog *documents* them, so skipping them would make `WorkflowStepTemplateFor<'training'>` a compile error for a step type the SDK documents — which is exactly what is live today for the 3 `$type`s the pinned client cannot type, and is why that gap is spelled out above rather than left to be discovered.\n\n## Public vs. confidential clients\n\nCivitai's OAuth server supports both:\n\n- **Confidential** — your server holds `CIVITAI_CLIENT_SECRET`. Use this for any starter that has a server side at all (Next.js, SvelteKit, or PWAs with a BFF). This is what every current starter uses.\n- **Public** — no `client_secret`, PKCE alone is the security boundary. Civitai's token endpoint supports CORS for browser-direct exchange. Useful for fully static PWAs. We don't currently ship a static-PWA starter; planned for a later milestone.\n\nPass `clientSecret` to `exchangeCode` / `refreshToken` / `revokeToken` for confidential, omit for public.\n\n## Buzz mechanics (important)\n\nWhen your app calls the orchestrator with a user's OAuth access token, the orchestrator debits **the user's Buzz**, not yours. This is the right tenant model for a third-party app, but it means:\n\n1. **Request `AIServicesWrite` scope at consent time.** Without it the user can't grant their Buzz for generation.\n2. **Show cost before spending.** Call `estimateWorkflow` first — it returns `cost.total` in Buzz without debiting. Display it. Let the user confirm.\n3. **Show balance.** Request `BuzzRead` scope, then call Civitai's balance endpoint. Don't surprise users.\n4. **Handle the cap-denial case.** Per-app spending caps (set by the user at consent and at Account → Connected Apps) can cause a successful `whatif` to be rejected at real submit time with a generic `BAD_REQUEST`. Treat that as \"insufficient or denied\" in your UI.\n\n## TODOs / future work\n\n- `scopes/index.ts` is hand-copied from `civitai/civitai`'s `src/shared/constants/token-scope.constants.ts`. Plan: replace with build-time codegen from `/.well-known/openid-configuration`.\n- Add a `tokenStore/` abstraction so starters can plug in alternative storage (Redis, KV) without rewriting auth handlers.\n- Static-PWA helpers for the public-client flow (browser-side token exchange via CORS, in-memory token storage, no refresh persistence).\n","readmeFilename":"README.md"}