{"_id":"@airstack/frames","_rev":"34-60c235cef6367df27e8fe7a167ad1150","name":"@airstack/frames","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@airstack/frames","version":"1.0.0","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"ISC","_id":"@airstack/frames@1.0.0","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"c4729430404a3c6fa080635316bf7ca71294538e","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.0.tgz","fileCount":127,"integrity":"sha512-bJRpoKficZQdUs80uttfgZvCEeN+QVMwPcuPGdbFiKFV19mVZN5fI1XbGSsGkOmGLE0L6Sd4Qjl5lpnL37t6IA==","signatures":[{"sig":"MEUCIHGc74R9kGx5Xw9EW5OTBXdD5xkqg3uECfzTqHrxr9DTAiEA2aChvQFIt9cCTufb5pIX4fi4nILkZRtLBsNES58cNcs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":392753},"main":"dist/index.js","gitHead":"10d81eab508b08904e9c902e45e58d5e04883f8f","scripts":{"test":"jest --coverage --passWithNoTests","build":"tsc ./src/index.ts --outDir ./dist","generate":"npx graphql-codegen"},"typings":"dist/types.js","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"@airstack/node":"^0.0.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.0_1708539817145_0.4687901627782671","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@airstack/frames","version":"1.0.1","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"ISC","_id":"@airstack/frames@1.0.1","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"a422a08c324cfa3518c59232971652559617a13f","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.1.tgz","fileCount":80,"integrity":"sha512-o8J24TNJi78a4RMkR6AE3D8HYc8TVCTbC2s0b1jVupcGSZPigllBuf6rwh2qanhFI0qlkK9VkvF0kxyMwAX7ZA==","signatures":[{"sig":"MEUCIQD+DAB1zIvlkGs/ziuzkDF60oISsLUn0qVMu3oj9gSR8QIgP8E9xC5cR2JBXF5Yhh7N/r6T02q2+BXDzDzwVksOe3c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":226398},"main":"src/index.ts","gitHead":"cbc19f28bdc35be2939ef7c7f96e87e4a9c1bdf7","scripts":{"test":"jest --coverage --passWithNoTests","build":"tsc ./src/index.ts --outDir ./dist","generate":"npx graphql-codegen"},"_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"@airstack/node":"^0.0.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.1_1708540931765_0.8202667148701221","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@airstack/frames","version":"1.0.2","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.2","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"f35c241f8d105448b7973058559d77bd7b1eace2","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.2.tgz","fileCount":80,"integrity":"sha512-kRLZYPogSbWPSgiQJya01My6gRDEpfH707NxEWMHPFw7IIBpAdHngpORU4Kdp41HUYeWEqd1CpRA27U12LFeAg==","signatures":[{"sig":"MEUCIBfddT8lnIhRa3EIkofJdTEu4KYJRVO9oPdFNYPYm6pIAiEA83EjkGV09tvzuqB+Hr8mjmLuJ5RlBcH+0SCDesBHY4A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":226398},"main":"src/index.ts","gitHead":"cbc19f28bdc35be2939ef7c7f96e87e4a9c1bdf7","scripts":{"test":"jest --coverage --passWithNoTests","build":"tsc ./src/index.ts --outDir ./dist","generate":"npx graphql-codegen"},"_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"@airstack/node":"^0.0.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.2_1708541074354_0.7542261297772523","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@airstack/frames","version":"1.0.3","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.3","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"925f48e1db4b1b5d8b7984e2e854503facdace6d","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.3.tgz","fileCount":80,"integrity":"sha512-UL2wO72nu+hf9nddUeRRwNuJe+JFxjJ4dYFqdaY/kjxBWwBivVX64BwjNhxtuJmXINWIen72THsQiUmPDyEtTg==","signatures":[{"sig":"MEQCIGvX6FlB2fK9/K5heNpgtuNgERUMj5GkE7n7l8r2AvYOAiBAITiUISTx3EcW3XnF0TFqdIftErl2v9O3pElZ1tK+iQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":234446},"main":"src/index.ts","gitHead":"a3674973acac68ca5fb4fa23635154f68a39e3a8","scripts":{"test":"jest --coverage --passWithNoTests","build":"tsc ./src/index.ts --outDir ./dist","generate":"npx graphql-codegen"},"_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"@airstack/node":"^0.0.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.3_1708594077082_0.43034234270574623","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@airstack/frames","version":"1.0.4","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.4","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"08bc4dc4c3f24926931eec0a620eb1cf58f0ea5c","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.4.tgz","fileCount":398,"integrity":"sha512-g1dLSbKf92Dvl7UkrMerTSdYJvPVfH355aDaCvPICL+rXnfg3+39HqJ0RK4/UJnfL9jjWMsvP4pB4lpSxJoL9A==","signatures":[{"sig":"MEQCIEinMIIIygUxAxZ5Ll39en1Fx5PX4KDxYyq9yFyVaoi7AiAM7v0FRw+FDi1JgqgfpwuDsagGo4vo3XHppvruDrZrcw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":829431},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"ebc6069ae1c630291273895e99c344a501c24d94","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"@airstack/node":"^0.0.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.4_1708617442612_0.09307841861535526","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@airstack/frames","version":"1.0.5","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.5","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"918d79e0bf597af738489306311d7612968874a3","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.5.tgz","fileCount":442,"integrity":"sha512-B0CjaiRon5Uup9seZIXyV3lC+kuV/SJ4NzNVMC8EW9xR1G+TZzW286c3ed2dOav8GU8DdOECo4h+Nk+WcrDLdg==","signatures":[{"sig":"MEUCIDKKji81GUAxtm5fEQnZNPSdw8YgVl4gMSKJ+JT31QnyAiEA7us7BQC9zwRBWnxvZ7n/5QWg0bGykDnECoGBjSbDml4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1117558},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"ef86d8cdf96902aa31c9ee345e2cf9e6a6be2d84","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"@airstack/node":"^0.0.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.5_1709059184918_0.9167411501884344","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@airstack/frames","version":"1.0.6","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.6","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"b6a9285c41196f06aa1269dc51920786523854f2","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.6.tgz","fileCount":433,"integrity":"sha512-O1g8KcbuPjmD+8wQHKLa4dR0197hWfbsstjkUNrxplDEAgM/IfFmKktv7Wf8kivYdHGVSV2jLnJvKGgUjXUkUg==","signatures":[{"sig":"MEUCIQDOnNUHEFHilF9NHXs9iTEm0ORqFFgLbevpT0DJVcySLQIgYp+KmQMrVpCGHIMEaNgfhrMpa3Hb+WCiKsSpVq5h4qo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":811314},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"6895f09b41c16d3153acb42b5a8495d338fa6fb3","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"node-fetch":"^2.6.6","@airstack/node":"^0.0.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.6_1709567899069_0.873488504775275","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"@airstack/frames","version":"1.0.7","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.7","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"b85687ee9f9fdb8ccb551689f96252d42753ab0e","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.7.tgz","fileCount":433,"integrity":"sha512-RXTLtG2/EElx5b19S3RDvBSb4q3Enrc8N0LdInWXHop5zBPIc6cu9k8XTkEo25lc69H9pg52X6k5O5ChBsPDyw==","signatures":[{"sig":"MEUCIGlu0qXGP+wRzy6UEoDIlDCHuz+2gpb/ZuCusPR6PESHAiEAgBBnOAiZFgrLozRW0aXmctrEDP6t8zXoq6XjuRsOJGI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":811260},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"6895f09b41c16d3153acb42b5a8495d338fa6fb3","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"node-fetch":"^2.6.6","@airstack/node":"^0.0.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.7_1709568145236_0.3540982538347939","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"@airstack/frames","version":"1.0.8","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.8","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"d3303c585dbe3d4e3663aaa13bbe83b62ca6d1a5","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.8.tgz","fileCount":443,"integrity":"sha512-uAKrBZ5b9ujJ8Z4nYDITVjRnQuk2iyH8iK69wOyx1ZcYT0Xgw8FGziwcxgz8M8zj/XG5QADDDgm5kVRGGHcUHw==","signatures":[{"sig":"MEQCIBS/Imzzt27lDeNX84218CuyAw+oOTlsxueuvYGXlrq7AiAdu04Gw8HF8AmDIgaoioFYr+KLbYZnRVRiwyEKNzPmrw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":818860},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"a76b1871dd9c9e7a227369f374d01b40cd58e399","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"node-fetch":"^2.6.6","@airstack/node":"^0.0.5","@haileybot/captcha-generator":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.8_1709649258878_0.21137327020125984","host":"s3://npm-registry-packages"}},"1.0.9":{"name":"@airstack/frames","version":"1.0.9","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.9","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"e69751be6f8f599058ad7f0f15b62e5ed73a95a3","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.9.tgz","fileCount":443,"integrity":"sha512-6mL4/V3oLGA6TTuPnyIjF5rgAYie8kLJlrGsMp0OxlvTrUFXPZZysbLOq2mjX10BFVSNad0e+TJPQ6+2MQa33g==","signatures":[{"sig":"MEUCIQDJpxpE9XYSYcDoX6o+dBzA0qMfAFZVo79bK4JdezTnUQIgDp0B9JvUdOJtiv7iNCcVPKIdI2YsF0DgYu8M356GJYM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":816849},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"a76b1871dd9c9e7a227369f374d01b40cd58e399","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"node-fetch":"^2.6.6","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.9_1709656223146_0.4059735023419102","host":"s3://npm-registry-packages"}},"1.0.10":{"name":"@airstack/frames","version":"1.0.10","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.10","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"c40cf708e567903a2c8e2609116da3e29434ce96","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.10.tgz","fileCount":468,"integrity":"sha512-tpXFC6/b9/xU93TkhZQh2kqiGX1tQdO7EFtaDeGIaBlZfUx41uIp0eV6MGZ1IFcEUnYGuVGMcj3hP+0ZlgYnSg==","signatures":[{"sig":"MEQCIDsKBFoVWTei1Z5QTKhX1nfcC4nyCqzyfAy5SYCdIJK0AiAOLle5Pmyzo6ttA6ooHjUul+t7olY13wjvj+ccOtidUw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":861989},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"b9343f4b0b831ec7f88c7c10019c57f656c666cc","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"node-fetch":"^2.6.6","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.10_1709911572949_0.7074899184157923","host":"s3://npm-registry-packages"}},"1.0.11":{"name":"@airstack/frames","version":"1.0.11","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.11","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"077b51218fca28d292c185ba564f05d9badd652c","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.11.tgz","fileCount":468,"integrity":"sha512-WQQtgn32/Zkzr3OJUqFiHWsPxUc30z2F1M8V/7yFrhJMD0UmMukYEW5wrXKrJCqmB2boRTQddUrUR9AcDIg8AQ==","signatures":[{"sig":"MEUCIFhbtOCVdZC6ViL9ygPhNwnrTablRMnNdpYQBCfXpEjWAiEAuF37d0wc09QdhdkqStcyvUoBNXbLDdXJbOeIIre3sFM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":906491},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"b1baf3565000c2a0da6c71def2021046414c39c1","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"node-fetch":"^2.6.6","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.11_1710287951801_0.641681889841341","host":"s3://npm-registry-packages"}},"1.0.12":{"name":"@airstack/frames","version":"1.0.12","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.12","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"ae4924cb0886e8069f2e2338aee80cd803147b1c","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.12.tgz","fileCount":468,"integrity":"sha512-dzaZUaN3BQuBYAkMdTmFBszvJdShJ6j/iGgKREksTB3rJDArqylV7nxUC7HoXuAViV05v1a6WoreFVbw+FiGbA==","signatures":[{"sig":"MEQCIG8Ql0ZHgiBHE+Jip2DifIzSv/15qGQLuBerlRa/RsmuAiBaW2xnlF18SU7CFm15+uj/kcrGaUme/IVT6ynbana1Bw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":907226},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"8376bb63001768990c160387234f43ed792bcc72","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"node-fetch":"^2.6.6","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.12_1710331784408_0.6103431526123264","host":"s3://npm-registry-packages"}},"1.0.13":{"name":"@airstack/frames","version":"1.0.13","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.13","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"0ab127956a71cf2d151e3226e0b5272da63ced0a","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.13.tgz","fileCount":513,"integrity":"sha512-/obCHvvn73+Ee3gm2Zz6oglGpCb/2O4XMSJc/NvbEdX+FqiOCW+Vob5CzQAus3s1l06zFPImdg5oxWtH20l62A==","signatures":[{"sig":"MEUCIQCZeoNn/c6lQQbsNA/TDO899sCVZGPwKq06y0hNAlV79AIgVm0wmzPrwDmE+BFSRE3Fx00Nl+ADfbjEVUcRVINEP4I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1117169},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"5d7bd1994b10cec839e9745de2dc178ea818d701","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","protobufs:generate":"buf generate schemas"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","viem":"^2.8.9","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.13_1710758603861_0.06552096179401379","host":"s3://npm-registry-packages"}},"1.0.14":{"name":"@airstack/frames","version":"1.0.14","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.14","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"11f85fd6de46f7e6d7323ec563e4db1673d5bd39","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.14.tgz","fileCount":513,"integrity":"sha512-FChlLeYmzu51lmEcN4amrcFra6JFWWWN7iHK8NP2stYxrZCSK6MHNAKrVTQhOQhFA6bJEGWMRRpECtgF+RNiFw==","signatures":[{"sig":"MEQCIBnG9lwm1NZUg1SRd0huvipAQFJZHv01WJZDEzkg7wqCAiBx3Zx72aWBkrExPfKVdnbdnvKxk+h/lS9ly41Q3r1MHg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1117451},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"b2ec1f4f96c662297b407b2645a1d24eca25988d","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","protobufs:generate":"buf generate schemas"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","viem":"^2.8.9","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.14_1710761604729_0.8738625345548225","host":"s3://npm-registry-packages"}},"1.0.15":{"name":"@airstack/frames","version":"1.0.15","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.15","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"ee3ae52e2a64af7200b9a3cc9cdc6bb2fa731ca2","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.15.tgz","fileCount":513,"integrity":"sha512-ocC7RnnHB2uR0geDzZQ9gOEBbz5ISAc4p/Bzv4Qik+MJpxveYlYVFkYVTiN8MMD4z5xjLKcNIuazWwXgAopeWw==","signatures":[{"sig":"MEQCIFq85m49fSJZovo39KDro4bNHFcfMoLlHZ3/+jKXP6AeAiApR0uEJUMbTOOjPglD6hq8WaXqu9Lat6pvHeF9gAt6Ig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1117515},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"190cb9220b826d72f5c819c25efddd1b44c82876","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","protobufs:generate":"buf generate schemas"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","viem":"^2.8.9","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.15_1710762154745_0.6706247379197914","host":"s3://npm-registry-packages"}},"1.0.16":{"name":"@airstack/frames","version":"1.0.16","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.16","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"37f5bdaf559fd2df7df73194e2e451a5eaca5c9d","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.16.tgz","fileCount":513,"integrity":"sha512-k9NkclhSTE8fcgtu3dtTEzk+ih/4rGy9GHC4i2yNnVzjKs/2459IdM/5okmGgE0DBDLHyamZOq3Ekti9DmZQXQ==","signatures":[{"sig":"MEUCIF3qas4FofnWDtbebRUX+MKXE5z2I/mzenbi5AOYR+3jAiEAu12EVQoPn9X86ZaPXpEHmj99fo5f3db1XUfzNVb5+Po=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1129389},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"acdf553f31e0d8100c7a1af13d697d4a78ee88e7","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","protobufs:generate":"buf generate schemas"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","viem":"^2.8.9","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.16_1710770391561_0.4579656969139072","host":"s3://npm-registry-packages"}},"1.0.17":{"name":"@airstack/frames","version":"1.0.17","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.17","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"0df9d367a0a8a7d94fc84f291412f0468e98526f","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.17.tgz","fileCount":513,"integrity":"sha512-8+fHMaBKmtah3lDCt1cwfa7fjJX8XtVN2C/c+48C7XOhrGsNOGDkVlTT8xZslop2mBJJP5OMwQzq1iFuV/4I2w==","signatures":[{"sig":"MEYCIQCg+/hTn5pbIH6eiFzOGDMgnuFHPQZvXC41Pnpgy62nvAIhAOcngsyWIOGsA9ZuMkyFLylBaoOFlohb0bIocMx5CFNN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1129978},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"acdf553f31e0d8100c7a1af13d697d4a78ee88e7","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","protobufs:generate":"buf generate schemas"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","viem":"^2.8.9","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.17_1710771749655_0.08293308764235796","host":"s3://npm-registry-packages"}},"1.0.18":{"name":"@airstack/frames","version":"1.0.18","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.18","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"1d60b1ba55675891af0c337f924084ac07e2fcff","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.18.tgz","fileCount":513,"integrity":"sha512-ifMVEfo40r/neLBtAYPHxlYXpGIgDXkzeSRLWjLdnuEDkLXL8l7LEdG6Sg9gKlBAB83ya0sGQOagGXEDqzz79A==","signatures":[{"sig":"MEYCIQDeB77z/sSsgUp5+Bks4YQHL/U58vXgVuy/r17Hfv6E0gIhAMUd58lON85OzimxfV3KeiyPveZqPfogRGC+vUvSf8Ag","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1126454},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"acdf553f31e0d8100c7a1af13d697d4a78ee88e7","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","protobufs:generate":"buf generate schemas"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","viem":"^2.8.9","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.18_1710772301521_0.24256101212577574","host":"s3://npm-registry-packages"}},"1.0.19":{"name":"@airstack/frames","version":"1.0.19","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.19","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"936b12a342a3d8b0cdc622f05b3cdc113ac60662","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.19.tgz","fileCount":498,"integrity":"sha512-VKUgPtZR0umlrKl9SOOrTnPproFkSiOUHQ76w7vX6zHB9wPh4YVLD5wGzXLov9o+3NVINU344I+b4fVJHe5EXA==","signatures":[{"sig":"MEUCIGEVWNTUg+iNgK/aWJsK9g0AEn9+wP6nO39gd7Ix7UX5AiEA90s1Lc3V2bb04fxTLijhJI5REpW5RjsXJq+309gDW9s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":973206},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"bcd628d8c9930be53a3b493f55fa811fb67d663b","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"9.7.1","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"21.6.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","viem":"^2.8.9","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.19_1710787628035_0.17012073515068038","host":"s3://npm-registry-packages"}},"1.0.20":{"name":"@airstack/frames","version":"1.0.20","keywords":[],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.0.20","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"5bccbcac35a7bcd7adda6181b417e75093b4db79","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.0.20.tgz","fileCount":543,"integrity":"sha512-4HjTsCms3oGvav28tRC1GpeZct4dwa+tlo/E/6LVcM14yvtjWSK7dLAkWLmgtXEIvxdsMG6NtbDCPI5cSvLY9A==","signatures":[{"sig":"MEUCIQD48wQ5/LzfyJQyD4tjH13OTJhh2b7IFF9OtASIQkYWEQIgSR+92k+a2RRnhOJ5qYtNW4ZC28POnxzat6+N9G1fQrA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1061516},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"936acebf96839bd56ac4c40b5117794ba65134d0","scripts":{"lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json & npm run copy:fonts","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","copy:fonts":"npx ncp ./src/fonts/ ./dist/fonts/"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.4.1","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.0.20_1711058996880_0.31575357169331264","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@airstack/frames","version":"1.1.0","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.0","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"55753861f863705c7ffe4ca8ae269184245d9f20","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.0.tgz","fileCount":593,"integrity":"sha512-vhYlHwOkc5l4u5LvmOJqW1fAVd+v4mKsd9frnlvl3pO92a2NwvIfJLsBWVoc5CB7ERGaZ9y3KahMXA8T8rgd7g==","signatures":[{"sig":"MEYCIQDG1bTK3nOrzBiXksLMS4WtfyR29kdjCoV3NvBCpIlK7AIhAKJSmZL/iCL+WgmcJPUYdSxKgxzO0F7sbONnOaJVsd6Q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1178678},"main":"dist/cjs/index.js","module":"dist/esm/index.js","engines":{"node":"20.x"},"gitHead":"0d0cb4c42a123e720416666fc736d545b47e09d3","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.0_1712254511983_0.07507654700434419","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@airstack/frames","version":"1.1.1","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.1","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"cf115dae1f5497a3caca8653d948e4830a56287c","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.1.tgz","fileCount":608,"integrity":"sha512-mtEsJWRfc6wh+GaWwFHUokj/gdYM9JNTms1B5DieD/TTr8M48xLEw90TIMbDwnVGtz6O72TvAoLaKmSdo5TH9A==","signatures":[{"sig":"MEYCIQDU6k08946CbLOn2rjz/J6nqr8aebmLNcfsxewy0HLNhwIhAPp0TWI7/CTWe3Ify7QaO5RqT2jx1RBJf8f5INDRs2bz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1217039},"main":"dist/cjs/index.js","module":"dist/esm/index.js","engines":{"node":"20.x"},"gitHead":"ce6e61d1b9f4f9399f17973767d4586862eea521","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.5","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.1_1712265401255_0.5005503079399733","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@airstack/frames","version":"1.1.2","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.2","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"4acdd8a40d9e87d02b83b56207dcfb908b28ffe6","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.2.tgz","fileCount":633,"integrity":"sha512-uOA7hIUBqmUCs3n/GqwK+w+RXxH8BGNjYdYy914rQdH4FlQoInQ4Vb6a4aPHuaOY+sgqYZ/3Y92YBQXdvDiTcg==","signatures":[{"sig":"MEQCICtcD+DVdLBOz2tElaOaoP3m9MQbovlojMjqPx7pAJ8KAiBeNEjvC/mh+UxrceYqnJhOqrhPD6uxkUATdMSnqUrFhg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1258750},"main":"dist/cjs/index.js","module":"dist/esm/index.js","engines":{"node":"20.x"},"gitHead":"446b8aa4d50f96e611deae9fe0a3e69bc3bb8e62","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.6","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.2_1712485303311_0.13536672354175283","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"@airstack/frames","version":"1.1.3","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.3","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"a6bf9de7bd86cb45dced697eb15dc47825da1f38","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.3.tgz","fileCount":638,"integrity":"sha512-f5Eb3PF9Ay9k2ExKiv1kOyBVWXx4WeTyCCGK8Ahj2pstOt6jcSkRg9SQPrEH35S3zNaHk0pps+gK4sAIpBV9kg==","signatures":[{"sig":"MEYCIQD3HUhZqYWPB/U/JxMHD2gUIYlMa2CaGXOVE9Rjc5YjVAIhAN8vyYwY/AFd0TYyuAHbLfjyTMHh9j4PJ2IyKLd4oYlL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1262702},"main":"dist/cjs/index.js","module":"dist/esm/index.js","engines":{"node":"20.x"},"gitHead":"dace45eb7896fadb5f23cecee2c735f7c701a46b","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.6","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.3_1712939887726_0.2918723789799298","host":"s3://npm-registry-packages"}},"1.1.4":{"name":"@airstack/frames","version":"1.1.4","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.4","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"f4fec6e6dcda1d399e70d4be63315ac873eb7b85","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.4.tgz","fileCount":638,"integrity":"sha512-foMwOAMipkRQK7cDTeWxpmb3vwEiPZRRhtGGuuAUQropMp4fCIDpbloXakTJFiVoMPnYpfYIpHH/SkDKguZalQ==","signatures":[{"sig":"MEUCIQDPisdDjFMfIscA/OYVyGfXJBxCc/HFa+6OFyl4VsBz7QIgc396YogmanqZHS0YENvz3cMJeFz1hZEBbvFjUbyf85A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1262663},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"b73dd20b1bcb3980412a924eb63f2b795cab1656","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.6","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.4_1712940091599_0.18925481401753208","host":"s3://npm-registry-packages"}},"1.1.5":{"name":"@airstack/frames","version":"1.1.5","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.5","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"2bb3aab9a1582afe8270571afbd78796613883f2","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.5.tgz","fileCount":638,"integrity":"sha512-HzhVuyYsY5OM4EigMF7yfAif1NtAHxGaxBio7/pXeOw7jVaFRqasF+jniV93VACx71xzSpLVVHIA/S846ZmyIA==","signatures":[{"sig":"MEUCIQDDxZpqQLizePX8jmjs6coqmoRBBhcO6uV9G0qeF5ziGQIgTLR6jiz3+7pvrJGdOPo44+kfuhPSvtWIj9y/uhhDZnw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1304392},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"b73dd20b1bcb3980412a924eb63f2b795cab1656","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.6","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.5_1713347907458_0.4094455374597381","host":"s3://npm-registry-packages"}},"1.1.6":{"name":"@airstack/frames","version":"1.1.6","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.6","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"3cb913fa7a3fb2e325085374fe2f2a1e3df4e303","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.6.tgz","fileCount":638,"integrity":"sha512-Ey1B8StVzDqrTzaT01unYErxvPcIzLZ8KXGDEI9pUn+8TurCayWBRUCtkljEF1PgkGedUjwt+pYyAG3CsjY5yQ==","signatures":[{"sig":"MEQCIDyxf7fbcbo+7zNcj1KawnFoZqf4ryXtpU8bz0Y5ntAlAiAwhzV3xD9ZfpzNtUZPI91FgN67CVjFcfC9tz5VrdWEGQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1309589},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"41b2b1953122feb33146a0de82317da2a922ab7d","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.6","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.6_1715066789368_0.9127032895720504","host":"s3://npm-registry-packages"}},"1.1.7":{"name":"@airstack/frames","version":"1.1.7","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.7","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"9ea0082fc11481079f24e54a2a34b06b877cff58","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.7.tgz","fileCount":638,"integrity":"sha512-IQ5tYYTWZVmvQR7bsP9QnjmLDUkIaV4/n/mUlehWTd6lLFC8gs/BcLy4/lGtQNHM1j9r9m3LT8P7FT3zsuDAIw==","signatures":[{"sig":"MEUCIBBP18+vrNuLWdKy1OUE2dzol1hGH6zzSiUCwItKzBfsAiEA7hY3lFjBifJkwzVIuKm36RVA7ARq62InezPqRD95tYQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1325258},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"3c502ee741b6ad1961dae1f6aeeaed70951e78fa","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.6","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.7_1715081625405_0.12833309825979455","host":"s3://npm-registry-packages"}},"1.1.8":{"name":"@airstack/frames","version":"1.1.8","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.8","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"1c291061c113599225e480318ab6a220e194002a","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.8.tgz","fileCount":703,"integrity":"sha512-hmp4MRMiSrqi0/KsZOd1OjoPTi5LKM3aJIbrONjZlmVTt04by/AuhOgg9jejX7QNS4JYCB3M9wRc2UdUwZUvXQ==","signatures":[{"sig":"MEQCIHXgmYp7lbzOCmXTTZXeUttlzdDnExXiCAh+b8BjGjG2AiB8EuLi0v2/JSFX+ANBACC43LFV9S2k6miix83IlHQRRA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1413003},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"e12eea5b2a75102ca5a4e6b326ef7cb8812cd4be","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.6","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.8_1715187327512_0.0235603881117481","host":"s3://npm-registry-packages"}},"1.1.9":{"name":"@airstack/frames","version":"1.1.9","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.9","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"bdb35432a3042d74ae5e84d60869c97cf0968d75","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.9.tgz","fileCount":703,"integrity":"sha512-Nx7AIqbWbnof4G7g/6d4dpTnyc6zA8QYgzJ3cLyXuKJqfr1OxcsTquhgbcfGWEIzZJ4Y1nHSn+jMRyLJ+Vekvw==","signatures":[{"sig":"MEQCIBIRdt1JXnju4jXm1hHnuxdYJmP+Vq+mlwq8wdVGGDnyAiAC1DCsxFXytr8MDKjhnd4kNpS5+stOBbYLjy9JmqUjzg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1456758},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"ea949e05c4946586b94ba84ee33b04aa6b37a710","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.6","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.9_1717083824942_0.013232284562352259","host":"s3://npm-registry-packages"}},"1.1.10":{"name":"@airstack/frames","version":"1.1.10","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.10","homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"bd478931295a9040cbaae41916e16a905ce20335","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.10.tgz","fileCount":723,"integrity":"sha512-fYoJMJuFbBJNHQGtmOa3vGSuW9rtVEgOrxlvA6WieMv1mhLvxM1nSKLysUX952poFiXR0DNht/fEZDGUizQ4eQ==","signatures":[{"sig":"MEUCIQDcGhz9f9wiX1mh75Hc9znIkWeOmgsAJ/YUdzwo7Ri7pgIgTkSDkvLyIfMHsgG3Hd2YD9oG7/fs0A44Lbf5hdOus/U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1490118},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"67316626954138f38fc44b1e5847a030c1d16430","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.6","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.10_1719483732266_0.5605834111473154","host":"s3://npm-registry-packages"}},"1.1.11":{"name":"@airstack/frames","version":"1.1.11","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.11","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"a1d509a539c1d4974f8c4455224864e960432331","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.11.tgz","fileCount":733,"integrity":"sha512-FFz0tSE3cNzVn6+Y3zhL1G3iA2iCFYZgOY7tQZ7hzqvq6OlV/+RlUbZABuaqvNoyWQPKIeYUp7qkAOdn8Rh7hA==","signatures":[{"sig":"MEYCIQC+vEOS8CNmeeR4PkKTzh+J7uTpo35rvbZcGggCxqGF/AIhAK+7qLJr4niRHHjrZ9t1PEBtB5RFlSX5+O/xHwdHCzg8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1510836},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"0bfbc4b7a20bbf53d9ad8205381b52206f89c003","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.6","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.11_1720003618806_0.6958692201905281","host":"s3://npm-registry-packages"}},"1.1.12":{"name":"@airstack/frames","version":"1.1.12","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","_id":"@airstack/frames@1.1.12","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"dist":{"shasum":"cf3a58f09d4e6a0ba7447189b7f6bef1e0587cfe","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.1.12.tgz","fileCount":733,"integrity":"sha512-BMyGynxfFUuePbrkynYt58t2g6xjHVfuoAAcKLWyHh+J17fNUzSzqAVrLMhp+3QP6gvJ9w34hVRjEfXFLzXxqw==","signatures":[{"sig":"MEQCICq/y28TnzopXBTp61VUupIEfb4cNPzM2K746tmb633QAiBWllCoGPZ+0KzcJ8LOEIwRNah4eukvFc4zKv71oS2zhw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1523272},"main":"dist/cjs/index.js","module":"dist/esm/index.js","gitHead":"98d80e479f7ceb1f4ba35a039f687cd05a6de86c","scripts":{"dev":"next dev","lint":"eslint src/**/*.ts","test":"jest --coverage --passWithNoTests","build":"npm run build:next && npm run build:sdk","start":"next start","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","ts-lint":"tsc --noEmit --incremental","generate":"npx graphql-codegen","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","build:next":"next build","deploy:prod":"vercel --prod","deploy:preview":"vercel"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"repository":{"url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git","type":"git"},"_npmVersion":"10.2.4","description":"Official Airstack Frames SDK","directories":{},"_nodeVersion":"18.19.1","dependencies":{"buf":"^0.1.1","hono":"^4.1.0","uuid":"^9.0.1","viem":"^2.8.9","react":"^18.2.0","sharp":"^0.32.6","satori":"^0.10.13","sha256":"^0.2.0","@vercel/og":"^0.6.2","node-fetch":"^2.6.6","@bufbuild/buf":"^1.30.0","@airstack/node":"^0.0.6","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","graphql-request":"^6.1.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.1.4","dotenv":"^16.4.1","vercel":"^33.6.3","ts-jest":"^29.1.2","ts-node":"^10.9.2","protobufjs":"^7.2.6","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/uuid":"^9.0.8","@types/react":"^18.2.73","@vercel/node":"^3.0.26","@types/sha256":"^0.2.2","@parcel/watcher":"^2.4.0","@types/node-fetch":"^2.6.11","@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/frames_1.1.12_1720420302060_0.4776080938972882","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@airstack/frames","version":"1.2.0","description":"Official Airstack Frames SDK","main":"dist/cjs/index.js","typings":"dist/types/index.d.ts","module":"dist/esm/index.js","scripts":{"test":"jest --coverage --passWithNoTests","generate":"npx graphql-codegen","build":"npm run build:next && npm run build:sdk","build:sdk":"rm -rf dist & tsc -p tsconfig.esm.json & npm run ts-lint & tsc -p tsconfig.cjs.json","lint":"eslint src/**/*.ts","ts-lint":"tsc --noEmit --incremental","prepare":"rm -rf dist & tsc -p tsconfig.esm.json & tsc -p tsconfig.cjs.json","dev":"next dev","build:next":"next build","start":"next start","deploy:preview":"vercel","deploy:prod":"vercel --prod"},"repository":{"type":"git","url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git"},"keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","devDependencies":{"@farcaster/fishery":"^2.2.3","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.4","@graphql-codegen/typescript-operations":"^4.1.2","@parcel/watcher":"^2.4.0","@types/jest":"^29.5.12","@types/node":"^20.11.17","@types/node-fetch":"^2.6.11","@types/react":"^18.2.73","@types/sha256":"^0.2.2","@types/uuid":"^9.0.8","@vercel/node":"^3.0.26","dotenv":"^16.4.1","jest":"^29.7.0","next":"^14.1.4","protobufjs":"^7.2.6","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","vercel":"^33.6.3"},"dependencies":{"@airstack/node":"^0.0.6","@bufbuild/buf":"^1.30.0","@bufbuild/protobuf":"^1.8.0","@bufbuild/protoc-gen-es":"^1.8.0","@farcaster/core":"^0.14.5","@resvg/resvg-js":"^2.6.0","@vercel/og":"^0.6.2","buf":"^0.1.1","graphql-request":"^6.1.0","hono":"^4.1.0","node-fetch":"^2.6.6","react":"^18.2.0","satori":"^0.10.13","sha256":"^0.2.0","sharp":"^0.32.6","uuid":"^9.0.1","viem":"^2.8.9"},"_id":"@airstack/frames@1.2.0","gitHead":"e2da0e4a0fd8e9167dc624e0f42e393b639b97bd","_nodeVersion":"18.19.1","_npmVersion":"10.2.4","dist":{"integrity":"sha512-nuij8rx42Acuz+QpTiRMHZkkECDn7BqgD5GPFLJ9WUrcUiNAJEL54ivqbBVvCQnblguwAySIHdmnRkM7y86GKQ==","shasum":"650e34a7f35357c26eb65b248597fdd95ae0881a","tarball":"https://registry.npmjs.org/@airstack/frames/-/frames-1.2.0.tgz","fileCount":448,"unpackedSize":928622,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPA/IwMbgkZ++dho2kljD13B7v2TfBhVnCtn/hd6erKgIhANjKd0xTqbI5J0sZL3GpyYr9e9diDp5o1V4TmPz3Sp05"}]},"_npmUser":{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},"directories":{},"maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frames_1.2.0_1724353862870_0.9931900728791376"},"_hasShrinkwrap":false}},"time":{"created":"2024-02-21T18:23:37.041Z","modified":"2024-08-22T19:11:03.460Z","1.0.0":"2024-02-21T18:23:37.390Z","1.0.1":"2024-02-21T18:42:12.016Z","1.0.2":"2024-02-21T18:44:34.494Z","1.0.3":"2024-02-22T09:27:57.210Z","1.0.4":"2024-02-22T15:57:22.878Z","1.0.5":"2024-02-27T18:39:45.206Z","1.0.6":"2024-03-04T15:58:19.334Z","1.0.7":"2024-03-04T16:02:25.532Z","1.0.8":"2024-03-05T14:34:19.167Z","1.0.9":"2024-03-05T16:30:23.337Z","1.0.10":"2024-03-08T15:26:13.198Z","1.0.11":"2024-03-12T23:59:12.016Z","1.0.12":"2024-03-13T12:09:44.586Z","1.0.13":"2024-03-18T10:43:24.116Z","1.0.14":"2024-03-18T11:33:24.896Z","1.0.15":"2024-03-18T11:42:34.926Z","1.0.16":"2024-03-18T13:59:51.744Z","1.0.17":"2024-03-18T14:22:29.832Z","1.0.18":"2024-03-18T14:31:41.713Z","1.0.19":"2024-03-18T18:47:08.290Z","1.0.20":"2024-03-21T22:09:57.076Z","1.1.0":"2024-04-04T18:15:12.302Z","1.1.1":"2024-04-04T21:16:41.615Z","1.1.2":"2024-04-07T10:21:43.580Z","1.1.3":"2024-04-12T16:38:08.083Z","1.1.4":"2024-04-12T16:41:31.901Z","1.1.5":"2024-04-17T09:58:27.789Z","1.1.6":"2024-05-07T07:26:29.646Z","1.1.7":"2024-05-07T11:33:45.741Z","1.1.8":"2024-05-08T16:55:27.737Z","1.1.9":"2024-05-30T15:43:45.201Z","1.1.10":"2024-06-27T10:22:12.520Z","1.1.11":"2024-07-03T10:46:59.023Z","1.1.12":"2024-07-08T06:31:42.358Z","1.2.0":"2024-08-22T19:11:03.163Z"},"bugs":{"url":"https://github.com/Airstack-xyz/airstack-frames-sdk/issues"},"author":{"name":"Yoseph Kurnia Soenggoro"},"license":"MIT","homepage":"https://github.com/Airstack-xyz/airstack-frames-sdk#readme","keywords":["airstack","frames","farcaster","web3","onchain","data","api","ethereum"],"repository":{"type":"git","url":"git+https://github.com/Airstack-xyz/airstack-frames-sdk.git"},"description":"Official Airstack Frames SDK","maintainers":[{"name":"yoseph_ks","email":"yoseph@airstack.xyz"},{"name":"0xsarvesh","email":"sarvesh@airstack.xyz"},{"name":"aadil-airstack","email":"aadil@airstack.xyz"},{"name":"sharathkrml","email":"sharath@airstack.xyz"},{"name":"deepesh-kn","email":"deepesh@airstack.xyz"}],"readme":"<div align=\"center\">\n  <h1 align=\"center\">Official Airstack Frames SDK</h1>\n  <h3>Powered By</h3>\n  <a align=\"center\" href=\"https://airstack.xyz\" target=\"_blank\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"./assets/logo-dark.png\">\n    <img alt=\"Airstack logo\" src=\"./assets/logo-light.png\" width=\"auto\" height=\"80\">\n  </picture>\n  </a>\n</div>\n\nThe Airstack Frames SDK empowers developers to seamlessly integrate Farcaster data, including Farcaster user details, Farcaster followers and followings, Farcaster casts, Farcaster channels and more, into their Frames using just a few lines of code.\n\nAdditionally, developers can leverage the SDK to create an allow list feature, enabling checks for channel followings, user following status, and more.\n\nDesigned with TypeScript, the SDK offers full type support for those building Frames with TypeScript.\n\n## Table Of Contents\n\n- [Table Of Contents](#table-of-contents)\n- [Install](#install)\n- [Set Environment Variables](#set-environment-variables)\n- [Get Started](#get-started)\n- [Functions](#functions)\n  - [`validateFramesMessage`](#validateframesmessage)\n  - [`generateCaptchaChallenge`](#generatecaptchachallenge)\n  - [`validateCaptchaChallenge`](#validatecaptchachallenge)\n  - [`getFarcasterUserDetails`](#getfarcasteruserdetails)\n  - [`getFarcasterFollowers`](#getfarcasterfollowers)\n  - [`getFarcasterFollowings`](#getfarcasterfollowings)\n  - [`getFarcasterUserCasts`](#getfarcasterusercasts)\n  - [`getFarcasterUserReplies`](#getfarcasteruserreplies)\n  - [`getFarcasterUserRecasts`](#getfarcasteruserrecasts)\n  - [`getFarcasterUserQuotedRecasts`](#getfarcasteruserquotedrecasts)\n  - [`getFarcasterUserLikes`](#getfarcasteruserlikes)\n  - [`getFarcasterChannelDetails`](#getfarcasterchanneldetails)\n  - [`getFarcasterChannelParticipants`](#getfarcasterchannelparticipants)\n  - [`getFarcasterChannelsByParticipant`](#getfarcasterchannelsbyparticipant)\n  - [`getFarcasterChannelsByHost`](#getfarcasterchannelsbyhost)\n  - [`searchFarcasterChannels`](#searchfarcasterchannels)\n  - [`searchFarcasterUsers`](#searchfarcasterusers)\n  - [`checkChannelActionsByFarcasterUser`](#checkchannelactionsbyfarcasteruser)\n  - [`checkCastReactionsByFarcasterUser`](#checkcastreactionsbyfarcasteruser)\n  - [`checkIsFollowingFarcasterUser`](#checkisfollowingfarcasteruser)\n  - [`checkIsFollowedByFarcasterUser`](#checkisfollowedbyfarcasteruser)\n  - [`createAllowList`](#createallowlist)\n  - [`fetchQuery`](#fetchquery)\n  - [`fetchQueryWithPagination`](#fetchquerywithpagination)\n- [Frog Middlewares](#frog-middlewares)\n  - [Farcaster Data Middleware](#farcaster-data-middleware)\n  - [Allow List Middleware](#allow-list-middleware)\n- [Frames.js Middlewares](#framesjs-middlewares)\n  - [Farcaster Data Middleware](#farcaster-data-middleware-1)\n  - [Allow List Middleware](#allow-list-middleware-1)\n- [Enum](#enum)\n  - [`FarcasterReactionCriteria`](#farcasterreactioncriteria)\n  - [`FarcasterChannelActionType`](#farcasterchannelactiontype)\n  - [`FrameRatio`](#frameratio)\n  - [`Features`](#features)\n  - [`AllowListCriteriaEnum`](#allowlistcriteriaenum)\n- [Paginations](#paginations)\n\n## Install\n\nTo install the Frames SDK, use the command below:\n\n```bash\nnpm install @airstack/frames\n```\n\n## Set Environment Variables\n\nCreate a `.env.local` file and add your [Airstack API key](https://app.airstack.xyz/profile-settings/api-keys) as an environment variable:\n\n```\nAIRSTACK_API_KEY=\"YOUR_AIRSTACK_API_KEY\"\n```\n\n## Get Started\n\nTo use any of the functions offered by the SDK, you'll need to call the `init` function before calling the functions and input your [Airstack API key](https://app.airstack.xyz/profile-settings/api-keys).\n\n```ts\nimport { init } from \"@airstack/frames\";\n\ninit(process.AIRSTACK_API_KEY);\n```\n\n## Functions\n\n### `validateFramesMessage`\n\nValidate frames signature packet with Farcaster Hub for your Farcaster Frames\n\n**Input**\n\n| Field  | Type                         | Required | Description             |\n| ------ | ---------------------------- | -------- | ----------------------- |\n| `body` | `ValidateFramesMessageInput` | true     | Frame Signature Packet. |\n\n**Code Sample**\n\n```ts\nimport {\n  validateFramesMessage,\n  ValidateFramesMessageInput,\n  ValidateFramesMessageOutput,\n} from \"@airstack/frames\";\n\nconst body: ValidateFramesMessageInput = {\n  untrustedData: {\n    fid: 289309,\n    url: \"https://sample.frames\",\n    messageHash: \"0xabc\",\n    timestamp: 1709198011100,\n    network: 1,\n    buttonIndex: 1,\n    castId: {\n      fid: 289309,\n      hash: \"0x0000000000000000000000000000000000000001\",\n    },\n  },\n  trustedData: {\n    messageBytes:\n      \"0a61080d109dd41118d0c9c72f20018201510a3168747470733a2f2f70656c6963616e2d666f6e642d64697374696e63746c792e6e67726f6b2d667265652e6170702f6f6710011a1a089dd4111214000000000000000000000000000000000000000112146357261fa893e4be85f78178babaca876f9a1fac18012240d1ed649964018377641a78638f0c19d3c346c1eb1a47e856c0fcd87d3fc72ff98172f939fc18ffdd16af746144279e6debb3f4913f491c69d22f6703e554510a280132200295183aaa021cad737db7ddbc075964496ece1c0bcc1009bdae6d1799c83cd4\",\n  },\n};\nconst res: ValidateFramesMessageOutput = await validateFramesMessage(body);\n```\n\n**Response Sample**\n\n```json\n{\n  \"isValid\": true,\n  \"message\": {\n    \"data\": {\n      \"type\": 13,\n      \"fid\": 289309,\n      \"timestamp\": 99738832,\n      \"network\": 1,\n      \"castAddBody\": null,\n      \"castRemoveBody\": null,\n      \"reactionBody\": null,\n      \"verificationAddAddressBody\": null,\n      \"verificationRemoveBody\": null,\n      \"userDataBody\": null,\n      \"linkBody\": null,\n      \"usernameProofBody\": null,\n      \"frameActionBody\": {\n        \"url\": [\n          104, 116, 116, 112, 115, 58, 47, 47, 112, 101, 108, 105, 99, 97, 110,\n          45, 102, 111, 110, 100, 45, 100, 105, 115, 116, 105, 110, 99, 116,\n          108, 121, 46, 110, 103, 114, 111, 107, 45, 102, 114, 101, 101, 46, 97,\n          112, 112, 47, 111, 103\n        ],\n        \"buttonIndex\": 1,\n        \"castId\": {\n          \"fid\": 289309,\n          \"hash\": [\n            211, 29, 52, 211, 77, 52, 211, 77, 52, 211, 77, 52, 211, 77, 52,\n            211, 77, 52, 211, 77, 52, 211, 77, 52, 211, 77, 52, 211, 77, 52, 211\n          ]\n        },\n        \"inputText\": [],\n        \"state\": [],\n        \"transactionId\": []\n      }\n    },\n    \"hash\": [\n      211, 30, 183, 231, 189, 186, 213, 246, 188, 247, 119, 184, 109, 239, 57,\n      127, 191, 53, 239, 198, 218, 109, 167, 26, 243, 190, 159, 245, 173, 95,\n      105\n    ],\n    \"hashScheme\": 1,\n    \"signature\": [\n      209, 237, 100, 153, 100, 1, 131, 119, 100, 26, 120, 99, 143, 12, 25, 211,\n      195, 70, 193, 235, 26, 71, 232, 86, 192, 252, 216, 125, 63, 199, 47, 249,\n      129, 114, 249, 57, 252, 24, 255, 221, 22, 175, 116, 97, 68, 39, 158, 109,\n      235, 179, 244, 145, 63, 73, 28, 105, 210, 47, 103, 3, 229, 84, 81, 10\n    ],\n    \"signatureScheme\": 1,\n    \"signer\": [\n      211, 29, 54, 247, 157, 124, 221, 166, 154, 211, 109, 92, 105, 222, 247,\n      237, 214, 251, 117, 214, 220, 211, 190, 125, 235, 142, 61, 233, 231, 30,\n      213, 205, 27, 113, 205, 116, 211, 214, 221, 105, 238, 157, 215, 191, 125,\n      115, 205, 220, 119\n    ],\n    \"dataBytes\": null\n  }\n}\n```\n\n### `generateCaptchaChallenge`\n\nGenerate Captcha challenge for Farcaster Frames.\n\n**Input**\n\n| Field                        | Type                        | Required | Description                                                     |\n| ---------------------------- | --------------------------- | -------- | --------------------------------------------------------------- |\n| `input.options.ratio`        | [`FrameRatio`](#frameratio) | false    | Ratio of the Frame. Defaults to 1.91:1.                         |\n| `input.options.includeImage` | `boolean`                   | false    | Whether to include the image in the response. Defaults to true. |\n\n**Code Samples**\n\n```ts\nimport {\n  FrameRatio,\n  generateCaptchaChallenge,\n  GenerateCaptchaChallengeInput,\n  GenerateCaptchaChallengeOutput,\n} from \"@airstack/frames\";\n\nconst input: GenerateCaptchaChallengeInput = {\n  options: { ratio: FrameRatio._1_91__1, includeImage: true },\n};\n\nconst res: GenerateCaptchaChallengeOutput = await generateCaptchaChallenge(\n  input\n);\n\nconsole.log(res);\n```\n\n**Response Samples**\n\n```json\n{\n  \"image\": \"data:image/jpeg;base64,...\",\n  \"data\": { \"numA\": 24, \"numB\": 3 },\n  \"state\": {\n    \"captchaId\": \"4ba21c21-ff68-4f0f-8a6f-8ee153f8b0e8\",\n    \"valueHash\": \"ea3fb4d8a0e59f0ab083d8f45257cffd8e760fc0b77194fec2938254180b67ab\"\n  }\n}\n```\n\n### `validateCaptchaChallenge`\n\nValidate Captcha challenges that were generated for Farcaster Frames.\n\n**Input**\n\n| Field                        | Type                        | Required | Description                                                                                                                |\n| ---------------------------- | --------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------- |\n| `input.inputText`            | `string`                    | true     | User input on answer to the captcha for verification.                                                                      |\n| `input.state`                | `Object`                    | true     | State of the Frame, containing all the captcha info generated from [`generateCaptchaChallenge`](#generatecaptchachallenge) |\n| `input.options.ratio`        | [`FrameRatio`](#frameratio) | false    | Ratio of the Frame. Defaults to 1.91:1.                                                                                    |\n| `input.options.includeImage` | `boolean`                   | false    | Whether to include the image in the response. Defaults to true.                                                            |\n\n**Code Samples**\n\n```ts\nimport {\n  FrameRatio,\n  validateCaptchaChallenge,\n  ValidateCaptchaChallengeInput,\n  ValidateCaptchaChallengeOutput,\n} from \"@airstack/frames\";\n\nconst input: ValidateCaptchaChallengeInput = {\n  inputText,\n  state,\n};\n\nconst res: ValidateCaptchaChallengeOutput = await validateCaptchaChallenge(\n  input\n);\n\nconsole.log(res);\n```\n\n**Response Samples**\n\n```json\n{\n  \"image\": \"data:image/jpeg;base64,...\",\n  \"isValidated\": true\n}\n```\n\n### `getFarcasterUserDetails`\n\nFetch Farcaster user details, including profile name, fnames, profile images (resized), user-associated addresses (connected addresses), follower count and following count.\n\n**Input**\n\n| Field | Type     | Required | Description             |\n| ----- | -------- | -------- | ----------------------- |\n| `fid` | `number` | true     | FID of a Farcaster user |\n\n**Code Sample**\n\n```ts\nimport {\n  getFarcasterUserDetails,\n  FarcasterUserDetailsInput,\n  FarcasterUserDetailsOutput,\n} from \"@airstack/frames\";\n\nconst input: FarcasterUserDetailsInput = {\n  fid: 602,\n};\nconst { data, error }: FarcasterUserDetailsOutput =\n  await getFarcasterUserDetails(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n{\n  \"profileName\": \"betashop.eth\",\n  \"fnames\": [\"betashop\", \"betashop.eth\", \"jasongoldberg.eth\"],\n  \"profileImage\": {\n    \"extraSmall\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/extra_small.png\",\n    \"small\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/small.png\",\n    \"medium\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/medium.png\",\n    \"large\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/large.png\",\n    \"original\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/original_image.png\"\n  },\n  \"custodyAddress\": \"0x66bd69c7064d35d146ca78e6b186e57679fba249\",\n  \"connectedAddresses\": [\n    {\n      \"address\": \"0xeaf55242a90bb3289db8184772b0b98562053559\",\n      \"blockchain\": \"ethereum\",\n      \"chainId\": \"1\",\n      \"timestamp\": \"2023-05-31T13:58:49Z\"\n    }\n  ],\n  \"userAssociatedAddresses\": [\n    \"0x66bd69c7064d35d146ca78e6b186e57679fba249\",\n    \"0xeaf55242a90bb3289db8184772b0b98562053559\"\n  ],\n  \"followerCount\": 56141,\n  \"followingCount\": 2270\n}\n```\n\n### `getFarcasterFollowers`\n\nFetch all Farcaster followers of a given FID.\n\n**Input**\n\n| Field   | Type     | Required | Description                                                                                           |\n| ------- | -------- | -------- | ----------------------------------------------------------------------------------------------------- |\n| `fid`   | `number` | true     | FID of a Farcaster user                                                                               |\n| `limit` | `number` | false    | Number of results per pages. Maximum value is 200. For more results, use [paginations](#paginations). |\n\n**Code Sample**\n\n```ts\nimport {\n  getFarcasterFollowers,\n  FarcasterFollowersInput,\n  FarcasterFollowersOutput,\n} from \"@airstack/frames\";\n\nconst input: FarcasterFollowersInput = {\n  fid: 602,\n  limit: 100,\n};\nconst {\n  data,\n  error,\n  hasNextPage,\n  hasPrevPage,\n  getNextPage,\n  getPrevPage,\n}: FarcasterFollowersOutput = await getFarcasterFollowers(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"profileName\": \"allison985\",\n    \"fnames\": [\"allison985\"],\n    \"fid\": \"220757\",\n    \"profileImage\": {\n      \"extraSmall\": \"https://assets.airstack.xyz/image/social/RS9r7sdCb5orXeB0+tLLRPxtnJo80la3zRRVAYc9gPR+ne8TitCLgEJ41Gp1LV6g/extra_small.jpg\",\n      \"small\": \"https://assets.airstack.xyz/image/social/RS9r7sdCb5orXeB0+tLLRPxtnJo80la3zRRVAYc9gPR+ne8TitCLgEJ41Gp1LV6g/small.jpg\",\n      \"medium\": \"https://assets.airstack.xyz/image/social/RS9r7sdCb5orXeB0+tLLRPxtnJo80la3zRRVAYc9gPR+ne8TitCLgEJ41Gp1LV6g/medium.jpg\",\n      \"large\": \"https://assets.airstack.xyz/image/social/RS9r7sdCb5orXeB0+tLLRPxtnJo80la3zRRVAYc9gPR+ne8TitCLgEJ41Gp1LV6g/large.jpg\",\n      \"original\": \"https://assets.airstack.xyz/image/social/RS9r7sdCb5orXeB0+tLLRPxtnJo80la3zRRVAYc9gPR+ne8TitCLgEJ41Gp1LV6g/original_image.jpg\"\n    },\n    \"custodyAddress\": \"0x42fae5a53f0194f6f9587926e206a852c5c726bf\",\n    \"connectedAddresses\": [\n      {\n        \"address\": \"0x42fae5a53f0194f6f9587926e206a852c5c726bf\",\n        \"blockchain\": \"ethereum\",\n        \"chainId\": \"1\",\n        \"timestamp\": \"2023-05-31T13:58:49Z\"\n      }\n    ],\n    \"userAssociatedAddresses\": [\"0x42fae5a53f0194f6f9587926e206a852c5c726bf\"],\n    \"followerCount\": 1,\n    \"followingCount\": 74\n  }\n]\n```\n\n### `getFarcasterFollowings`\n\nFetch all Farcaster followings of a given FID.\n\n**Input**\n\n| Field   | Type     | Required | Description                                                                                           |\n| ------- | -------- | -------- | ----------------------------------------------------------------------------------------------------- |\n| `fid`   | `number` | true     | FID of a Farcaster user                                                                               |\n| `limit` | `number` | false    | Number of results per pages. Maximum value is 200. For more results, use [paginations](#paginations). |\n\n**Code Sample**\n\n```ts\nimport {\n  getFarcasterFollowings,\n  FarcasterFollowingsInput,\n  FarcasterFollowingsOutput,\n} from \"@airstack/frames\";\n\nconst input: FarcasterFollowingsInput = {\n  fid: 602,\n  limit: 100,\n};\nconst {\n  data,\n  error,\n  hasNextPage,\n  hasPrevPage,\n  getNextPage,\n  getPrevPage,\n}: FarcasterFollowingsOutput = await getFarcasterFollowings(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"profileName\": \"jayhuq\",\n    \"fnames\": [\"jayhuq\"],\n    \"fid\": \"1775\",\n    \"profileImage\": {\n      \"extraSmall\": \"https://assets.airstack.xyz/image/social/HmDDiN8HQWR/6f6nrPI8+P6fwctlKaEu/dM8+QnZz/Y=/extra_small.png\",\n      \"small\": \"https://assets.airstack.xyz/image/social/HmDDiN8HQWR/6f6nrPI8+P6fwctlKaEu/dM8+QnZz/Y=/small.png\",\n      \"medium\": \"https://assets.airstack.xyz/image/social/HmDDiN8HQWR/6f6nrPI8+P6fwctlKaEu/dM8+QnZz/Y=/medium.png\",\n      \"large\": \"https://assets.airstack.xyz/image/social/HmDDiN8HQWR/6f6nrPI8+P6fwctlKaEu/dM8+QnZz/Y=/large.png\",\n      \"original\": \"https://assets.airstack.xyz/image/social/HmDDiN8HQWR/6f6nrPI8+P6fwctlKaEu/dM8+QnZz/Y=/original_image.png\"\n    },\n    \"custodyAddress\": \"0xda52abca28fadeab9771ba45a2ff346c4db97d7f\",\n    \"connectedAddresses\": [\n      {\n        \"address\": \"0xda52abca28fadeab9771ba45a2ff346c4db97d7f\",\n        \"blockchain\": \"ethereum\",\n        \"chainId\": \"1\",\n        \"timestamp\": \"2023-05-31T13:58:49Z\"\n      }\n    ],\n    \"userAssociatedAddresses\": [\"0xda52abca28fadeab9771ba45a2ff346c4db97d7f\"],\n    \"followerCount\": 58,\n    \"followingCount\": 0\n  }\n]\n```\n\n### `getFarcasterUserCasts`\n\nFetch all casts of a Farcaster user. You can also filter it further by fetching only the casts that have embeds, frames, or mentions in the casts.\n\n**Input**\n\n| Field         | Type      | Required | Description                                                                                           |\n| ------------- | --------- | -------- | ----------------------------------------------------------------------------------------------------- |\n| `fid`         | `number`  | true     | FID of a Farcaster user                                                                               |\n| `hasEmbeds`   | `boolean` | false    | Fetch casts with or without embeds. By default, it will fetch all.                                    |\n| `hasFrames`   | `boolean` | false    | Fetch casts with or without frames. By default, it will fetch all.                                    |\n| `hasMentions` | `boolean` | false    | Fetch casts with or without mentions. By default, it will fetch all.                                  |\n| `limit`       | `number`  | false    | Number of results per pages. Maximum value is 200. For more results, use [paginations](#paginations). |\n\n**Code Sample**\n\n```ts\nimport {\n  getFarcasterUserCasts,\n  FarcasterUserCastsInput,\n  FarcasterUserCastsOutput,\n} from \"@airstack/frames\";\n\nconst input: FarcasterUserCastsInput = {\n  fid: 602,\n  hasEmbeds: true,\n  hasFrames: true,\n  hasMentions: true,\n  limit: 100,\n};\nconst { data, error }: FarcasterUserCastsOutput = await getFarcasterUserCasts(\n  input\n);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"castHash\": \"0xcee805b0b5a762892512d38d30b72dd692772480\",\n    \"castedAtTimestamp\": \"2024-04-06T06:24:32Z\",\n    \"castUrl\": \"https://warpcast.com/betashop.eth/0xcee805b0\",\n    \"embeds\": [{ \"url\": \"https://share.airstack.xyz/s/gf\" }],\n    \"text\": \"hihi follow my trade on @base! cc @betashop.eth @airstack\",\n    \"numberOfRecasts\": 17,\n    \"numberOfLikes\": 92,\n    \"numberOfReplies\": 14,\n    \"channel\": \"airstaack\",\n    \"mentions\": [\n      { \"fid\": \"12142\", \"position\": 24 },\n      { \"fid\": \"602\", \"position\": 29 },\n      { \"fid\": \"20909\", \"position\": 30 }\n    ],\n    \"frame\": {\n      \"frameHash\": \"0xbbd09a3a2c6b96eff53d9ad622b5637374bd2ec7b9c706fd8c908a6bc1a6bdc0\",\n      \"frameUrl\": \"https://share.airstack.xyz/s/gf\"\n    }\n  }\n]\n```\n\n### `getFarcasterUserReplies`\n\nFetch all replies of a Farcaster user in descending timestamp order.\n\n**Input**\n\n| Field   | Type     | Required | Description                                                                                           |\n| ------- | -------- | -------- | ----------------------------------------------------------------------------------------------------- |\n| `fid`   | `number` | true     | FID of a Farcaster user                                                                               |\n| `limit` | `number` | false    | Number of results per pages. Maximum value is 200. For more results, use [paginations](#paginations). |\n\n**Code Sample**\n\n```ts\nimport {\n  FarcasterUserRepliesInput,\n  FarcasterUserRepliesOutput,\n  getFarcasterUserReplies,\n} from \"@airstack/frames\";\n\nconst input: FarcasterUserRepliesInput = {\n  fid: 1,\n  limit: 200,\n};\nconst { data, error }: FarcasterUserRepliesOutput =\n  await getFarcasterUserReplies(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"castHash\": \"0xc63982f4e05a8c055d85631a91472d501e420250\",\n    \"castedAtTimestamp\": \"2022-12-20T20:29:00Z\",\n    \"castUrl\": \"https://warpcast.com/farcaster/0xc63982f4\",\n    \"embeds\": [],\n    \"text\": \"another testy test\",\n    \"numberOfRecasts\": 41,\n    \"numberOfLikes\": 131,\n    \"numberOfReplies\": 12,\n    \"channel\": \"fc-dev\",\n    \"mentions\": [],\n    \"frame\": null\n  }\n]\n```\n\n### `getFarcasterUserRecasts`\n\nFetch all recasts of a Farcaster user in descending timestamp order.\n\n**Input**\n\n| Field   | Type     | Required | Description                                                                                           |\n| ------- | -------- | -------- | ----------------------------------------------------------------------------------------------------- |\n| `fid`   | `number` | true     | FID of a Farcaster user                                                                               |\n| `limit` | `number` | false    | Number of results per pages. Maximum value is 200. For more results, use [paginations](#paginations). |\n\n**Code Sample**\n\n```ts\nimport {\n  FarcasterUserRecastsInput,\n  FarcasterUserRecastsOutput,\n  getFarcasterUserRecasts,\n} from \"@airstack/frames\";\n\nconst input: FarcasterUserRecastsInput = {\n  fid: 602,\n  limit: 200,\n};\nconst { data, error }: FarcasterUserRecastsOutput =\n  await getFarcasterUserRecasts(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"castHash\": \"0xfb5d70a65059fcee6a8bcf8c35731b449ecf328c\",\n    \"castedAtTimestamp\": \"2024-03-22T22:00:08Z\",\n    \"castUrl\": \"https://warpcast.com/betashop.eth/0xfb5d70a6\",\n    \"embeds\": [],\n    \"text\": \"🚀 launch: Airstack Farcaster Frame Validator 1.0.1\\n\",\n    \"numberOfRecasts\": 26,\n    \"numberOfLikes\": 75,\n    \"numberOfReplies\": 9,\n    \"channel\": \"fc-devs\",\n    \"mentions\": [],\n    \"frame\": null\n  }\n]\n```\n\n### `getFarcasterUserQuotedRecasts`\n\nFetch all quoted recasts of a Farcaster user in descending timestamp order.\n\n**Input**\n\n| Field   | Type     | Required | Description                                                                                           |\n| ------- | -------- | -------- | ----------------------------------------------------------------------------------------------------- |\n| `fid`   | `number` | true     | FID of a Farcaster user                                                                               |\n| `limit` | `number` | false    | Number of results per pages. Maximum value is 200. For more results, use [paginations](#paginations). |\n\n**Code Sample**\n\n```ts\nimport {\n  FarcasterUserQuotedRecastsInput,\n  FarcasterUserQuotedRecastsOutput,\n  getFarcasterUserQuotedRecasts,\n} from \"@airstack/frames\";\n\nconst input: FarcasterUserQuotedRecastsInput = {\n  fid: 602,\n  limit: 200,\n};\nconst { data, error }: FarcasterUserQuotedRecastsOutput =\n  await getFarcasterUserQuotedRecasts(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"castHash\": \"0x5b08dd51fe7ba6c5645dfda9e1c2dffb99ae38fd\",\n    \"castedAtTimestamp\": \"2024-05-08T15:37:20Z\",\n    \"castUrl\": \"https://warpcast.com/betashop.eth/0x5b08dd51\",\n    \"embeds\": [],\n    \"text\": \"build great frames = get free analytics and rewards from Airstack\",\n    \"numberOfRecasts\": 6,\n    \"numberOfLikes\": 39,\n    \"numberOfReplies\": 3,\n    \"channel\": \"airstack\",\n    \"mentions\": [],\n    \"frame\": null\n  }\n]\n```\n\n### `getFarcasterUserLikes`\n\nFetch all casts liked by a Farcaster user in descending timestamp order.\n\n**Input**\n\n| Field   | Type     | Required | Description                                                                                           |\n| ------- | -------- | -------- | ----------------------------------------------------------------------------------------------------- |\n| `fid`   | `number` | true     | FID of a Farcaster user                                                                               |\n| `limit` | `number` | false    | Number of results per pages. Maximum value is 200. For more results, use [paginations](#paginations). |\n\n**Code Sample**\n\n```ts\nimport {\n  FarcasterUserLikesInput,\n  FarcasterUserLikesOutput,\n  getFarcasterUserLikes,\n} from \"@airstack/frames\";\n\nconst input: FarcasterUserLikesInput = {\n  fid: 602,\n  limit: 200,\n};\nconst { data, error }: FarcasterUserLikesOutput = await getFarcasterUserLikes(\n  input\n);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"castHash\": \"0xf94e79d8b812a3a9a127444515b17d83ee31d09a\",\n    \"castedAtTimestamp\": \"2024-05-07T20:52:29Z\",\n    \"castUrl\": \"https://warpcast.com/0xhuangkuan/0xf94e79d8\",\n    \"embeds\": [],\n    \"text\": \"I like the strategy\",\n    \"numberOfRecasts\": 0,\n    \"numberOfLikes\": 1,\n    \"numberOfReplies\": 0,\n    \"channel\": \"fc-devs\",\n    \"mentions\": [],\n    \"frame\": null\n  }\n]\n```\n\n### `getFarcasterChannelDetails`\n\nFetch all details of a given Farcaster channel, including name, description, warpcast URL, image URL, creation time, hosts, etc.\n\n**Input**\n\n| Field     | Type     | Required | Description                                                   |\n| --------- | -------- | -------- | ------------------------------------------------------------- |\n| `channel` | `string` | true     | Farcaster channel ID, e.g. /airstack channel ID is \"airstack\" |\n\n**Code Sample**\n\n```ts\nimport {\n  getFarcasterChannelDetails,\n  FarcasterChannelDetailsInput,\n  FarcasterChannelDetailsOutput,\n} from \"@airstack/frames\";\n\nconst input: FarcasterChannelDetailsInput = {\n  channel: \"farcaster\",\n};\nconst { data, error }: FarcasterChannelDetailsOutput =\n  await getFarcasterChannelDetails(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n{\n  \"name\": \"Farcaster\",\n  \"description\": \"Discussions about Farcaster on Farcaster (meta!)\",\n  \"imageUrl\": \"https://ipfs.decentralized-content.com/ipfs/bafkreialf5usxssf2eu3e5ct37zzdd553d7lg7oywvdszmrg5p2zpkta7u\",\n  \"createdAtTimestamp\": \"2023-08-02T22:33:26Z\",\n  \"hosts\": [\n    {\n      \"profileName\": \"v\",\n      \"fnames\": [\"v\", \"varunsrin.eth\"],\n      \"fid\": \"2\",\n      \"profileImage\": {\n        \"extraSmall\": \"https://assets.airstack.xyz/image/social/XCPJH5EP49qftYc7+wAFfv5jzo3ddBWc9FMEERWezG8=/extra_small.png\",\n        \"small\": \"https://assets.airstack.xyz/image/social/XCPJH5EP49qftYc7+wAFfv5jzo3ddBWc9FMEERWezG8=/small.png\",\n        \"medium\": \"https://assets.airstack.xyz/image/social/XCPJH5EP49qftYc7+wAFfv5jzo3ddBWc9FMEERWezG8=/medium.png\",\n        \"large\": \"https://assets.airstack.xyz/image/social/XCPJH5EP49qftYc7+wAFfv5jzo3ddBWc9FMEERWezG8=/large.png\",\n        \"original\": \"https://assets.airstack.xyz/image/social/XCPJH5EP49qftYc7+wAFfv5jzo3ddBWc9FMEERWezG8=/original_image.png\"\n      },\n      \"userAssociatedAddresses\": [\n        \"0x4114e33eb831858649ea3702e1c9a2db3f626446\",\n        \"0x91031dcfdea024b4d51e775486111d2b2a715871\",\n        \"0x182327170fc284caaa5b1bc3e3878233f529d741\",\n        \"0xf86a7a5b7c703b1fd8d93c500ac4cc75b67477f0\"\n      ],\n      \"followerCount\": 142424,\n      \"followingCount\": 1127\n    }\n  ],\n  \"warpcastUrl\": \"https://warpcast.com/~/channel/farcaster\"\n}\n```\n\n### `getFarcasterChannelParticipants`\n\nFetch the list of all participants of a Farcaster channel that has either casted or replied to a cast in the specified channel. You can also use the `lastActionTimestamp` to only fetch users that have last participated during the specified time range.\n\n**Input**\n\n| Field                        | Type                         | Required | Description                                                                                                            |\n| ---------------------------- | ---------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------- |\n| `channel`                    | `string`                     | true     | Farcaster channel ID, e.g. /airstack channel ID is \"airstack\"                                                          |\n| `actionType`                 | `FarcasterChannelActionType` | false    | Farcaster channel action type, either cast or reply. Defaults to include both type.                                    |\n| `lastActionTimestamp.before` | `string`                     | false    | get participants that participate before the specified input. ISO 8601 date string, e.g. \"2024-02-28T00:00:00Z\".       |\n| `lastActionTimestamp.after`  | `string`                     | false    | get participants that participate after the specified input. ISO 8601 date string, e.g. \"2024-02-28T00:00:00Z\".        |\n| `limit`                      | `number`                     | false    | Number of results per pages. Defaults to 200. Maximum value is 200. For more results, use [paginations](#paginations). |\n\n**Code Sample**\n\n```ts\nimport {\n  getFarcasterChannelParticipants,\n  FarcasterChannelParticipantsInput,\n  FarcasterChannelParticipantsOutput,\n  FarcasterChannelActionType,\n} from \"@airstack/frames\";\n\nconst input: FarcasterChannelParticipantsInput = {\n  channel: \"farcaster\",\n  actionType: [\n    FarcasterChannelActionType.Cast,\n    FarcasterChannelActionType.Reply,\n  ],\n  lastActionTimestamp: {\n    after: \"2024-02-01T00:00:00Z\",\n    before: \"2024-02-28T00:00:00Z\",\n  },\n  limit: 100,\n};\nconst { data, error }: FarcasterChannelParticipantsOutput =\n  await getFarcasterChannelParticipants(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"profileName\": \"dawufi\",\n    \"fnames\": [\"dawufi\"],\n    \"fid\": \"6806\",\n    \"profileImage\": {\n      \"extraSmall\": \"https://assets.airstack.xyz/image/social/94uonfbLlRHZf6qh2LpPC6Fg4DNg3uCUrXkwlo+jA/I=/extra_small.gif\",\n      \"small\": \"https://assets.airstack.xyz/image/social/94uonfbLlRHZf6qh2LpPC6Fg4DNg3uCUrXkwlo+jA/I=/small.gif\",\n      \"medium\": \"https://assets.airstack.xyz/image/social/94uonfbLlRHZf6qh2LpPC6Fg4DNg3uCUrXkwlo+jA/I=/medium.gif\",\n      \"large\": \"https://assets.airstack.xyz/image/social/94uonfbLlRHZf6qh2LpPC6Fg4DNg3uCUrXkwlo+jA/I=/large.gif\",\n      \"original\": \"https://assets.airstack.xyz/image/social/94uonfbLlRHZf6qh2LpPC6Fg4DNg3uCUrXkwlo+jA/I=/original_image.gif\"\n    },\n    \"custodyAddress\": \"0xe1b1e3bbf4f29bd7253d6fc1e2ddc9cacb0a546a\",\n    \"connectedAddresses\": [\n      {\n        \"address\": \"0x0964256674e42d61f0ff84097e28f65311786ccb\",\n        \"blockchain\": \"ethereum\",\n        \"chainId\": \"1\",\n        \"timestamp\": \"2023-05-31T13:58:49Z\"\n      }\n    ],\n    \"userAssociatedAddresses\": [\n      \"0xe1b1e3bbf4f29bd7253d6fc1e2ddc9cacb0a546a\",\n      \"0x0964256674e42d61f0ff84097e28f65311786ccb\"\n    ],\n    \"followerCount\": 14813,\n    \"followingCount\": 1551\n  }\n]\n```\n\n### `getFarcasterChannelsByParticipant`\n\nFetch all the channels where a Farcaster user has participated in, either by casting or replying to a cast. You can also use the `lastActionTimestamp` to only fetch channels where users have last participated during the specified time range.\n\n**Input**\n\n| Field                        | Type                         | Required | Description                                                                                                            |\n| ---------------------------- | ---------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------- |\n| `fid`                        | `number`                     | true     | Farcaster channel participant's FID                                                                                    |\n| `actionType`                 | `FarcasterChannelActionType` | false    | Farcaster channel action type, either cast or reply. Defaults to include both type.                                    |\n| `lastActionTimestamp.before` | `string`                     | false    | get participants that participate before the specified input. ISO 8601 date string, e.g. \"2024-02-28T00:00:00Z\".       |\n| `lastActionTimestamp.after`  | `string`                     | false    | get participants that participate after the specified input. ISO 8601 date string, e.g. \"2024-02-28T00:00:00Z\".        |\n| `limit`                      | `number`                     | false    | Number of results per pages. Defaults to 200. Maximum value is 200. For more results, use [paginations](#paginations). |\n\n**Code Sample**\n\n```ts\nimport {\n  getFarcasterChannelsByParticipant,\n  FarcasterChannelActionType,\n  FarcasterChannelsByParticipantInput,\n  FarcasterChannelsByParticipantOutput,\n} from \"@airstack/frames\";\n\nconst input: FarcasterChannelsByParticipantInput = {\n  fid: 602,\n  actionType: [\n    FarcasterChannelActionType.Cast,\n    FarcasterChannelActionType.Reply,\n  ],\n  lastActionTimestamp: {\n    after: \"2024-02-01T00:00:00Z\",\n    before: \"2024-02-28T00:00:00Z\",\n  },\n  limit: 100,\n};\nconst { data, error }: FarcasterChannelsByParticipantOutput =\n  await getFarcasterChannelsByParticipant(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"name\": \"Based Management\",\n    \"description\": \"Things worth doing onchain.\",\n    \"imageUrl\": \"https://i.imgur.com/f0BFBfH.png\",\n    \"createdAtTimestamp\": \"2023-11-06T19:23:10Z\",\n    \"hosts\": [\n      {\n        \"profileName\": \"lght.eth\",\n        \"fnames\": [\"0xlght\", \"lght.eth\"],\n        \"fid\": \"13121\",\n        \"profileImage\": {\n          \"extraSmall\": \"https://assets.airstack.xyz/image/social/sxSmw/OjqyuT+uMDpHiSTmqOH5F76hwnx6Q35elGlUkt5nWRe8xrgnJemShOmjeN/extra_small.jpg\",\n          \"small\": \"https://assets.airstack.xyz/image/social/sxSmw/OjqyuT+uMDpHiSTmqOH5F76hwnx6Q35elGlUkt5nWRe8xrgnJemShOmjeN/small.jpg\",\n          \"medium\": \"https://assets.airstack.xyz/image/social/sxSmw/OjqyuT+uMDpHiSTmqOH5F76hwnx6Q35elGlUkt5nWRe8xrgnJemShOmjeN/medium.jpg\",\n          \"large\": \"https://assets.airstack.xyz/image/social/sxSmw/OjqyuT+uMDpHiSTmqOH5F76hwnx6Q35elGlUkt5nWRe8xrgnJemShOmjeN/large.jpg\",\n          \"original\": \"https://assets.airstack.xyz/image/social/sxSmw/OjqyuT+uMDpHiSTmqOH5F76hwnx6Q35elGlUkt5nWRe8xrgnJemShOmjeN/original_image.jpg\"\n        },\n        \"custodyAddress\": \"0x53667ed77b56d5a94d6df994ab4fd142b7585e68\",\n        \"connectedAddresses\": [\n          {\n            \"address\": \"0x547a2e8d97dc99be21e509fa93c4fa5dd76b8ed0\",\n            \"blockchain\": \"ethereum\",\n            \"chainId\": \"1\",\n            \"timestamp\": \"2023-05-31T13:58:49Z\"\n          }\n        ],\n        \"userAssociatedAddresses\": [\n          \"0x53667ed77b56d5a94d6df994ab4fd142b7585e68\",\n          \"0x547a2e8d97dc99be21e509fa93c4fa5dd76b8ed0\"\n        ],\n        \"followerCount\": 16127,\n        \"followingCount\": 345\n      }\n    ],\n    \"warpcastUrl\": \"https://warpcast.com/~/channel/based-management\"\n  }\n]\n```\n\n### `getFarcasterChannelsByHost`\n\nFetch all the channels where a Farcaster user is the host. You can also use the `createdAtTimestamp` to only fetch channels that are created in the specified timestamp.\n\n**Input**\n\n| Field                       | Type     | Required | Description                                                                                                            |\n| --------------------------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------- |\n| `fid`                       | `number` | true     | Farcaster channel host's FID                                                                                           |\n| `createdAtTimestamp.before` | `string` | false    | get participants that participate before the specified input. ISO 8601 date string, e.g. \"2024-02-28T00:00:00Z\".       |\n| `createdAtTimestamp.after`  | `string` | false    | get participants that participate after the specified input. ISO 8601 date string, e.g. \"2024-02-28T00:00:00Z\".        |\n| `limit`                     | `number` | false    | Number of results per pages. Defaults to 200. Maximum value is 200. For more results, use [paginations](#paginations). |\n\n**Code Sample**\n\n```ts\nimport {\n  getFarcasterChannelsByHost,\n  FarcasterChannelsByHostInput,\n  FarcasterChannelsByHostOutput,\n} from \"@airstack/frames\";\n\nconst input: FarcasterChannelsByHostInput = {\n  fid: 602,\n  createdAtTimestamp: {\n    after: \"2024-02-01T00:00:00Z\",\n    before: \"2024-02-28T00:00:00Z\",\n  },\n  limit: 1,\n};\nconst { data, error }: FarcasterChannelsByHostOutput =\n  await getFarcasterChannelsByHost(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"name\": \"airstack\",\n    \"description\": \"a place for updates about new airstack functionality, user requests, questions, and more!\",\n    \"imageUrl\": \"https://i.imgur.com/13jY9D4.png\",\n    \"createdAtTimestamp\": \"2023-12-21T17:30:38Z\",\n    \"warpcastUrl\": \"https://warpcast.com/~/channel/airstack\"\n  }\n]\n```\n\n### `searchFarcasterChannels`\n\nFetch all the Farcaster channels that contain the specified input words in their names. You can also use the `createdAtTimestamp` to only fetch channels that are created in the specified timestamp.\n\n**Input**\n\n| Field                       | Type     | Required | Description                                                                                                            |\n| --------------------------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------- |\n| `channel`                   | `string` | true     | Farcaster channel's name                                                                                               |\n| `createdAtTimestamp.before` | `string` | false    | get participants that participate before the specified input. ISO 8601 date string, e.g. \"2024-02-28T00:00:00Z\".       |\n| `createdAtTimestamp.after`  | `string` | false    | get participants that participate after the specified input. ISO 8601 date string, e.g. \"2024-02-28T00:00:00Z\".        |\n| `limit`                     | `number` | false    | Number of results per pages. Defaults to 200. Maximum value is 200. For more results, use [paginations](#paginations). |\n\n**Code Sample**\n\n```ts\nimport {\n  searchFarcasterChannels,\n  SearchFarcasterChannelsInput,\n  SearchFarcasterChannelsOutput,\n} from \"@airstack/frames\";\n\nconst input: SearchFarcasterChannelsInput = {\n  channel: \"airstack\",\n  createdAtTimestamp: {\n    after: \"2024-02-01T00:00:00Z\",\n    before: \"2024-02-28T00:00:00Z\",\n  },\n  limit: 2,\n};\nconst { data, error }: SearchFarcasterChannelsOutput =\n  await searchFarcasterChannels(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"name\": \"airstack\",\n    \"description\": \"a place for updates about new airstack functionality, user requests, questions, and more!\",\n    \"imageUrl\": \"https://i.imgur.com/13jY9D4.png\",\n    \"createdAtTimestamp\": \"2023-12-21T17:30:38Z\",\n    \"hosts\": [\n      {\n        \"profileName\": \"betashop.eth\",\n        \"fnames\": [\"betashop\", \"betashop.eth\", \"jasongoldberg.eth\"],\n        \"fid\": \"602\",\n        \"profileImage\": {\n          \"extraSmall\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/extra_small.png\",\n          \"small\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/small.png\",\n          \"medium\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/medium.png\",\n          \"large\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/large.png\",\n          \"original\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/original_image.png\"\n        },\n        \"custodyAddress\": \"0x66bd69c7064d35d146ca78e6b186e57679fba249\",\n        \"connectedAddresses\": [\n          {\n            \"address\": \"0xeaf55242a90bb3289db8184772b0b98562053559\",\n            \"blockchain\": \"ethereum\",\n            \"chainId\": \"1\",\n            \"timestamp\": \"2023-05-31T13:58:49Z\"\n          }\n        ],\n        \"userAssociatedAddresses\": [\n          \"0x66bd69c7064d35d146ca78e6b186e57679fba249\",\n          \"0xeaf55242a90bb3289db8184772b0b98562053559\"\n        ],\n        \"followerCount\": 59421,\n        \"followingCount\": 2290\n      }\n    ],\n    \"warpcastUrl\": \"https://warpcast.com/~/channel/airstack\"\n  }\n]\n```\n\n### `searchFarcasterUsers`\n\nSearch Farcaster users that contain a given string input, e.g. all Farcaster users that contain \"a\" in their profile name.\n\n**Input**\n\n| Field         | Type     | Required | Description                                                                                                                   |\n| ------------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| `profileName` | `string` | true     | string to match with the profile name. Only profile name that contains this inputted string will be returned in the response. |\n| `limit`       | `number` | false    | Number of results per pages. Defaults to 200. Maximum value is 200. For more results, use [paginations](#paginations).        |\n\n**Code Sample**\n\n```ts\nimport {\n  searchFarcasteUsers,\n  SearchFarcasterUsersInput,\n  SearchFarcastersOutput,\n} from \"@airstack/frames\";\n\nconst input: SearchFarcasterUsersInput = {\n  profileName: \"a\",\n  limit: 10,\n};\nconst {\n  data,\n  error,\n  hasNextPage,\n  hasPrevPage,\n  getNextPage,\n  getPrevPage,\n}: SearchFarcastersOutput = await searchFarcasterUsers(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"profileName\": \"zachterrell\",\n    \"fnames\": [\"zachterrell.eth\", \"zachterrell\"],\n    \"custodyAddress\": \"0xbce5a0d16dc2031dc53da79c34ddb366e76dc482\",\n    \"connectedAddresses\": [\n      {\n        \"address\": \"0x5a492d1e15f2ae4b418e424ba9a1d112d6e9706a\",\n        \"blockchain\": \"ethereum\",\n        \"chainId\": \"1\",\n        \"timestamp\": \"2023-05-31T13:58:49Z\"\n      }\n    ],\n    \"userAssociatedAddresses\": [\n      \"0xbce5a0d16dc2031dc53da79c34ddb366e76dc482\",\n      \"0x5a492d1e15f2ae4b418e424ba9a1d112d6e9706a\"\n    ],\n    \"followerCount\": 112210,\n    \"followingCount\": 430,\n    \"fid\": \"457\",\n    \"profileImage\": {\n      \"extraSmall\": \"https://assets.airstack.xyz/image/social/u/+rRF4VjBM2b96BzHIZBcRKdFQ3MzIbCkEp6TV3KlQ=/extra_small.jpg\",\n      \"small\": \"https://assets.airstack.xyz/image/social/u/+rRF4VjBM2b96BzHIZBcRKdFQ3MzIbCkEp6TV3KlQ=/small.jpg\",\n      \"medium\": \"https://assets.airstack.xyz/image/social/u/+rRF4VjBM2b96BzHIZBcRKdFQ3MzIbCkEp6TV3KlQ=/medium.jpg\",\n      \"large\": \"https://assets.airstack.xyz/image/social/u/+rRF4VjBM2b96BzHIZBcRKdFQ3MzIbCkEp6TV3KlQ=/large.jpg\",\n      \"original\": \"https://assets.airstack.xyz/image/social/u/+rRF4VjBM2b96BzHIZBcRKdFQ3MzIbCkEp6TV3KlQ=/original_image.jpg\"\n    }\n  }\n]\n```\n\n### `checkChannelActionsByFarcasterUser`\n\nCheck If a Farcaster user of a given FID has taken any channel action (cast, reply, or follow) on a specific channel.\n\n**Input**\n\n| Field            | Type                                                          | Required | Description                                                                       |\n| ---------------- | ------------------------------------------------------------- | -------- | --------------------------------------------------------------------------------- |\n| `fid`            | `string`                                                      | true     | FID of a Farcaster user.                                                          |\n| `channelActions` | [`FarcasterChannelActionType[]`](#farcasterchannelactiontype) | true     | List of channel actions to check if the user has taken any of the listed actions. |\n| `channelId`      | `boolean`                                                     | true     | The Farcaster Channel ID.                                                         |\n\n**Code Sample**\n\n```ts\nimport {\n  checkChannelActionsByFarcasterUser,\n  CheckChannelActionsByFarcasterUserInput,\n  CheckChannelActionsByFarcasterUserOutput,\n  FarcasterChannelActionType,\n} from \"@airstack/frames\";\n\nconst input: CheckChannelActionsByFarcasterUserInput = {\n  fid: 602,\n  channelActions: [\n    FarcasterChannelActionType.Follow,\n    FarcasterChannelActionType.Cast,\n    FarcasterChannelActionType.Reply,\n  ],\n  channelId: \"fc-devs\",\n};\nconst { data, error }: CheckChannelActionsByFarcasterUserOutput =\n  await checkChannelActionsByFarcasterUser(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  { \"channelAction\": \"follow\", \"isActionTaken\": true },\n  { \"channelAction\": \"cast\", \"isActionTaken\": true },\n  { \"channelAction\": \"reply\", \"isActionTaken\": false }\n]\n```\n\n### `checkCastReactionsByFarcasterUser`\n\nCheck If a Farcaster user of a given FID has reacted to a list of casts.\n\n**Input**\n\n| Field        | Type                                                      | Required | Description                                                                     |\n| ------------ | --------------------------------------------------------- | -------- | ------------------------------------------------------------------------------- |\n| `fid`        | `string`                                                  | true     | FID of a Farcaster user.                                                        |\n| `criteria`   | [`FarcasterReactionCriteria`](#farcasterreactioncriteria) | true     | Either liked, replied, or recasted                                              |\n| `castHashes` | `string[]`                                                | true     | List of cast hashes to check if the user has reacted to any of the listed casts |\n\n**Code Sample**\n\n```ts\nimport {\n  checkCastReactionsByFarcasterUser,\n  CheckCastReactionsByFarcasterUserInput,\n  CheckCastReactionsByFarcasterUserOutput,\n  FarcasterReactionCriteria,\n} from \"@airstack/frames\";\n\nconst input: CheckCastReactionsByFarcasterUserInput = {\n  fid: 602,\n  criteria: FarcasterReactionCriteria.Liked,\n  castHashes: [\n    \"0xa9c8d1fe4bd5fb496240526dd82e12d9c4237fdf\",\n    \"0xdde4cf7ea740497d430b59a0f82b405eac10095e\",\n  ],\n};\nconst { data, error }: CheckCastReactionsByFarcasterUserOutput =\n  await checkCastReactionsByFarcasterUser(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  {\n    \"castHash\": \"0xa9c8d1fe4bd5fb496240526dd82e12d9c4237fdf\",\n    \"isReacted\": true\n  },\n  {\n    \"castHash\": \"0xdde4cf7ea740497d430b59a0f82b405eac10095e\",\n    \"isReacted\": false\n  }\n]\n```\n\n### `checkIsFollowingFarcasterUser`\n\nCheck If a Farcaster user of a given FID is following an array of Farcaster users with certain FIDs.\n\n| Field         | Type       | Required | Description                                                                                              |\n| ------------- | ---------- | -------- | -------------------------------------------------------------------------------------------------------- |\n| `fid`         | `string`   | true     | FID of a Farcaster user.                                                                                 |\n| `isFollowing` | `number[]` | true     | List of FIDs to check if the given user is following these list of Farcaster user with the provided FIDs |\n\n**Code Sample**\n\n```ts\nimport {\n  checkIsFollowingFarcasterUser,\n  CheckIsFollowingFarcasterUserInput,\n  CheckIsFollowingFarcasterUserOutput,\n} from \"@airstack/frames\";\n\nconst input: CheckIsFollowingFarcasterUserInput = {\n  fid: 602,\n  isFollowing: [2602, 15971, 13242],\n};\nconst { data, error }: CheckIsFollowingFarcasterUserOutput =\n  await checkIsFollowingFarcasterUser(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  { \"fid\": 2602, \"isFollowing\": true },\n  { \"fid\": 15971, \"isFollowing\": true },\n  { \"fid\": 13242, \"isFollowing\": false }\n]\n```\n\n### `checkIsFollowedByFarcasterUser`\n\nCheck If a Farcaster user of a given FID is followed by an array of Farcaster users with certain FIDs.\n\n| Field         | Type       | Required | Description                                                                                                |\n| ------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------------------- |\n| `fid`         | `string`   | true     | FID of a Farcaster user.                                                                                   |\n| `isFollowing` | `number[]` | true     | List of FIDs to check if the given user is followed by these list of Farcaster user with the provided FIDs |\n\n**Code Sample**\n\n```ts\nimport {\n  checkIsFollowedByFarcasterUser,\n  CheckIsFollowedByFarcasterUserInput,\n  CheckIsFollowedByFarcasterUserOutput,\n} from \"@airstack/frames\";\n\nconst input: CheckIsFollowedByFarcasterUserInput = {\n  fid: 602,\n  isFollowedBy: [2602, 15971, 13242],\n};\nconst { data, error }: CheckIsFollowedByFarcasterUserOutput =\n  await checkIsFollowedByFarcasterUser(input);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Sample**\n\n```json\n[\n  { \"fid\": 2602, \"isFollowedBy\": true },\n  { \"fid\": 15971, \"isFollowedBy\": true },\n  { \"fid\": 13242, \"isFollowedBy\": false }\n]\n```\n\n### `createAllowList`\n\nCheck If a Farcaster user is allowed to access a Frame or not.\n\n**Input**\n\n| Field               | Type       | Required | Description                                                                            |\n| ------------------- | ---------- | -------- | -------------------------------------------------------------------------------------- |\n| `fid`               | `string`   | true     | FID of a Farcaster user to check.                                                      |\n| `allowListCriteria` | `object`   | true     | Criteria to check if the user is allowed                                               |\n| `isAllowedFunction` | `function` | false    | Custom function to determine if the user is allowed. It will use AND logic by default. |\n\n**Code Sample**\n\n```ts\nimport {\n  createAllowList,\n  CreateAllowListInput,\n  CreateAllowListOutput,\n} from \"@airstack/frames\";\n\nconst allowListCriteria = {\n  numberOfFollowersOnFarcaster: 100,\n  isFollowingOnFarcaster: [2602],\n};\nconst input: CreateAllowListInput = {\n  fid: 602,\n  allowListCriteria,\n  isAllowedFunction: function (data) {\n    console.log(data);\n    return true;\n  },\n};\nconst { isAllowed, error }: CreateAllowListOutput = await createAllowList(\n  input\n);\n\nif (error) throw new Error(error);\n\nconsole.log(isAllowed);\n```\n\n**Response Sample**\n\n```json\n{\n  \"isAllowed\": true,\n  \"error\": null\n}\n```\n\n### `fetchQuery`\n\nCall any Airstack GraphQL API queries without any paginations. If you are looking for paginated solution, check [`fetchQueryWithPagination`](#fetchquerywithpagination).\n\n**Input**\n\n| Parameters  | Type     | Required | Description                                                                                       |\n| ----------- | -------- | -------- | ------------------------------------------------------------------------------------------------- |\n| `query`     | `string` | true     | A string that represents the Airstack GraphQL query to be executed.                               |\n| `variables` | `Object` | false    | An object that contains variables used in the query. Only required if the query has any variables |\n\n**Code Samples**\n\n```ts\nimport { fetchQuery } from \"@airstack/frames\";\n\nconst { data, error } = await fetchQuery(\n  /* GraphQL */ `\n    query MyQuery($fid: String) {\n      Socials(\n        input: {\n          filter: { userId: { _eq: $fid }, dappName: { _eq: farcaster } }\n          blockchain: ethereum\n        }\n      ) {\n        Social {\n          profileName\n        }\n      }\n    }\n  `,\n  {\n    fid: \"602\",\n  }\n);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Samples**\n\n```json\n{\n  \"Socials\": {\n    \"Social\": [\n      {\n        \"profileName\": \"betashop.eth\"\n      }\n    ]\n  }\n}\n```\n\n### `fetchQueryWithPagination`\n\nCall any Airstack GraphQL API queries with paginations. If you are looking for non-paginated solution, check [`fetchQueryWithPagination`](#fetchquerywithpagination).\n\n**Input**\n\n| Parameters  | Type     | Required | Description                                                                                       |\n| ----------- | -------- | -------- | ------------------------------------------------------------------------------------------------- |\n| `query`     | `string` | true     | A string that represents the Airstack GraphQL query to be executed.                               |\n| `variables` | `Object` | false    | An object that contains variables used in the query. Only required if the query has any variables |\n\n**Code Samples**\n\n```ts\nimport { fetchQueryWithPagination } from \"@airstack/frames\";\n\nconst { data, error } = await fetchQueryWithPagination(\n  /* GraphQL */ `\n    query MyQuery($caster: Identity) {\n      FarcasterCasts(\n        input: {\n          filter: { castedBy: { _eq: $caster } }\n          blockchain: ALL\n          limit: 200\n        }\n      ) {\n        Cast {\n          hash\n          text\n        }\n      }\n    }\n  `,\n  {\n    caster: \"betashop.eth\",\n  }\n);\n\nif (error) throw new Error(error);\n\nconsole.log(data);\n```\n\n**Response Samples**\n\n```json\n{\n  \"data\": {\n    \"FarcasterCasts\": {\n      \"Cast\": [\n        {\n          \"hash\": \"0xe1e306a22b54e07dddcc2623582d95e5d588c7b6\",\n          \"text\": \"Hello World!\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## Frog Middlewares\n\n### Farcaster Data Middleware\n\nThe Farcaster Data middleware injects Farcaster data of the user that interacted with the Frames, including Farcaster user details, followers, followings, casts.\n\nFor more details, check out the tutorial on Onchain Data Frog middleware [here](https://docs.airstack.xyz/airstack-docs-and-faqs/frames/airstack-frog-recipes-and-middleware/airstack-frog-middleware).\n\n**Input**\n\n| Parameters | Type                | Required | Description                                                                                                                                                 |\n| ---------- | ------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `apiKey`   | `string`            | false    | Configure API key, if no API key has been provided with `init` function.                                                                                    |\n| `features` | `Object`            | true     | An object that contains variables used for fetching Farcaster data of the user.                                                                             |\n| `env`      | `prod` &#124; `dev` | false    | Configure whether the environment is dev (using `untrustedData`) or prod (validate `trustedData` with `validateFramesMessage` API). By default, it is prod. |\n\n**Code Samples**\n\n```ts\nimport { farcasterDataFrogMiddleware } from \"@airstack/frames\";\n\nconst farcasterDataMiddleware = farcasterDataFrogMiddleware({\n  features: {\n    userDetails: {},\n  },\n});\n\napp.frame(\"/\", farcasterDataMiddleware, async function (c) {\n  const { status } = c;\n  if (status === \"response\") console.log(c.var);\n  c.res({});\n});\n```\n\n**Response Samples**\n\n```json\n{\n  \"userDetails\": {\n    \"profileName\": \"betashop.eth\",\n    \"fnames\": [\"betashop\", \"betashop.eth\", \"jasongoldberg.eth\"],\n    \"profileImage\": {\n      \"extraSmall\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/extra_small.jpg\",\n      \"small\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/small.jpg\",\n      \"medium\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/medium.jpg\",\n      \"large\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/large.jpg\",\n      \"original\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/original_image.jpg\"\n    },\n    \"userAssociatedAddresses\": [\n      \"0x66bd69c7064d35d146ca78e6b186e57679fba249\",\n      \"0xeaf55242a90bb3289db8184772b0b98562053559\"\n    ],\n    \"followerCount\": 65820,\n    \"followingCount\": 2303\n  }\n}\n```\n\n### Allow List Middleware\n\nThe Allow List middleware injects allow list logic to check if a user is allowed to access a frame or not, based on various criterias, such as Farcaster follower counts and following certain Farcaster users.\n\nFor more details, check out the tutorial on Allow List Frog middleware [here](https://docs.airstack.xyz/airstack-docs-and-faqs/frames/airstack-frog-recipes-and-middleware/airstack-frog-middleware#allow-list-middleware).\n\n**Input**\n\n| Parameters          | Type                | Required | Description                                                                                                                                                 |\n| ------------------- | ------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `apiKey`            | `string`            | false    | Configure API key, if no API key has been provided with `init` function.                                                                                    |\n| `allowListCriteria` | `object`            | true     | Criteria to check if the user is allowed                                                                                                                    |\n| `isAllowedFunction` | `function`          | false    | Custom function to determine if the user is allowed. It will use AND logic by default.                                                                      |\n| `env`               | `prod` &#124; `dev` | false    | Configure whether the environment is dev (using `untrustedData`) or prod (validate `trustedData` with `validateFramesMessage` API). By default, it is prod. |\n\n**Code Samples**\n\n```ts\nimport { allowListFrogMiddleware as allowList } from \"@airstack/frames\";\n\nconst allowListMiddleware = allowList({\n  allowListCriteria: {\n    numberOfFollowersOnFarcaster: 100,\n    isFollowingOnFarcaster: [2602],\n  },\n});\n\napp.frame(\"/\", allowListMiddleware, async function (c) {\n  const { status } = c;\n  if (status === \"response\") console.log(c.var);\n  c.res({});\n});\n```\n\n**Response Samples**\n\n```json\n{\n  \"isAllowed\": true\n}\n```\n\n## Frames.js Middlewares\n\n### Farcaster Data Middleware\n\nThe Farcaster Data middleware injects onchain data of the user that interacts with the Frame, including Farcaster user details, followings, followers, Farcaster channels, etc.\n\nFor more details, check out the tutorial on Farcaster Data Frames.js middleware [here](https://docs.airstack.xyz/airstack-docs-and-faqs/frames/airstack-framesjs-middleware/onchain-data).\n\n**Input**\n\n| Parameters | Type                    | Required | Description                                                                                                                            |\n| ---------- | ----------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- |\n| `apiKey`   | `string`                | false    | Configure API key, if no API key has been provided with `init` function.                                                               |\n| `features` | [`Features`](#features) | true     | Select Features to be included in the Frames.js context. For more details, what features are available, check out the `Features` enum. |\n\n**Code Sample**\n\n```ts\nimport { createFrames, Button } from \"frames.js/next\";\nimport {\n  farcasterDataFramesjsMiddleware as farcasterData,\n  Features,\n} from \"@airstack/frames\";\n\nconst frames = createFrames();\n\nconst handleRequest = frames(\n  async (ctx) => {\n    console.log(ctx.userDetails);\n    return (\n        <div\n          style={{\n            display: \"flex\",\n            flexDirection: \"column\",\n          }}\n        >\n          Say GM\n        </div>\n      ),\n      buttons: [],\n    };\n  },\n  {\n    middleware: [\n      farcasterData({\n        apiKey: process.env.AIRSTACK_API_KEY as string,\n        features: [Features.USER_DETAILS],\n      }),\n    ],\n  }\n);\n```\n\n**Response Sample**\n\n```json\n{\n  \"profileName\": \"betashop.eth\",\n  \"fnames\": [\"betashop\", \"betashop.eth\", \"jasongoldberg.eth\"],\n  \"profileImage\": {\n    \"extraSmall\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/extra_small.jpg\",\n    \"small\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/small.jpg\",\n    \"medium\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/medium.jpg\",\n    \"large\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/large.jpg\",\n    \"original\": \"https://assets.airstack.xyz/image/social/TQjjhuaajVkwqgzZVvgFQYU1qxNfVHQgSmZjTcXRrzQ=/original_image.jpg\"\n  },\n  \"userAssociatedAddresses\": [\n    \"0x66bd69c7064d35d146ca78e6b186e57679fba249\",\n    \"0xeaf55242a90bb3289db8184772b0b98562053559\"\n  ],\n  \"followerCount\": 65820,\n  \"followingCount\": 2303\n}\n```\n\n### Allow List Middleware\n\nThe Allow List middleware injects allow list logic to check if a user is allowed to access a frame or not, based on various criterias, such as Farcaster follower counts and following certain Farcaster users.\n\nFor more details, check out the tutorial on Allow List Frames.js middleware [here](https://docs.airstack.xyz/airstack-docs-and-faqs/frames/airstack-framesjs-middleware/allow-list).\n\n**Input**\n\n| Parameters | Type                                              | Required | Description                                                                                                 |\n| ---------- | ------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------- |\n| `apiKey`   | `string`                                          | false    | Configure API key, if no API key has been provided with `init` function.                                    |\n| `criteria` | [`AllowListCriteriaEnum`](#allowlistcriteriaenum) | true     | Define the logical criteria that you would like to evaluate the user, based on their existing onchain data. |\n\n**Code Sample**\n\n```ts\nimport { createFrames, Button } from \"frames.js/next\";\nimport {\n  AllowListCriteriaEnum as AllowListCriteria,\n  allowListFramesjsMiddleware as allowList,\n} from \"@airstack/frames\";\n\nconst frames = createFrames();\n\nconst handleRequest = frames(\n  async (ctx) => {\n    console.log(ctx.isAllowed);\n    return (\n        <div\n          style={{\n            display: \"flex\",\n            flexDirection: \"column\",\n          }}\n        >\n          Say GM\n        </div>\n      ),\n      buttons: [],\n    };\n  },\n  {\n    middleware: [\n      allowList({\n        apiKey: process.env.AIRSTACK_API_KEY as string,\n        criteria: {\n          and: [\n            [AllowListCriteria.NUMBER_OF_FARCASTER_FOLLOWERS, { _gte: 30000 }],\n            {\n              or: [\n                [AllowListCriteria.FARCASTER_FOLLOWED_BY, { fid: 1 }],\n                [AllowListCriteria.FARCASTER_FOLLOWING, { fid: 2602 }],\n              ],\n            },\n          ],\n        },\n      }),\n    ],\n  }\n);\n```\n\n**Response Sample**\n\n```json\n{\n  \"isAllowed\": true\n}\n```\n\n## Enum\n\nThe SDK offered several enums for some defined input values.\n\n### `FarcasterReactionCriteria`\n\n```ts\nexport enum FarcasterReactionCriteria {\n  Liked = \"liked\",\n  Recasted = \"recasted\",\n  Replied = \"replied\",\n}\n```\n\n### `FarcasterChannelActionType`\n\n```ts\nexport enum FarcasterChannelActionType {\n  Cast = \"cast\",\n  Follow = \"follow\",\n  Reply = \"reply\",\n}\n```\n\n### `FrameRatio`\n\n```ts\nexport enum FrameRatio {\n  /**\n   * Set Frame Ratio to 1:1\n   */\n  _1__1 = \"1:1\",\n  /**\n   * Set Frame Ratio to 1.91:1\n   */\n  _1_91__1 = \"1.91:1\",\n}\n```\n\n### `Features`\n\n```ts\nexport enum Features {\n  /**\n   * Fetches Farcaster user details, e.g. profile name, fid, number of followers/followings, etc.\n   */\n  USER_DETAILS = \"user_details\",\n  /**\n   * Fetches Farcaster followings of a Farcaster user.\n   */\n  FARCASTER_FOLLOWINGS = \"farcaster_followings\",\n  /**\n   * Fetches Farcaster followers of a Farcaster user.\n   */\n  FARCASTER_FOLLOWERS = \"farcaster_followers\",\n  /**\n   * Fetches Farcaster channels of a Farcaster user.\n   */\n  FARCASTER_CHANNELS = \"farcaster_channels\",\n  /**\n   * Fetches Farcaster casts of a Farcaster user.\n   */\n  FARCASTER_CASTS = \"farcaster_casts\",\n}\n```\n\n### `AllowListCriteriaEnum`\n\n```ts\nexport enum AllowListCriteriaEnum {\n  /**\n   * Check if the user has certain number of farcaster followers\n   */\n  NUMBER_OF_FARCASTER_FOLLOWERS = \"number_of_farcaster_followers\",\n  /**\n   * Check if the user is followed by certain users on farcaster\n   */\n  FARCASTER_FOLLOWED_BY = \"farcaster_followed_by\",\n  /**\n   * Check if the user is following certain users on farcaster\n   */\n  FARCASTER_FOLLOWING = \"farcaster_following\",\n  /**\n   * Check if the user is following the","readmeFilename":"README.md"}