{"_id":"@makefully/adaptfully","_rev":"34-e910e853e85c71e9c1043f15e1d39ae5","name":"@makefully/adaptfully","dist-tags":{"latest":"5.0.1"},"versions":{"2.1.0":{"name":"@makefully/adaptfully","version":"2.1.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@2.1.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"3a541f6fdb8c898cc653bc17099bd36f849a971f","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-2.1.0.tgz","fileCount":17,"integrity":"sha512-ucK8+VjwziqLY8hYuPuCoZnj+D2TiPiSyiko6T7U2ICaoM72bUzTS2U5h4gzj2SzwadsWHOGt5cnfft+HFgEkA==","signatures":[{"sig":"MEUCIQCuwbIAyAInpIyNCtMoVs+tVDXUbJqEAsGw7RC2+ZyRKgIgeKjOBL54KxHKpS8MASJaPgqTQfRSMNFb/p+YQQiiAfM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46094},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"ba8738c800b7a822a0c33d196c0acbb94c14c23c","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"probityrules","email":"derek.detweiler@gmail.com"},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"10.9.4","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"22.22.1","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_2.1.0_1781615190978_0.6883890550973146","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@makefully/adaptfully","version":"3.0.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.0.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"9e31c120ab004766025ff41d72d50d19b5eba18a","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.0.0.tgz","fileCount":22,"integrity":"sha512-PCP+4BN7qIHo9OdgsrRgaARGni5rfEe1edo7SbD3zCpYjf2PTqnaLhdbXj4xCGcB6x6T3kuK8dIRMFcD0DoKsg==","signatures":[{"sig":"MEQCIFr0Etb9ti2wGCkqytrMyFGRIz5Z5GhN3LEMmuzFYKG9AiAk0b6bNyUx+2/ffUOALGE4/PdwQNR8cogdCIFOcEKjoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62978},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"26b4627d8db2f81f52b7ba50d68edad79bf4e8dd","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.17.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.16.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.0.0_1781743951902_0.2127014126737765","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@makefully/adaptfully","version":"3.0.1","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.0.1","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"4d6b41c713bf32237c3608394c7957fa60fda99e","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.0.1.tgz","fileCount":22,"integrity":"sha512-S6rdtcJGiQcgiCMBzK2HAHq70nqN3Gio6XqhmhcPNWa8tECWN1sY/6+TvEi1pBj185ISVCfzUy4006CUOFYT9A==","signatures":[{"sig":"MEUCIQDMFwLvQPKi8aPJT0msitWnw6r+yHDRVUqgXs6SkQdKcAIgFKYmQxHY77JQnjUPS5FePdC6aWUrp2762aff/RSwKEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64465},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"6f336569ab987947cb7ae075ed582adb0b81ea7e","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.17.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.16.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.0.1_1781745731540_0.6545241916691174","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@makefully/adaptfully","version":"3.0.2","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.0.2","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"0fec9cd430571bd55582d41f5457f35c3f2bce45","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.0.2.tgz","fileCount":22,"integrity":"sha512-pnOIuRFEsOCB1TFg9RqVuIX9QgT7zX8GYUJRkbCH3mM/6bt3Qj1ftUdmHmKfTGS6T5C7u3QTwtjSFmQxMz0HyQ==","signatures":[{"sig":"MEUCIQCEgouRb7mSDzAl/MGVbY4zTbs7mtOmBvFLoqJGCL1VYQIgVw+yvx6NAkpjV7EoUyycAnU1udP/i51i0+eTlbvYBQI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64979},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"30e48556a00bd856809289709ac2297c294ed29c","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.17.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.16.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.0.2_1781747071308_0.865734926030423","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@makefully/adaptfully","version":"3.0.3","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.0.3","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"da6c83aa3886d473c82257d80de59f72864ca354","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.0.3.tgz","fileCount":22,"integrity":"sha512-Q+amvF1Z02G6Syxnq4BOS6PG949/EXZsj3j1jpe39otTVplGKJeMe4JQ0iINbZDwPGVgNbxbdBXPM35X2JxL5w==","signatures":[{"sig":"MEUCIQCHuolWLmXbWab779HW1XHgmNKBHa6GwE8mM/WsHM+ePQIgJQ8ryRtevot7HxhgmGpiJ7ZucG9bnClmw1qu/6N1k9s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68234},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"9459446dc5304458bff38303a2407f702cdd7184","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.17.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.16.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.0.3_1781804981852_0.26477234828651586","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@makefully/adaptfully","version":"3.1.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.1.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"7d2917fe7c3771f137387589b7f6a6dd3f3ba02f","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.1.0.tgz","fileCount":25,"integrity":"sha512-ZKDEbOLK9CJgsBTeWEc+TIxDWLaUwX0ktpm2Wvtls1A/gZ8lIZ50PI+VRLGt8lZ5cwx0VzFA5XJTVPG7PplWvQ==","signatures":[{"sig":"MEQCIDrR4BV4Azoe9W4a4VfEwiFa6OBJju7ysCI82Qqk+IrEAiBPztmAV2mE6fFE9dQv6QpV33t0bzBu0gY4nP5BeeAaRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":73152},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"0068838f500df0516fd8f6b975d4f02f05d88325","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.17.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.16.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.1.0_1781807310114_0.2059286691300104","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@makefully/adaptfully","version":"3.2.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.2.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"32fcc4d68feb9f6c87dc83858e2a3913231b3589","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.2.0.tgz","fileCount":28,"integrity":"sha512-cQbmXxyfvNbD2+ONJF95fOYHmf0DhXdIG01+9fgSWbfjbMgRAifTVSbgjxsuqAzPJlua90u3l0vd2etqj7u6Tg==","signatures":[{"sig":"MEQCIFcut6QaH5Xjq3gYqLqWGpjul+rtWBLeJV8cFlHr7DWhAiBibywNTU2B+9LRC8H9aywjgNU4boDDqcucK334Dy4v6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":90647},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"4c2e42194d7285c849de0188547bfc47482f6591","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.17.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.16.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.2.0_1781814457250_0.11879429641484474","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@makefully/adaptfully","version":"3.3.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.3.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"5b4afde4b1672d8e923a69d65c766b28b180a6e1","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.3.0.tgz","fileCount":32,"integrity":"sha512-tEmoiClBDhdWFBaYCUYq4LhWMUh/ZDoGateLdwyLXNxO9V1aV3S/+TjiBZfNYKgB0tQR99x1Xf9/6XcnVVE0DA==","signatures":[{"sig":"MEQCIFEDkC/X7+D9H9B3m7rao7hhsgZp/yxSjhFnEepVRP7QAiApDI1FomeMbVGdWhCWZW+fPhGgMwIU85s+jtg1r2jVJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105596},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"6719bdc8d860c65b16f2db5e5b9b6f324a16adc1","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.17.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.17.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.3.0_1782413856371_0.08582881600694225","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@makefully/adaptfully","version":"3.4.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.4.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"239288b301a17260cf9092d0c28a9bfb60034379","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.4.0.tgz","fileCount":32,"integrity":"sha512-S3yejz97H2ZDKa+zw/xTkugb6fxnykrGecSMyTSGfsLA6zcGqzKoS/ipi/YC1iAjcOpu1wEqDw5X8V/thof5lg==","signatures":[{"sig":"MEUCIHDCt/4rMz3KhL7qRKHXFM23iNXm5VjQpOc20wwQcyiGAiEA3xfLbkmz9sE1D+9HbiNtXAw2sy7rbhT61vQwDFvdxVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106218},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"65907f314e7b65402af29dd636db571f4d62c4fa","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.17.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.17.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.4.0_1782416140165_0.32233011843515147","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@makefully/adaptfully","version":"3.5.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.5.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"5535afbc824c0d4ad1e92b0affe83110d387c575","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.5.0.tgz","fileCount":33,"integrity":"sha512-sqnJm2ucPPQHuzZJO2kcqM6wsYVqf4MVgUQ8Ysc0KUAmG6cNWJ5QDxUIzy8TfqKNjPwHPppahxUv4l9y/AdhuA==","signatures":[{"sig":"MEUCIQDsDXLVQcZQhiZcgAKUuF6xLPdCJMTMNdFkuQDW5+rrcAIgCPFvYO3FkF+ii6lfXpY1FbwGfMZdjKzI6faZp7lc7sA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119133},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"165f8a6c3f0879d7200b1c0b9f07d0784e3d3477","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.18.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.5.0_1783103452270_0.706217559008727","host":"s3://npm-registry-packages-npm-production"}},"3.6.1":{"name":"@makefully/adaptfully","version":"3.6.1","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.6.1","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"602b53fd7113a926090ad8e356a1ebf73d3c620c","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.6.1.tgz","fileCount":33,"integrity":"sha512-8xDItQJR0FjlUrQP3BhsWdDLwgaXoBUyXM67faH9yTgF3umRQP7fXrDGrEi38tpk4zJpOuE9YlVxJa3j9s1NAw==","signatures":[{"sig":"MEYCIQDLYNOStcvX2CNsO0XTg0K4lntiGRHbtf1OkY7MiWK2dwIhAM/04vCBgtGSmioxg3/v5UKGnCW5uqubgj+XTbAaw9LC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119897},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"35fecefbc39402795922071de425e9cc13086120","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.18.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.6.1_1783423821016_0.5373612124887723","host":"s3://npm-registry-packages-npm-production"}},"3.7.1":{"name":"@makefully/adaptfully","version":"3.7.1","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.7.1","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"68690b3f633a78f57a8391135be523fff257a4b6","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.7.1.tgz","fileCount":33,"integrity":"sha512-Q3Fmudtdc4jGFhyPF8TZokJdr/kt40wqv2rtxanSpiFgLUGztb0cL/dam+vZQ6AVO2pBC8UhBlzIrhiHxjDdYg==","signatures":[{"sig":"MEQCIHpzV5csPM18vO2fxkB9dQ6GFmicWzqPDbGQygOMK/L+AiA0ZL5fIzKOprarobk23D/s9oiMenpjmXJq6/7Bfuj3rw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":135431},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"9fc441e46c8c6d05ca60a11e792ed977dd21a303","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.7.1_1783625485954_0.05054946484686651","host":"s3://npm-registry-packages-npm-production"}},"3.8.0":{"name":"@makefully/adaptfully","version":"3.8.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.8.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"646c1d51cfb02293eed43ccbbe6afaef50721c13","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.8.0.tgz","fileCount":34,"integrity":"sha512-XM1w0dAm/19WD7Lufr/uJQJ4nj2IjywFUcIczYdU+MNB6XLHyW7crrDkIa7RTly2bIUkJnO1hy2zGg2YvB4sTA==","signatures":[{"sig":"MEUCIEaDWUVyer8xbvxjI5aI1NWnXUw9cVqHv9P2DkudF7UqAiEAy5kCs2wKZD0x38oauYqJ1VmgC2veUvH2viKr3RtAwz8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":139175},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"3287d6f69c36b4ee6947327a35093371420e970e","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.8.0_1783696005946_0.7667537482230615","host":"s3://npm-registry-packages-npm-production"}},"3.8.1":{"name":"@makefully/adaptfully","version":"3.8.1","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.8.1","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"b5f8fa65f520293bf440176f2e5d5b7a1e745e8f","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.8.1.tgz","fileCount":34,"integrity":"sha512-buVSU2rnI0Ml3ItrzMmdc/VpHIUFuqCyA9zkPbMgmpWMBkv9U5yWgvtVvAxKCA+ZoxJeKhE8+/05xBc4cvwhhw==","signatures":[{"sig":"MEYCIQDfp8lqyB8mQN9AAs5JYPeogYKxv6/fzih+Cs/pkVbMIgIhAOf2DSo/WLgmgHjxfJTU2+QVAKzhbiIm3lWoorsKIgFM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":140252},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"fa484911b7e92cf00b4807869938db5ae0e21d41","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.8.1_1784063549309_0.044912358569959565","host":"s3://npm-registry-packages-npm-production"}},"3.8.2":{"name":"@makefully/adaptfully","version":"3.8.2","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.8.2","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"ecc0940210e4678a5fa6ef7655aabc073001667e","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.8.2.tgz","fileCount":34,"integrity":"sha512-8L0TeD++j0UjXrEOH7OKqh9QA3bywLeqy64x7bNihFKuq/XsJ0K0NJK3QQZCzWQgHliC5yQj2aW6pZ7Hpq1gOg==","signatures":[{"sig":"MEUCIFqVq44nyioNJTO+y8Avi6BmdDM20T4LFMsVTF8G4e3gAiEApjdvskTVqF822ENhc5IKLiccBebmM+ZdXkHtNXxR85Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":142441},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"426af184442622a5ebdfbbf2a2e4ea7995e6f81d","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.8.2_1784065349633_0.3909408327860051","host":"s3://npm-registry-packages-npm-production"}},"3.9.0":{"name":"@makefully/adaptfully","version":"3.9.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.9.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"1faaa79ace0ff104e0f110a36771c1967ebad9b5","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.9.0.tgz","fileCount":34,"integrity":"sha512-34Iyq8QmmrXY0C65ocuacncx0DICkbcdsLrLeNHYQoz/ANXQ1qYKA1+VFkz2HLpdldWPWuxcTlFHDB2ipdn1bg==","signatures":[{"sig":"MEQCICOGUi0DxzU5x2bFxwpdzpRW6vnNGXT3ZqAnnewj1msFAiBsTY1w+Vo7auaVagC93pXd/hbxDV4ydeX6wmfd9BLvtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":142809},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"36a66e319025d0e7487f90945215a5cc2e84fcaa","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.9.0_1784137366216_0.022126921012292078","host":"s3://npm-registry-packages-npm-production"}},"3.10.0":{"name":"@makefully/adaptfully","version":"3.10.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.10.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"9a1117f855a4f8a50e7406fa12df75a47c5e61cf","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.10.0.tgz","fileCount":35,"integrity":"sha512-+a3gkPY+q6Ca6w4YgJIH9zTvvXNuJKXnEXfVlSjNTbRo0MffJn7jJZboJj6GOrneBEvK1siRv1pg2e4Dyq4wCA==","signatures":[{"sig":"MEUCIQD11WD2OzYkgb3NnnkHZmHyfm3EIiJp79a6m5noTO+DSgIgb9f4YIsax4yXLaU3y0a0GqO0Gh57twkTUX0TgM1WFsg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":161796},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"96064ee60c1748d6a5332f3cf79c97b78e48abfd","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.10.0_1784316187368_0.5990053536916429","host":"s3://npm-registry-packages-npm-production"}},"3.11.0":{"name":"@makefully/adaptfully","version":"3.11.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.11.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"62383597511175ae7b61e3fc423e27b56b348ba7","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.11.0.tgz","fileCount":38,"integrity":"sha512-xdN+D72zozSIjQBFQoX/nFdCtmlydCj7yvYHyW83dSJstJVEwVnR3+Ib9CvGRGgbIoza36QHB1kXJijQqMN/cA==","signatures":[{"sig":"MEUCIQD5Ux4Uh/xOIj9d11EtYrNOQsOMIhH4dZz4oc7dqTPe4AIgUlf6HpfZT/Bf8cG6B2w7jVHZ/rtcrw2BH057yMFGXu4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":210263},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"35f5b926aad6b3cbb4c574e2990ddc3718696c59","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.11.0_1784836616781_0.4891581135557139","host":"s3://npm-registry-packages-npm-production"}},"3.12.0":{"name":"@makefully/adaptfully","version":"3.12.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.12.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"f7ef22089d42be11939060f7b50113a2edda18a2","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.12.0.tgz","fileCount":41,"integrity":"sha512-DAVBNkmzvdPh0TMVSnhNkwbnvjAHbAHAd8hyE9BSZJfIMFboi9SgV1GABBUZ6iWmBJV179+3xTZI0e6ujDzajw==","signatures":[{"sig":"MEUCIQDnoPTe6l7iD0EEtWdVDJ30L2eb4fW2aTrxAiak+DpoewIgObw5NigiyhR/Rn8ADNiDVhV6EwvbF1+kN+5obwRN0rc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":229613},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"09fe0cd63432fc061ce53973858fcdda6eea9596","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.12.0_1784839619539_0.9685758016997179","host":"s3://npm-registry-packages-npm-production"}},"3.12.1":{"name":"@makefully/adaptfully","version":"3.12.1","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.12.1","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"42d0348e8a036f3980599b4a7a471721af5db112","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.12.1.tgz","fileCount":41,"integrity":"sha512-gAL5wpF8fDkx+btWR6tsbwCY9QjiRJR9aeyEUCBWV0gNw8jEqrxtz6gSpExKBr76z3/iXcNlm3Vzn8Gir9k12w==","signatures":[{"sig":"MEUCIQD6CIPrZAQPuUTWdc0MWVRqB0zDEVzTFALm1qrao1ON1wIgNH3M9ze44HriVppHrC0XwPtNXQiv3HLRgRooOPPs1R8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":230714},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"aef4d35aa5e13b05c88d6d619caaacb1d1249743","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.12.1_1784854020966_0.220058089368379","host":"s3://npm-registry-packages-npm-production"}},"3.13.0":{"name":"@makefully/adaptfully","version":"3.13.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.13.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"6fe0808398ff652914d9873cda5626e7075b8230","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.13.0.tgz","fileCount":42,"integrity":"sha512-e0A/lmpKI/EpTI5U1jFQJyz7ci3fXCTk25NeISq4TLla50dEWEOVDAxBzKPw1N9oqjZZAp+7G0wdfN+K09AQ0Q==","signatures":[{"sig":"MEUCIQCQZs38BapuylvNYVtsFfOUp3s4C1DlI4+2KiJQoT8RLgIgcBtSnSZQ504LaiNNrax3ELvW4gM35K0JfPe7B/X7+1A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":234871},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"7ad739fbee7c24d1c69e1bdeff98f71228d03582","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.13.0_1785249079202_0.5029875408338951","host":"s3://npm-registry-packages-npm-production"}},"3.14.0":{"name":"@makefully/adaptfully","version":"3.14.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.14.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"3868d38c35b5b5cfd32c7fc75d0e7ce765a2ba27","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.14.0.tgz","fileCount":42,"integrity":"sha512-s5r50uYUXUctJK9Ip0umYdmXrrz+AoTnyS2cTFqdOKk2EjzBC9lgwo37RA74E66ggVO3VK8GhFfFVrmFcZdyCg==","signatures":[{"sig":"MEYCIQCP3ZE9HCPFMWZ9/lMfcBKbiVEd5xJt7IEiPKFRW+NjYQIhAKyVIT4yd6Mbd8PC3dTIOmRPuIh4AIf5AgMi+ecaKRDj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":237778},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"3b05af63a77a771410a1d6804309b555042b8e8c","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.14.0_1787338285297_0.123949070819384","host":"s3://npm-registry-packages-npm-production"}},"3.15.0":{"name":"@makefully/adaptfully","version":"3.15.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.15.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"f6b488a72e5f911d4c7becbfc67bb94aca3f64c8","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.15.0.tgz","fileCount":45,"integrity":"sha512-yUaW+Ab8s1AkIXG447pInhnUVHXRC9pCSYmAbmEcEW/GHOh0SmVtUJWsDE5WWf902EYW1lNt2N/LWlqxtbOAtw==","signatures":[{"sig":"MEQCICbnLUgcXhvCJWMDQctSrJCaIhFDURZXbXSQg9hJncXjAiBpwKDXUbuwgdbigie3lAlGfBo555E20etGeveuI47w3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":251718},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"e72b8cc8771c925b89e409f5ff3215936d9ea89a","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.15.0_1787587137960_0.008631880743528386","host":"s3://npm-registry-packages-npm-production"}},"3.15.1":{"name":"@makefully/adaptfully","version":"3.15.1","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.15.1","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"218b7f57c3fea72778b7caf4e58e6dae071366e5","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.15.1.tgz","fileCount":45,"integrity":"sha512-sduvcsdzSd6QIFkkmr4w+7EvxKlrb1b6Gve3L+XFi+2ramiLYAdfndTtTZlLkU9CeE4UisTKOzuu1+MtYIBX+g==","signatures":[{"sig":"MEUCIASIXrYtyVSkHavwXt0Q9albqcuAkJ0wYcySEDhCo2kTAiEA6ZCC79OAISycnwGP7uvhixJFfbWhgjL1IVQebRrmtMA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":253907},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"0e80afd276d8840d144f424e86864d1c511f8635","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.15.1_1788269945311_0.6459772290036956","host":"s3://npm-registry-packages-npm-production"}},"3.16.0":{"name":"@makefully/adaptfully","version":"3.16.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.16.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"05f186f1dbdd5d3e8e985d258c1e5444fe88c1e8","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.16.0.tgz","fileCount":45,"integrity":"sha512-Z41KC/eBxDLvNyllMNPZhiUFJOJQ2XKaH7ytWg6LgHL7/N1QQmAgczWbuUHM/GfgMk64gO1+SUfmPq0GxU23xw==","signatures":[{"sig":"MEUCIQDCdI4ZidKpzqE4GKCh461K+LYEbLSXGd2Wk6IEeT7m3QIgT4oLnET/8RsyLtElB7sIG7TS0z2IJRkfxT5//I2aN+0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":256316},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"166f917b09732738976c23ed7513eb907fb012a5","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.20.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.16.0_1788382400552_0.700479846035825","host":"s3://npm-registry-packages-npm-production"}},"3.16.1":{"name":"@makefully/adaptfully","version":"3.16.1","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","cordova","electron"],"license":"MIT","_id":"@makefully/adaptfully@3.16.1","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"795ecfd2cc2050a2331482597e0e961d301bfc13","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-3.16.1.tgz","fileCount":45,"integrity":"sha512-rv21hfFJ3WbND/qs5h3wJLzk6MzvVPJ4cD4o4+AFDKVHnsGDLVGAi5XW7Av9nGW9fGBdCSSFXpUGeVL6kWyE3g==","signatures":[{"sig":"MEYCIQDiO2hJjHVnUBtm8TJKV9hg/5HcEU6XSq/JQsRuLXKYYgIhAJYo9izu+v2Doc3OQbMkCBk/QmwLP8LOkszlceZlw3Fx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@3.16.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":258374},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"740f94dcc349bca2b8435ec6f053f5f74629eff9","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_3.16.1_1788439598581_0.9566200738302328","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@makefully/adaptfully","version":"4.0.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","capacitor","electron"],"license":"MIT","_id":"@makefully/adaptfully@4.0.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"e4bf00908ed78af42c9a4c20b34f7d72621c0f34","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-4.0.0.tgz","fileCount":44,"integrity":"sha512-+F3F29eCQOXUfwbWDhQX9pOtYh4EwfcXQ4VYVYMkuM9PFL/3PEQ6uTgAFwlSP5YGh/ib5oc9/469iDwo5hmYfw==","signatures":[{"sig":"MEYCIQDDMX7P3zL2AWbNfqQ9cVtcSDSty3O4YX7t46/Ld8r9RAIhAIAdED/9grqi4qa60WCXlaGk5ssQmum+6reQeaQU8n5k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":256708},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"7244b74628d89a8f549849d99f303b20a5d7cc70","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_4.0.0_1788457351453_0.4913915042735053","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@makefully/adaptfully","version":"4.1.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","capacitor","electron"],"license":"MIT","_id":"@makefully/adaptfully@4.1.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"296349c640cd25ae89745fd2ebdd15267dccabb7","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-4.1.0.tgz","fileCount":50,"integrity":"sha512-YMovRuncYnkGssPC/DbSN8GvhFAUX7O+gffm5tmbMNMcpje0y1tnyq3D5PubBxi9GiwGi4dU6a2csDn/OuxA7w==","signatures":[{"sig":"MEUCIQCGxA1Z+DBQsPN8Tvr7jB099HsTDrazupxhA4iB1Vd+iAIgSGo6QIlbwJME7Efg0wP5KmeX/O3Vjbzr20M+IkGAur4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@4.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":296983},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"812ff4c5e68f85f5d35beafe367722fc3d3721b8","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.20.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_4.1.0_1788551431753_0.41804731181977295","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@makefully/adaptfully","version":"4.2.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","capacitor","electron"],"license":"MIT","_id":"@makefully/adaptfully@4.2.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"91d494382dc2d8543645a1d1198aa9555ffaea66","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-4.2.0.tgz","fileCount":52,"integrity":"sha512-yr/uqr4l1T+XIS7nonGmuTxFJWQOiCE9uHRtNs7bPmktehvBqmk9qhobM+99dPIzTd5RMrDh+LYl0xjuNhtN1Q==","signatures":[{"sig":"MEUCIC5KBScpscCZtyU7on1c4WXf4rf4aPDvrRI4vVvQN6IzAiEAtrimi4yengRFIxMCAy5FEVmsW982nfDqxOzox8IXXqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@4.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":313613},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"e73694bbc0bb2ca9786405e2860f4a5ebf9e6d71","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.20.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_4.2.0_1788972882699_0.8200111447751357","host":"s3://npm-registry-packages-npm-production"}},"4.2.1":{"name":"@makefully/adaptfully","version":"4.2.1","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","capacitor","electron"],"license":"MIT","_id":"@makefully/adaptfully@4.2.1","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"2b03aec875cf950d8e4f59ea29bde702f432c123","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-4.2.1.tgz","fileCount":52,"integrity":"sha512-RvS9AXzpMVuA1iZ90YKe+kVbU6FlKyI/nGut3KomTnHg395cYe4ajzaXn/H9DND6j5u7Lc44yGhFYZqceUGBZw==","signatures":[{"sig":"MEUCIDjBYv1YpnFpUAfhACqjcsi7vG5pvCOg7hQou6HLZlDfAiEAv+IWFSgGCBzTLV1DUjkQ2fUtG+BS36qd6tE6avicxKA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@4.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":314594},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"88337cad4daace5fe6c9c7aa3bf328420ebad2f0","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.20.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_4.2.1_1788980433509_0.9574658215999086","host":"s3://npm-registry-packages-npm-production"}},"4.2.2":{"name":"@makefully/adaptfully","version":"4.2.2","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","capacitor","electron"],"license":"MIT","_id":"@makefully/adaptfully@4.2.2","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"c847ca433012bc3e943a7f083779222371fa88da","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-4.2.2.tgz","fileCount":52,"integrity":"sha512-ipoaZfUmi8saHnZfZTnzOOkjtLdTG6uRYfAPzf+Cb4iWk72m5OCroSjqg74uKjfJyKFtoMxXTQFpK6ghfiC7EQ==","signatures":[{"sig":"MEYCIQDchvwid7kYyQnqHFtEpe7nQpTzBDqRkPwd5MO+FkM+awIhAKJJ7Crt/4hQ5cs2u//pm43x3KHGmpTT2B/qACPTv7nK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@4.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":315628},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"6c2be5457f3557060418c4a54cb4e58ca3a1c317","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.20.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_4.2.2_1789053169323_0.3324399215351854","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"@makefully/adaptfully","version":"4.3.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","capacitor","electron"],"license":"MIT","_id":"@makefully/adaptfully@4.3.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"7aa614485ea30a58613735f1ff2eecec5211bb82","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-4.3.0.tgz","fileCount":52,"integrity":"sha512-7Rc+McSpeQ1cKROAkFmCdqDFn1W5wlRkixfVWa9vuTSMG+3vkifwoEy9N/wGFYAjmSGhV3ct8DYEjMsRSj+yyg==","signatures":[{"sig":"MEYCIQCZBV96EzSO1MKBNwlSQlGoAPRBWqHLGm3ss8AZZXkKOAIhALkEVU08UkyqSpC2lhBkHaajnAYEiPQMFi8apvT8i6Px","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@4.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":321235},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"f844e40a23d268ab16e861d346de0a683ae88325","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.20.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_4.3.0_1789139071157_0.9983887779041016","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@makefully/adaptfully","version":"5.0.0","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","capacitor","electron"],"license":"MIT","_id":"@makefully/adaptfully@5.0.0","maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"dist":{"shasum":"8eb8e5973f2c266f98c05e521de6c832bf164cb9","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-5.0.0.tgz","fileCount":52,"integrity":"sha512-6J6mhsQZxNgOu2CZhT6jFE9laC1S2SFi0zf3D++fQrgKhMktl+dvSK6qu7siaJd0rJMe/dmo1XHsfzp8o+j4FQ==","signatures":[{"sig":"MEYCIQC33P4qUw1QW66W6RkHs48KrrPG32yFBjp2Bsb2eVoXyAIhAP4hz0XfrCPsqkckF0jCJUdW+05Mf3PqtBbxBsJnJfpb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":321333},"main":"./lib/node/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"47276c08cba02832e29a3a2e9921dcee698d9fa5","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"_nodeVersion":"24.20.0","dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adaptfully_5.0.0_1789143163321_0.23774790355961328","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"_id":"@makefully/adaptfully@5.0.1","bin":{"adaptfully":"bin/adaptfully.js","wrapfully-deploy":"bin/wrapfully-deploy.js"},"bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"dist":{"shasum":"9f40ac608b70b8657ed7554133e5f9e258e6e98d","tarball":"https://registry.npmjs.org/@makefully/adaptfully/-/adaptfully-5.0.1.tgz","fileCount":52,"integrity":"sha512-U5VQapcOwT8EBtW06DlY/V1dFwLqbu6wlCGQ1hBEwpd1Sl+gXl0FIxz2xU6ZBDgO7Uj6ZIW7ue5Wtmg8VeDcNg==","signatures":[{"sig":"MEUCIBl0n61Gaz7NisRxZ7Un+gQcTjA8vzPpuW6QX5tbZ01MAiEA3IbKzwpk7nC/X4VuzC3dzKfv4enPZRVDiCNHOtHqhr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCs1s2sYC2XvTM5TJMk6qBsTDWs9AB6TfLUMGFli5llmwIgDz4SAUuIsL0ffR0ZreHD47sYkG5ODzhvVgY/0A2UOZw="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@makefully%2fadaptfully@5.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":324020},"main":"./lib/node/index.js","name":"@makefully/adaptfully","type":"module","engines":{"node":">=18"},"exports":{".":"./lib/node/index.js","./deploy":"./lib/node/deploy.js","./runtime/*":"./lib/runtime/*","./package.json":"./package.json"},"gitHead":"482902a1fc721d83be727b0f9be104c9dacdf2b1","license":"MIT","scripts":{"test":"node --test test/*.test.js","deploy":"node bin/wrapfully-deploy.js"},"version":"5.0.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d599e84-e299-42a4-b5c2-994e03f53aa1"}},"homepage":"https://github.com/Makefully-Studios/adaptfully#readme","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","capacitor","electron"],"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"_npmVersion":"11.8.0","description":"Platform abstraction and Wrapfully deploy client for Makefully games","directories":{},"maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"_nodeVersion":"24.20.0","contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"dependencies":{"axios":"^1.7.9","archiver":"^7.0.1","unzip-stream":"^0.3.4"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adaptfully_5.0.1_1789655248704_0.7505953156558225"}}},"time":{"created":"2026-06-16T13:06:30.741Z","modified":"2026-09-17T14:27:29.515Z","2.1.0":"2026-06-16T13:06:31.112Z","3.0.0":"2026-06-18T00:52:32.045Z","3.0.1":"2026-06-18T01:22:11.670Z","3.0.2":"2026-06-18T01:44:31.436Z","3.0.3":"2026-06-18T17:49:41.998Z","3.1.0":"2026-06-18T18:28:30.253Z","3.2.0":"2026-06-18T20:27:37.427Z","3.3.0":"2026-06-25T18:57:36.532Z","3.4.0":"2026-06-25T19:35:40.299Z","3.5.0":"2026-07-03T18:30:52.406Z","3.6.1":"2026-07-07T11:30:21.182Z","3.7.1":"2026-07-09T19:31:26.126Z","3.8.0":"2026-07-10T15:06:46.075Z","3.8.1":"2026-07-14T21:12:29.465Z","3.8.2":"2026-07-14T21:42:29.768Z","3.9.0":"2026-07-15T17:42:46.350Z","3.10.0":"2026-07-17T19:23:07.562Z","3.11.0":"2026-07-23T19:56:56.934Z","3.12.0":"2026-07-23T20:46:59.672Z","3.12.1":"2026-07-24T00:47:01.129Z","3.13.0":"2026-07-28T14:31:19.354Z","3.14.0":"2026-08-21T18:51:25.459Z","3.15.0":"2026-08-24T15:58:58.076Z","3.15.1":"2026-09-01T13:39:05.498Z","3.16.0":"2026-09-02T20:53:20.710Z","3.16.1":"2026-09-03T12:46:38.716Z","4.0.0":"2026-09-03T17:42:31.600Z","4.1.0":"2026-09-04T19:50:31.893Z","4.2.0":"2026-09-09T16:54:42.859Z","4.2.1":"2026-09-09T19:00:33.686Z","4.2.2":"2026-09-10T15:12:49.443Z","4.3.0":"2026-09-11T15:04:31.316Z","5.0.0":"2026-09-11T16:12:43.465Z","5.0.1":"2026-09-17T14:27:28.809Z"},"bugs":{"url":"https://github.com/Makefully-Studios/adaptfully/issues"},"license":"MIT","homepage":"https://github.com/Makefully-Studios/adaptfully#readme","keywords":["adaptfully","wrapfully","auth","platform","deploy","build","capacitor","electron"],"repository":{"url":"git+https://github.com/Makefully-Studios/adaptfully.git","type":"git"},"description":"Platform abstraction and Wrapfully deploy client for Makefully games","contributors":[{"name":"Derek Detweiler","email":"derek@makefullystudios.com"}],"maintainers":[{"name":"probityrules","email":"derek.detweiler@gmail.com"}],"readme":"# Adaptfully\n\nPlatform abstraction and Wrapfully deploy client for Makefully games.\n\n- **Adaptfully runtime** — shared auth and platform services via `adaptfully.register()` / `adaptfully.get()`\n- **Adaptfully pipeline** — prebuild, build, and deploy stages driven by `config.platforms`\n- **Wrapfully deploy** — zip-and-post client for building desktop, mobile, and Steam packages\n\n## Install\n\n```bash\nnpm install @makefully/adaptfully\n```\n\nMaintainers: see [PUBLISHING.md](PUBLISHING.md) for npm trusted publishing setup.\n\n## Adaptfully runtime\n\nGames register platform services before load and retrieve them in-game. Adaptfully applies platform registrations during **prebuild** — games compile a neutral `deploy/` folder, then Adaptfully writes `output/<platform>-prebuild/` with the correct auth and plugin scripts injected into HTML.\n\n### Pipeline stages\n\n```bash\n# wrapfully.json (gitignored) or env — Showfully PAT required for build/deploy/release:\n#   { \"accessToken\": \"sfpat_…\", \"server\": \"https://make.makefullystudios.com/\" }\n#   optional: \"encrypt\": true\n\nexport SHOWFULLY_PAT=sfpat_…\nadaptfully prebuild web                       # deploy/ → output/web-prebuild/ (local only)\nadaptfully build steam                        # Yap /yap/wrapfully chore → artifact zip\nadaptfully deploy web --deployment web-prod   # Yap deploy chore\nadaptfully release android --encrypt          # optional envelope encryption\nadaptfully release steam,android,ios          # sequential platforms; each → output/<platform>/\nadaptfully release --platforms steam,android  # same, flag form\nadaptfully steam-publish                      # one-time: log in with steamcmd → assets/meta/deployments/steam/steam.json\n```\n\n| Stage | What it does |\n|-------|----------------|\n| `prebuild` | Copy `deploy/` to `output/<platform>-prebuild/` and inject registrations into `config.htmlInjections` |\n| `build` | Prebuild, then submit a **Showfully Yap** `wrapfully` chore (PAT required); poll until the artifact zip returns |\n| `deploy` | Submit a Yap deploy chore with the prior build artifact + deployment credentials |\n| `release` | Yap release chore (build + configured deployments on Wrapfully) |\n| `steam-publish` | One-time local setup: install steamcmd, interactive login, write the `steam` deployment's `steam.json` (also updates `.gitignore`) |\n| `google-publish` | One-time local setup: import a Play Console service-account JSON into the `android` deployment folder (also updates `.gitignore`) |\n| `apple-publish` | One-time local setup: write App Store Connect credentials into the `ios` deployment folder (also updates `.gitignore`) |\n| `android-keystore` | One-time local setup: generate debug/release keystores and write `android` `build.json` (also updates `.gitignore`) |\n| `apple-signing` | One-time local setup: CSR → Apple `.cer` → `.p12` / provisioning profiles under `ios/apple/` (also updates `.gitignore`) |\n\nComma-separated platforms (or `--platforms`) run **sequentially**. Build/deploy/release extracts always go to `output/<platform>/` so sibling results are not overwritten; only that folder’s prior `artifacts/` / status files are cleared before each extract.\n\n**Server** means the Showfully Yap base (`SHOWFULLY_SERVER` / `wrapfully.json` `showfullyServer` or `server`), default `https://make.makefullystudios.com/`. Wrapfully workers claim chores with a separate service token.\n\n**Encryption (optional):** `--encrypt` or `\"encrypt\": true` wraps the chore to the Makefully Wrapfully fleet public key (override with `--encrypt-public-key`). Results are decrypted locally with an ephemeral `resultPriv` kept only for that chore.\n\nFirst-time walkthroughs (manual steps + helper skip markers): [docs/credentials/](docs/credentials/README.md).\n\n`wrapfully-deploy` is a compatibility alias for `adaptfully deploy` when invoked with a Wrapfully builder name (`steam`, `win`, `android`, etc.).\n\n### Platforms vs. deployments\n\nA **platform** (`config.platforms.<key>`) describes *how* to build — registrations, packager, and the Wrapfully builder. A **deployment** describes *where* a build is sent, along with the credentials for that target. This lets a single build fan out to several targets of the same platform type (for example, a staging and a production SFTP host).\n\n- A platform may declare `\"deployments\": [\"<key>\", ...]`. Each key maps to a credential folder at `assets/meta/deployments/<key>/`.\n- If a platform has no `deployments` array, the platform key itself is the single default deployment key (so `steam` → `assets/meta/deployments/steam/`).\n- `adaptfully deploy <platform>` prebuilds once, then sends to Wrapfully once per deployment. `--deployment <key>` narrows it to one.\n- Only the selected deployment's folder is shipped in each zip (as `meta/publish/`), so other targets' credentials never travel with a build.\n\n```json\n\"config\": {\n  \"platforms\": {\n    \"web\":       { \"registrations\": { \"auth\": \"google-auth\" }, \"deployments\": [\"web-testing\", \"web-prod\"] },\n    \"steam\":     { \"packager\": \"electron\", \"registrations\": { \"auth\": \"steam-auth\" } },\n    \"steam-dev\": { \"packager\": \"electron\", \"registrations\": { \"auth\": \"steam-auth\" }, \"deployments\": [\"steam\"] }\n  }\n}\n```\n\n> **Back-compat:** projects with no `assets/meta/deployments/` directory keep the legacy behavior — the entire `assets/meta/` tree (including `assets/meta/publish/`) is shipped as `meta/`, and a single set of credentials is read from `meta/publish/`.\n\nPlace `<!-- adaptfully -->` / `<!-- /adaptfully -->` markers in your HTML templates where registrations should be injected (typically between split bundle scripts, before `account.js` runs). **Do not also inline Adaptfully auth scripts at game compile time** — prebuild/release owns the marker block for each platform.\n\n```javascript\n// Injected into deploy/index.html for the target platform (before game code):\nadaptfully.register('auth', adaptfully.auth.Google);\n\n// In-game:\nconst platform = adaptfully.get('auth');\nplatform.login(function (result) { /* ... */ });\n```\n\n### Storage plugins\n\n| Plugin key | Registration | Runtime |\n|------------|--------------|---------|\n| `localStorage` | `adaptfully.register('storage', adaptfully.storage.LocalStorage())` | Sync key/value storage in the browser |\n| `indexedDB` | `adaptfully.register('storage', adaptfully.storage.IndexedDB())` | Async key/value storage for larger payloads |\n\nIn-game:\n\n```javascript\nconst storage = adaptfully.get('storage');\nstorage.set('playerName', 'Ada');\nstorage.getObject('currentGame');\n```\n\n### Analytics plugins\n\n| Plugin key | Registration | Runtime |\n|------------|--------------|---------|\n| `http-analytics` | `adaptfully.register('analytics', adaptfully.analytics.Http())` | Batches events to a first-party collector URL |\n| `noop-analytics` | `adaptfully.register('analytics', adaptfully.analytics.Noop())` | Same API; no network (dev / opt-out builds) |\n\nRegister under the `analytics` key (same pattern as `auth` / `storage`). Point the HTTP plugin at your collector via Adaptfully **config**:\n\n| Config key | Purpose |\n|------------|---------|\n| `analyticsEndpoint` | `POST` URL for event batches (required for HTTP) |\n| `analyticsGameId` | Game id stamped on payloads (falls back to `window.gameConfig.id`) |\n| `analyticsEnabled` | Set `false` to disable without swapping plugins |\n| `analyticsPlatform` / `analyticsAppVersion` | Optional overrides; otherwise `window.gameConfig` |\n\nIn-game:\n\n```javascript\nconst analytics = adaptfully.get('analytics');\nanalytics.setContext({ channel: 'web' });\nanalytics.identify(accountId); // opaque id only — no emails\nanalytics.track('game_start', { mapId: 28, players: 1 });\nanalytics.optOut(); // persists via storage when registered\n```\n\nGames should call `adaptfully.has('analytics')` before `get` during rollout if older builds may omit the registration. Prefer named product events over fake page paths. Do not branch on Steam vs Capacitor for delivery — the HTTP plugin works across shells.\n\n### Auth plugins\n\n| Plugin key | Registration | Runtime |\n|------------|--------------|---------|\n| `google-auth` | `adaptfully.register('auth', adaptfully.auth.Google)` | Web (Google Identity Services) |\n| `steam-auth` | `adaptfully.register('auth', adaptfully.auth.Steam)` | Steam / Electron (via [steamworks.js](https://github.com/ceifa/steamworks.js)) |\n| `social-auth` | `adaptfully.register('auth', adaptfully.auth.Social)` | Capacitor (via [@capgo/capacitor-social-login](https://github.com/Cap-go/capacitor-social-login)) |\n| `dev-auth` | `adaptfully.register('auth', adaptfully.auth.Dev)` | Local / testing |\n\nUse plugin keys in `config.platforms.<platform>.registrations`. Custom deploy scripts use a path relative to the deploy folder instead:\n\n```json\n{\n  \"config\": {\n    \"platforms\": {\n      \"steam\": {\n        \"registrations\": {\n          \"storage\": \"localStorage\",\n          \"auth\": \"steam-auth\"\n        }\n      },\n      \"web\": {\n        \"registrations\": {\n          \"storage\": \"localStorage\",\n          \"auth\": \"google-auth\"\n        }\n      },\n      \"dev\": {\n        \"registrations\": {\n          \"storage\": \"localStorage\",\n          \"auth\": \"dev-auth\"\n        }\n      }\n    }\n  }\n}\n```\n\nStandard plugin keys load bundled Adaptfully runtime scripts and emit an inline `adaptfully.register()` call. Path values add a `<script src=\"...\">` tag — the script is expected to call `adaptfully.register()` itself (for example a bridge that wires `storage` and `config`). Use a leading `/` for site-root URLs; omit it for paths relative to each HTML page (required when the game is hosted in a subdirectory).\n\nWrapfully builders (`steam`, `win`, `mac`, `android`, etc.) map to platform keys via defaults (`win` → `steam`) or an explicit `builders` array on the platform config.\n\nEach platform entry may set a **`packager`** (`web`, `electron`, or `capacitor`). Defaults to **`web`** — copy deploy and inject HTML only. Packagers are implemented as classes (`WebPackager`, `ElectronPackager`, `CapacitorPackager`) that handle prebuild output for their target platforms.\n\n| Packager | Prebuild adds |\n|----------|---------------|\n| `web` | `game-config.js` for **`uwp`** platform prebuilds |\n| `electron` | `main.js` (Electron shell); `preload.js` when **`steam-auth`** is registered |\n| `capacitor` | `game-config.js`, Capacitor CSP/viewport; `social-login-config.js` when **`social-auth`** is registered |\n\nAndroid/iOS Wrapfully builds use the **`capacitor`** builder family. Cordova/PhoneGap is no longer supported.\n\n**`steam-auth` requires `packager: \"electron\"`** and `platforms.<name>.steamId` (Steamworks app ID for the client preload). Steam **upload** app IDs live separately in each Steam deployment’s `manifest.json` — see Wrapfully docs.\n\n**`social-auth` requires `packager: \"capacitor\"`** and `platforms.<name>.socialLogin` (Capgo provider client IDs). Wrapfully installs `@capgo/capacitor-social-login` when building.\n\nGoogle client IDs are **not** interchangeable across plugins:\n\n| Surface | Config | Notes |\n|---------|--------|--------|\n| Browser GIS (`google-auth`) | `config.googleClientId` (via your config registration / bridge) | OAuth **Web** client whose authorized JavaScript origins include the site origin |\n| Capacitor Capgo (`social-auth`) | `platforms.<name>.socialLogin.google.webClientId` | Server / web client id for native Google Sign-In — do **not** put this in `googleClientId` |\n\n```json\n{\n  \"config\": {\n    \"platforms\": {\n      \"web\": {\n        \"packager\": \"web\",\n        \"registrations\": { \"auth\": \"google-auth\" }\n      },\n      \"steam\": {\n        \"packager\": \"electron\",\n        \"steamId\": 1234567,\n        \"registrations\": { \"auth\": \"steam-auth\" }\n      },\n      \"android\": {\n        \"packager\": \"capacitor\",\n        \"registrations\": { \"auth\": \"social-auth\", \"storage\": \"localStorage\" },\n        \"socialLogin\": {\n          \"providers\": { \"google\": true, \"apple\": true },\n          \"google\": {\n            \"webClientId\": \"….apps.googleusercontent.com\",\n            \"iOSClientId\": \"….apps.googleusercontent.com\"\n          },\n          \"apple\": {\n            \"clientId\": \"com.example.service\"\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Google auth (`google-auth`)\n\nBrowser-only plugin using [Google Identity Services](https://developers.google.com/identity/oauth2/web/guides/overview) (`accounts.google.com/gsi/client`). Requires `config.googleClientId` — there is no built-in default. GIS authorized origins are **per OAuth client**; reusing `socialLogin.google.webClientId` here is a common failure mode when mobile and web need different clients.\n\nOptional config keys:\n\n| Key | Default | Purpose |\n|-----|---------|---------|\n| `googleClientId` | *(required)* | Browser GIS OAuth client id |\n| `googleTokenKey` | `adaptfully_google_token` | `sessionStorage` key for the access token |\n| `googleScopes` | `openid email profile` | OAuth scopes |\n| `autoLoginStorageKey` | `lastLoggedIn` | Storage key written with the user id on login |\n\n#### Steam auth (`steam-auth`)\n\nWhen `steam-auth` is registered on an **`electron`** platform, Adaptfully prebuild writes:\n\n- **`main.js`** — Electron shell with Steam overlay enabled and a preload script wired in\n- **`preload.js`** — initializes [steamworks.js](https://github.com/ceifa/steamworks.js) with `platforms.<name>.steamId` and exposes `window.__ADAPTFULLY_STEAMWORKS__`\n\nThe renderer `steam-auth` plugin reads the Steam ID from that bridge. When Steam is available, `autoLogin()` succeeds immediately with `{ id: steamId64, email: '' }`. `supportsLogout()` is `false` and `requiresEmail()` is `false` — games should not offer Sign out, and should treat id-only identity as complete. Optional config keys:\n\n| Key | Default | Purpose |\n|-----|---------|---------|\n| `autoLoginStorageKey` | `lastLoggedIn` | Storage key written with the Steam ID on login |\n| `steamReadyTimeoutMs` | `10000` | Max wait when a bridge exists but identity is not yet ready |\n\n#### Social auth (`social-auth`)\n\nWhen `social-auth` is registered on a **`capacitor`** platform, Adaptfully prebuild writes **`social-login-config.js`** (`window.__ADAPTFULLY_SOCIAL_LOGIN__`) from `platforms.<name>.socialLogin`. Wrapfully installs [`@capgo/capacitor-social-login`](https://github.com/Cap-go/capacitor-social-login) and syncs it into the native project (same role as `steamworks.js` for Electron).\n\nThe runtime plugin calls Capgo `SocialLogin.initialize` / `login` / `logout` / `isLoggedIn`. Default provider is `google` on Android and `apple` on iOS when both are enabled (override with `socialLogin.defaultProvider`).\n\n**Apple-only iOS** (`providers.google: false`, `providers.apple: true`) is supported — Google `webClientId` is not required. On iOS, if `apple.clientId` is omitted, Adaptfully defaults it to the platform `packageName` (Capgo uses this as a plugin label on native iOS, not an Apple Services ID). On Android, Apple Sign-In still requires `apple.clientId`. At runtime, an empty Apple `clientId` also falls back to `window.gameConfig.packageName`.\n\nGoogle Sign-In on Capacitor reads **`socialLogin.google.webClientId` only** (via `social-login-config.js`). It does not fall back to `config.googleClientId`.\n\nOptional config keys:\n\n| Key | Default | Purpose |\n|-----|---------|---------|\n| `autoLoginStorageKey` | `lastLoggedIn` | Storage key written with the user id on login |\n| `socialReadyTimeoutMs` | `10000` | Max wait for the Capgo plugin bridge |\n\n### Node API\n\n```javascript\nimport {\n    prebuildPlatform,\n    createPackagerForPlatform,\n    resolveHtmlInjections,\n    runAdaptfullyStage,\n    buildAdaptfullyInjection,\n    injectAdaptfullyRegistrations,\n    adaptfullyInjectionForPlatform,\n    resolveRegistrationAssets,\n    resolvePlatformKey,\n    resolveBuilderForPlatform,\n    getRuntimeDir,\n    resolveRuntimeScript,\n    STANDARD_PLUGINS,\n} from '@makefully/adaptfully';\n```\n\n- **`prebuildPlatform(deployFolder, platformKey, pkg)`** — copy `deploy/` to `output/<platform>-prebuild/` and inject registrations into `config.htmlInjections` (default: `index.html`).\n- **`createPackagerForPlatform(platformKey, pkg, { platforms, log })`** — get a packager instance for custom prebuild or future build/deploy integration. The instance exposes `usesPlugin('steam-auth')`, `collectUsedPlugins()`, and `prebuild(dest, htmlPaths)`.\n- **`resolveRegistrationAssets(registrations)`** — resolve runtime script paths, inline registration JS, and external script tags for a registration map (useful for Vite dev servers).\n- **`runAdaptfullyStage('prebuild' | 'build' | 'deploy', platformKey, options)`** — run a pipeline stage programmatically.\n- **`platform.autoLogin(callback)`** — restore a prior session without UI when the auth plugin supports it (Google uses `lastLoggedIn` in storage and a cached OAuth token).\n- **`platform.supportsAutoLogin()`** — whether the active auth plugin can attempt automatic sign-in.\n- **`platform.logout(callback)`** — clear / revoke the platform session when supported.\n- **`platform.supportsLogout()`** — whether logout is a durable user-facing action. Steam returns `false` (identity is bound to the Steam client); Google, social, and dev return `true`. Prefer this over checking `auth.name` when showing Sign out UI.\n- **`platform.requiresEmail()`** — whether `getUser()` must include email for a complete session. Steam returns `false` (SteamID64 alone); Google, social, and dev return `true`. Prefer this over checking `auth.name` for session sync and account-link routing.\n\n---\n\n## Wrapfully deploy\n\nAfter prebuild, the build and deploy stages zip `output/<platform>-prebuild/` and POST it to a Wrapfully build server. Artifacts are saved to `./output/<platform>/`.\n\n## Quick start\n\n1. Build your web app into a neutral deploy folder (default: `./deploy/`, must include `index.html` with adaptfully markers).\n2. Add `config.platforms` and other settings to `package.json` (see [Configuration](#configuration)).\n3. Add icons and any signing credentials under `./assets/meta/`.\n4. Prebuild for your target platform, then build or deploy:\n\n```bash\nnpx adaptfully prebuild web\nnpx adaptfully deploy steam http://build.example.com:9633/\n```\n\nFor web-only hosting (no Wrapfully), stop after prebuild and upload `output/web-prebuild/` yourself.\n\n## Usage\n\n### Adaptfully CLI\n\nRun from your project root:\n\n```bash\nnpx adaptfully <prebuild|build|deploy|release> <platform> [server] [mode]\nnpx adaptfully steam-publish [--username U] [--password P] [--deployment steam] [--output path]\nnpx adaptfully google-publish [--from service-account.json] [--deployment android] [--output path]\nnpx adaptfully apple-publish [--deployment ios] [--category C] [--identity I] [--username U] [--password P]\n```\n\n| Stage | Description |\n|-------|-------------|\n| `prebuild` | Copy `deploy/` → `output/<platform>-prebuild/` with registrations injected into `config.htmlInjections` |\n| `build` | Prebuild, then POST to Wrapfully (no platform release) |\n| `deploy` | Prebuild, POST to Wrapfully, then release when credentials are present |\n\n| Argument | Default | Description |\n|----------|---------|-------------|\n| `platform` | — | Platform key from `config.platforms` (`web`, `steam`, etc.) |\n| `server` | see below | Wrapfully server base URL (`build` and `deploy` only) |\n| `mode` | `extract` | `extract` unpacks the response zip into `./output/<platform>/`; any other value saves `./output/<platform>/{name}-{version}-{builder}.zip` |\n\nExamples:\n\n```bash\n# Prebuild for web (upload output/web-prebuild/ via FTP, S3, etc.)\nnpx adaptfully prebuild web\n\n# Build for Steam via Wrapfully\nnpx adaptfully build steam http://build.example.com:9633/\n\n# Full Steam deploy (build + upload when steam.json credentials are present)\nnpx adaptfully deploy steam http://build.example.com:9633/\n```\n\nAdd scripts to your project's `package.json`:\n\n```json\n{\n  \"scripts\": {\n    \"web:prebuild\": \"adaptfully prebuild web\",\n    \"steam:deploy\": \"adaptfully deploy steam\"\n  }\n}\n```\n\n### wrapfully-deploy (legacy alias)\n\n```bash\nnpx wrapfully-deploy [builder] [server] [mode]\n```\n\nAccepts Wrapfully builder names (`steam`, `win`, `mac`, `android`, `webapp`, etc.) instead of platform keys. Maps to the matching `config.platforms` entry (defaults: `win` → `steam`, `webapp` → `web`) and runs the `deploy` stage.\n\n### Server address\n\nThe server URL is resolved in this order:\n\n1. CLI argument\n2. `WRAPFULLY_SERVER` environment variable\n3. `server` field in `wrapfully.json`\n4. `http://localhost:9633/`\n\nKeep server addresses and credentials out of version control — use environment variables or a gitignored `wrapfully.json`.\n\n## What gets sent\n\nThe client POSTs a zip stream built from `output/<platform>-prebuild/` to:\n\n```\n{server}{builder}/{name}-{version}\n```\n\nFor example, a project named `mygame` at version `1.2.0` with builder `android`:\n\n```\nhttp://build.example.com:9633/android/mygame-1.2.0\n```\n\nThe server extracts the zip, reads the embedded `package.json`, runs the build for that platform, and streams a zip of artifacts back to the client.\n\n### Zip contents\n\n| Archive path | Source on disk | Purpose |\n|--------------|----------------|---------|\n| `deploy/` | prebuilt `output/<platform>-prebuild/` | Built web app with Adaptfully registrations injected |\n| `deploy/index.html` | prebuilt entry point | Platform-specific HTML |\n| `meta/` | `./assets/meta/` (if present) | Icons, signing keys, and publish credentials |\n| `package.json` | project root | Merged `package.json` + `wrapfully.json` config |\n\n### Project layout\n\n```\nmygame/\n├── package.json          # npm metadata + config.platforms (see below)\n├── wrapfully.json        # optional — merged into config\n├── deploy/               # neutral build output (default deployFolder)\n│   └── index.html\n├── output/\n│   ├── web-prebuild/     # after adaptfully prebuild web\n│   ├── steam-prebuild/   # after adaptfully prebuild steam\n│   ├── web/              # after adaptfully build/release web\n│   └── steam/            # after adaptfully build/release steam\n└── assets/\n    └── meta/                    # shared files packaged as meta/ in the zip\n        ├── icon-foreground.png\n        ├── icon-background.png\n        └── deployments/         # one folder per deployment target (creds)\n            ├── web-testing/\n            │   └── sftp.json\n            ├── web-prod/\n            │   └── sftp.json\n            └── steam/           # default deployment for the `steam` platform\n                └── steam.json\n```\n\nThe selected deployment's folder is shipped as `meta/publish/` in the zip, so per-platform credential file names (`build.json`, `sftp.json`, `steam.json`, `apple.json`, `google.json`, `ms.json`, `android/`, `ms/`) live inside `assets/meta/deployments/<key>/`.\n\nIcons (`icon-foreground.png`, `icon-background.png`) are required for mobile, desktop, and Steam builds. If either file is missing from `assets/meta/`, Adaptfully **warns** and ships packaged placeholder icons for that build so Wrapfully can still run.\n\n### Icons\n\nPlace two layered PNG files in `./assets/meta/` (packaged as `meta/` in the zip):\n\n| File | Purpose |\n|------|---------|\n| `icon-foreground.png` | Foreground layer (typically the character or subject) |\n| `icon-background.png` | Background layer (typically the scene or environment) |\n\nThe build server composites the foreground over the background, applies a binding/logo overlay, and generates the icon sizes each platform needs.\n\n**Recommended format:** 1536×1536 pixel square PNGs for both files. Images with other dimensions are scaled to 1536×1536 automatically, but matching the target size produces the sharpest results.\n\nMissing icons do not fail the Adaptfully client: check the `WARNING missing layered icon(s)` log line and replace the placeholders before a store release.\n\n## Configuration\n\nBuild settings are read from `package.json`. The client merges any `wrapfully.json` fields into `package.json`'s `config` object before sending.\n\n### `package.json`\n\nStandard npm fields (`name`, `version`, `description`) are used directly. Add a `config` block:\n\n```json\n{\n  \"name\": \"mygame\",\n  \"version\": \"1.2.0\",\n  \"description\": \"My game\",\n  \"config\": {\n    \"title\": \"My Game\",\n    \"packageName\": \"com.example.mygame\",\n    \"publisherDisplayName\": \"Example Games\",\n    \"publisherFullName\": \"Example Games LLC\",\n    \"publisherWebsite\": \"https://example.com\",\n    \"publisherEmailAddress\": \"hello@example.com\",\n    \"scope\": \"https://example.com/games/\",\n    \"themeColor\": \"#1a1a2e\",\n    \"twitterId\": \"@examplegames\",\n    \"deployFolder\": \"deploy\",\n    \"platforms\": {\n      \"web\": {\n        \"registrations\": {\n          \"auth\": \"google-auth\",\n          \"storage\": \"javascript/adaptfully-bridge.js\"\n        }\n      },\n      \"steam\": {\n        \"packager\": \"electron\",\n        \"steamId\": 1234567,\n        \"registrations\": {\n          \"auth\": \"steam-auth\",\n          \"storage\": \"javascript/adaptfully-bridge.js\"\n        }\n      }\n    },\n  }\n}\n```\n\n| Field | Used by | Description |\n|-------|---------|-------------|\n| `title` | All | Display name shown in stores and app shells |\n| `packageName` | Capacitor, Electron, UWP, Play upload | Reverse-DNS identifier (`com.company.game`) |\n| `publisherDisplayName` | Electron, web | Short publisher name |\n| `publisherFullName` | Electron | Legal entity name for copyright |\n| `publisherWebsite` | Web | Company URL |\n| `publisherEmailAddress` | Optional | Contact email |\n| `scope` | Web/PWA | Base URL scope for the web app |\n| `themeColor` | Capacitor, Electron, UWP, web | Loading screen / theme color |\n| `twitterId` | Web | Twitter handle for meta tags |\n| `deployFolder` | Client | Neutral deploy directory staged before prebuild (default: `deploy`) |\n| `htmlInjections` | Prebuild | Deploy-relative HTML paths to inject (default: `[\"index.html\"]`) |\n| `outputFolder` | Client | Prebuild output root (default: `output`) |\n| `platforms` | Prebuild | Per-platform registration maps (see [Adaptfully runtime](#adaptfully-runtime)) |\n| `platforms.<name>.builder` | Build/deploy | Override Wrapfully builder for a platform (default: `web` → `webapp`, others match platform key) |\n| `platforms.<name>.builders` | wrapfully-deploy | Map additional Wrapfully builder names to a platform |\n| `platforms.<name>.packager` | Prebuild | `web` (default), `electron`, or `capacitor` — selects the packager class that adds platform-specific files during prebuild |\n| `platforms.<name>.steamId` | Electron + steam-auth | Steamworks app ID baked into `preload.js` (client). Upload app IDs belong in the Steam deployment `manifest.json` |\n| `platforms.<name>.socialLogin` | Capacitor + social-auth | Capgo provider config (`providers`, `google.webClientId`, `apple.clientId`, optional `defaultProvider`) |\n| `platforms.<name>.<configField>` | Build/deploy | Overrides the matching top-level `config.*` default for that platform only (e.g. `platforms.android.packageName`, `platforms.ios.title`). Does not apply to control fields: `packager`, `registrations`, `builder`, `builders`, `deployments`, `steamId`, `socialLogin`, `steamworks` |\n\nTop-level `config.*` values are **defaults**. Any non-control field on `config.platforms.<name>` overrides the default when that platform is built or deployed. Example:\n\n```json\n\"config\": {\n  \"packageName\": \"com.example.game\",\n  \"title\": \"My Game\",\n  \"platforms\": {\n    \"android\": {\n      \"packager\": \"capacitor\",\n      \"packageName\": \"com.example.game.android\"\n    },\n    \"android-dev\": {\n      \"packager\": \"capacitor\",\n      \"packageName\": \"com.example.game.dev\"\n    }\n  }\n}\n```\n\n\n### `wrapfully.json`\n\nOptional. Fields are shallow-merged into `package.json`'s `config`:\n\n```json\n{\n  \"deployFolder\": \"dist\",\n  \"server\": \"http://build.example.com:9633/\",\n  \"title\": \"My Game\",\n  \"packageName\": \"com.example.mygame\"\n}\n```\n\nUse this to set the server address or override config per environment without editing `package.json`.\n\n## Builders\n\nEach builder name becomes a path segment on the server. Some builds require a specific host OS on the server side; composite builders fan out to multiple platforms automatically.\n\n| Builder | Output |\n|---------|--------|\n| `android` | Release Android (.aab) |\n| `android-dev` | Debug Android (.apk) |\n| `ios` | Release iOS (.ipa) |\n| `ios-dev` | Debug iOS (.ipa) |\n| `ios-sim` | iOS Simulator (.app) |\n| `mac` | Release Mac (.app) |\n| `mac-dev` | Debug Mac (.app) with DevTools |\n| `win` | Windows portable (.exe) |\n| `win-dev` | Debug Windows portable with DevTools |\n| `linux` | Linux build |\n| `linux-dev` | Debug Linux build with DevTools |\n| `uwp` | Universal Windows Package |\n| `webapp` | Service-worker web app (optionally SFTP deploy) |\n| `steam` | Windows + Mac + Linux, uploads to Steam |\n| `steam-dev` | Debug Windows + Mac + Linux, no Steam upload |\n\nFor a single platform, pass the specific builder name.\n\n### Platform package requirements\n\n**First-time setup:** see [docs/credentials/](docs/credentials/README.md) for iOS, Android, and Steam walkthroughs (CLI helpers + full manual steps).\n\nSigning keys, provisioning profiles, and store credentials go in the deployment folder `./assets/meta/deployments/<deployment>/` on disk (the selected deployment is sent as `meta/publish/` in the zip). The examples below use `<deployment>` as a placeholder for the target key (e.g. `steam`, `web-prod`). **These files contain secrets** — add them to `.gitignore` and never commit them to a public repository. (Projects that have not adopted the `deployments/` layout may still place these under the legacy `./assets/meta/publish/`.)\n\n#### Android (`android`, `android-dev`)\n\nFirst-time setup: [docs/credentials/android.md](docs/credentials/android.md) (`android-keystore`, `google-publish`).\n\nPlace keystore files in `assets/meta/deployments/<deployment>/android/`. Include `assets/meta/deployments/<deployment>/build.json`:\n\n```json\n{\n  \"android\": {\n    \"debug\": {\n      \"keystore\": \"./android/debug.keystore\",\n      \"packageType\": \"apk\",\n      \"storePassword\": \"android\",\n      \"alias\": \"androiddebugkey\",\n      \"password\": \"android\",\n      \"keystoreType\": \"\"\n    },\n    \"release\": {\n      \"keystore\": \"./android/release.keystore\",\n      \"packageType\": \"bundle\",\n      \"storePassword\": \"(your store password)\",\n      \"alias\": \"(your alias)\",\n      \"password\": \"(your password)\",\n      \"keystoreType\": \"\"\n    }\n  }\n}\n```\n\nTo deploy to Google Play, also include `assets/meta/deployments/<deployment>/google.json`. The easiest path is:\n\n```bash\nnpx adaptfully google-publish --from ./path/to/play-service-account.json\n# defaults to assets/meta/deployments/android/google.json (+ manifest type \"google\")\n```\n\nThe file looks like:\n\n```json\n{\n  \"type\": \"service_account\",\n  \"project_id\": \"(your project id)\",\n  \"private_key_id\": \"(your private key id)\",\n  \"private_key\": \"(your private key)\",\n  \"client_email\": \"(your service account email)\",\n  \"client_id\": \"(your client id)\",\n  \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n  \"token_uri\": \"https://oauth2.googleapis.com/token\",\n  \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n  \"client_x509_cert_url\": \"(your service account cert URL)\"\n}\n```\n\n#### Apple (`ios`, `ios-dev`, `ios-sim`, `mac`)\n\nFirst-time setup: [docs/credentials/ios.md](docs/credentials/ios.md) (`apple-signing`, `apple-publish`).\n\n**Capacitor iOS** signing is file-based under the deployment folder:\n\n```\nassets/meta/deployments/<deployment>/\n  apple.json\n  apple/distribution.p12              # release\n  apple/app-store.mobileprovision     # release\n  apple/development.p12               # ios-dev device\n  apple/development.mobileprovision   # ios-dev device\n  build.json                          # optional: { \"apple\": { \"p12Password\": \"...\" } }\n```\n\n`adaptfully build` (zip-only) still packages this deployment folder for Capacitor so device debug builds can sign. Optional `build.json` may set `apple.p12Password` for the `.p12` passphrase (defaults to empty when omitted). Team ID and profile UUID are read from the `.mobileprovision`. Enable **Sign in with Apple** on the App ID when using Capgo Apple auth.\n\nTo deploy to the App Store, include `assets/meta/deployments/<deployment>/apple.json`. The easiest path is:\n\n```bash\nnpx adaptfully apple-publish\n# defaults to assets/meta/deployments/ios/apple.json (+ manifest type \"apple\")\n```\n\nThe file looks like:\n\n```json\n{\n  \"category\": \"public.app-category.games\",\n  \"identity\": \"(your team id)\",\n  \"username\": \"(Apple ID email)\",\n  \"password\": \"(app-specific password)\"\n}\n```\n\niOS IPA upload uses `username` + `password` via `xcrun altool --upload-app`. `category` / `identity` matter more for macOS Electron signing/notarization.\n\n#### Steam (`steam`, `steam-dev`)\n\nFirst-time setup: [docs/credentials/steam.md](docs/credentials/steam.md) (`steam-publish`).\n\n`steam-dev` builds debug Electron binaries for Windows, Mac, and Linux without uploading to Steam. No `steam.json` credentials are required.\n\nFor release uploads, run **`adaptfully steam-publish`** once on your machine. It installs steamcmd if needed, logs you in interactively (enter a Steam Guard code if prompted), and writes `assets/meta/deployments/steam/steam.json`:\n\n```json\n{\n  \"username\": \"(your Steam build account)\",\n  \"password\": \"(your password)\",\n  \"configVdf\": \"(base64 login token from steamcmd)\",\n  \"sentryFileName\": \"(only when Steam Guard is enabled)\",\n  \"sentryFile\": \"(base64 ssfn file — only when Steam Guard is enabled)\"\n}\n```\n\nAccounts **without** Steam Guard only need `username`, `password`, and `configVdf`. Accounts **with** Steam Guard also include the `ssfn` sentry file so the Wrapfully server can log in without a live 2FA prompt.\n\nRe-run `adaptfully steam-publish` if Steam invalidates the token (new machine, password change, or expired guard).\n\nFor Steamworks / `steam-auth` client builds, set `platforms.<name>.steamId`. For Steam **uploads**, set `steamId` on the deployment’s `manifest.json` (see Wrapfully). Those are independent: you can deploy without steam-auth, or use steam-auth without uploading.\n\nSteam builds can run on either the Windows or Mac server. The server that receives the request builds its own platforms and requests the rest from the other server (Windows builds `win` and requests `mac`/`linux`; Mac builds `mac`/`linux` and requests `win`). Install the Steamworks SDK ContentBuilder on any server that will upload to Steam.\n\nWhen builds relay between servers, `meta/publish/` credentials travel in the zip with the game payload.\n\n#### Electron (`win`, `win-dev`, `mac`, `mac-dev`, `linux`, `linux-dev`, `steam`, `steam-dev`)\n\n`-dev` builders produce debug Electron apps with DevTools enabled and the application menu visible. Dev builds skip code signing, notarization, and Steam upload. No publish credentials are required for dev builds.\n\nRelease `win` builds can be signed with `assets/meta/deployments/<deployment>/ms.json` (see Windows below). Release `mac` builds can use `assets/meta/deployments/<deployment>/apple.json` for signing and notarization (see Apple above).\n\n#### Web (`web` / `webapp`)\n\n`adaptfully deploy web` prebuilds and POSTs to the Wrapfully **`webapp`** builder (same conduit as Steam). Put an `sftp.json` in each web deployment folder (e.g. `assets/meta/deployments/web-prod/sftp.json`); the selected deployment is zipped as `meta/publish/sftp.json` for Wrapfully to deploy via SFTP. The inner key stays the builder name (`webapp`).\n\n```json\n{\n  \"webapp\": {\n    \"host\": \"(your sftp host)\",\n    \"port\": 22,\n    \"username\": \"(your username)\",\n    \"password\": \"(your password)\",\n    \"path\": \"/home/user/example.com.incoming\",\n    \"uploadMode\": \"direct\",\n    \"serviceWorker\": false,\n    \"metaWeb\": false,\n    \"cleanRemote\": false\n  }\n}\n```\n\nSee [Wrapfully README](https://github.com/Makefully-Studios/wrapfully-client) for `uploadMode`, `serviceWorker`, `metaWeb`, and `cleanRemote`.\n\n#### Windows (`win`, `win-dev`, `uwp`)\n\nTo sign the app, place your certificate at `assets/meta/deployments/<deployment>/ms/packcert.pfx` and include `assets/meta/deployments/<deployment>/ms.json`:\n\n```json\n{\n  \"publisherName\": \"CN=(your publisher id)\",\n  \"certificateFile\": \"./ms/packcert.pfx\",\n  \"password\": \"(your password)\"\n}\n```\n\n## Response\n\nThe server responds with a zip stream containing build artifacts (`.apk`, `.aab`, `.ipa`, `.app`, `.exe`, etc.) and optional status files. By default the client extracts this into `./output/<platform>/`. Use a non-`extract` mode value to save the raw response zip instead.\n\nEvery build also includes `wrapfully-status.json` with structured `success`, `warn`, and `error` events. The client prints these after extraction and exits with code 1 if any errors were reported, so build failures do not crash the server silently.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}