{"_id":"@learncard/partner-connect","_rev":"34-efa4e71bfd828341ec64affe4060d3ff","name":"@learncard/partner-connect","dist-tags":{"latest":"0.5.2"},"versions":{"0.2.0":{"name":"@learncard/partner-connect","version":"0.2.0","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.0","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"dist":{"shasum":"2398022da498d94c8d39440c38334adff682541a","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.0.tgz","fileCount":8,"integrity":"sha512-+fS8xtYyZOT4gwuGUEq5vWr64htm5DJZa5GZsIzA13Sswyupp/PCKpDrns8FbtnMCfRiw4rmojqhrzBT6SnmWg==","signatures":[{"sig":"MEUCIQDmh+ofQdDKVl+th1EWWdseQvpFuAJgxzNQ/ICZNCzQPAIgUxLmxZUBnjpI6vGHRijQOLApH86WXUybxrNWjqJau4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94617},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.0.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"custard7","email":"custard7@gmail.com"},"_resolved":"/private/var/folders/vx/brx5cr1d36q01_wx9xh194ch0000gn/T/706dd4281e7fcdc4a49a0f11aae9e4dd/learncard-partner-connect-0.2.0.tgz","_integrity":"sha512-+fS8xtYyZOT4gwuGUEq5vWr64htm5DJZa5GZsIzA13Sswyupp/PCKpDrns8FbtnMCfRiw4rmojqhrzBT6SnmWg==","_npmVersion":"11.4.1","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.0_1762546556846_0.45398772297142553","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@learncard/partner-connect","version":"0.2.2","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.2","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"0aadfce90ea2ba3d53f231e2a99d05e45c97c766","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.2.tgz","fileCount":8,"integrity":"sha512-Zzi2WPckBkmCwU3jOSriDRpbTSwz0B78m6VGQK5czRx3e0ua/TrYtfDpWN7VZxWCmXEXq0TX9GyqXUl92sK6yQ==","signatures":[{"sig":"MEUCIQCgRLtS58r96ibj2hmSw0a4alAt+Kj041Gsi3igQ7ZifgIgIuhqcoE72EbFZ/dHHaB4uDogagRJx9nw+A7dMW4A1X4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108645},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.2.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/3de6ab7c9c70b999006892267663b148/learncard-partner-connect-0.2.2.tgz","_integrity":"sha512-Zzi2WPckBkmCwU3jOSriDRpbTSwz0B78m6VGQK5czRx3e0ua/TrYtfDpWN7VZxWCmXEXq0TX9GyqXUl92sK6yQ==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.11.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.2_1768595843731_0.4459750272929499","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@learncard/partner-connect","version":"0.2.3","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.3","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"e0c145f88e0633ffcdf1f81fed6310266f695576","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.3.tgz","fileCount":8,"integrity":"sha512-ef4GVWpFlIDfMGZN8qa7GBF/cLdiD2J2rspKVGNh2BxBCQC8ttKizByzuyrGUeLPZf/jJ5Nah/NrZMew+bHqHQ==","signatures":[{"sig":"MEUCIAv3uZHJumE2pL8rVEqEZo7W3ScGCXRzUI4s5CHatvnpAiEA0zvR3SeRvSI7PQtnOzpjqTNbRR6PSUJACG9UY82KiZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111691},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.3.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/d5de6d146c195039cc42ad9bd2c0ff2f/learncard-partner-connect-0.2.3.tgz","_integrity":"sha512-ef4GVWpFlIDfMGZN8qa7GBF/cLdiD2J2rspKVGNh2BxBCQC8ttKizByzuyrGUeLPZf/jJ5Nah/NrZMew+bHqHQ==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.11.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.3_1769118111493_0.4596201300240159","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@learncard/partner-connect","version":"0.2.5","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.5","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"ba174ebf0b5ce19b83dc9ac33a302a1e25b6f1b5","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.5.tgz","fileCount":8,"integrity":"sha512-dILIHFhNhEAxsNkt3q6+X+YANFHKhLkfaiJCMBeSId8g5vmpvaIh3qjzCGq28b+LJotWkIpARsEKrJwAVhPE6g==","signatures":[{"sig":"MEYCIQDel9DZKZW9JA96R6zH7JtGse7KdkRhIi/bqgh84F2SrgIhALz0R1LMTBWu6O4bAw5mGrUcvrdS35HUgXAqCBhgxOba","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111691},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.5.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/0f1ae7e840aef0e3c529c3e1fc88d0cd/learncard-partner-connect-0.2.5.tgz","_integrity":"sha512-dILIHFhNhEAxsNkt3q6+X+YANFHKhLkfaiJCMBeSId8g5vmpvaIh3qjzCGq28b+LJotWkIpARsEKrJwAVhPE6g==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.12.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.5_1770762541730_0.30161540846579893","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@learncard/partner-connect","version":"0.2.6","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.6","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"5380a3a96171283f156143c581ed0925f0b04135","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.6.tgz","fileCount":8,"integrity":"sha512-kpMTr3kyp9uiZiZF5JQMM2iWzt+yTTYQMeAUiFwNxLhS6XP2Kxgjp+kaPgvAIHkWO0PmVARRLrUFc3yT68LC8g==","signatures":[{"sig":"MEQCIDcCB54EWnGm/3ImwcB0eBTCyh4CNw+aJAtlAbKWvZ4HAiA8F2Fjdfgbx/gq56H/kePKRcccttGIAM6fSDptOzg9Fw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111691},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.6.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/c440be5fdfbb740a0fb0e489167a0cf7/learncard-partner-connect-0.2.6.tgz","_integrity":"sha512-kpMTr3kyp9uiZiZF5JQMM2iWzt+yTTYQMeAUiFwNxLhS6XP2Kxgjp+kaPgvAIHkWO0PmVARRLrUFc3yT68LC8g==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.12.1"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.6_1772493918785_0.34555201356541687","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@learncard/partner-connect","version":"0.2.7","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.7","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"c11805cf40dd49ca2c226f3ea1c8cbc932d72eff","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.7.tgz","fileCount":8,"integrity":"sha512-Cx84i4nqbMJnqfWzNyxyO6IchH2D+LUqo9sm44WtQy0+EqQeznbG58PhuRys0rUoWqtnO9xbVUC5twsroX8Dzg==","signatures":[{"sig":"MEUCIH0FVxZY5dv5bF4giI0Xe59rnWTKZ0yYM1b1D6p3Mo4EAiEArMPm4t4D0T/5L4Ir3sp/TFbz9hsqm8o70Ez4uRBbBG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111691},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.7.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/7ca276eb337b14990b827a87a05bff82/learncard-partner-connect-0.2.7.tgz","_integrity":"sha512-Cx84i4nqbMJnqfWzNyxyO6IchH2D+LUqo9sm44WtQy0+EqQeznbG58PhuRys0rUoWqtnO9xbVUC5twsroX8Dzg==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.12.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.7_1772595720159_0.05783915867869305","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@learncard/partner-connect","version":"0.2.8","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.8","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"dfcb188eeb3e11dc0930d1fbfe5c8e6c95c6390e","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.8.tgz","fileCount":8,"integrity":"sha512-uHT0LB4aRzGbTy5P05m4LOZIy4XM/IODfP+R6+AIhxyeH7ZvMzybkNLeAzThYUm3Cb02c1M8w/XyXuIlSQMpHw==","signatures":[{"sig":"MEYCIQCe1nojJUmPEd+YK4bCIrlq2HHhSNOKlxcTtjCm+2yHqQIhAIuA968HS+tfe8Ng7cAesK0q/P/ENWM60ucTzUtO9803","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111691},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.8.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/f208322f899970859eeac58be4433578/learncard-partner-connect-0.2.8.tgz","_integrity":"sha512-uHT0LB4aRzGbTy5P05m4LOZIy4XM/IODfP+R6+AIhxyeH7ZvMzybkNLeAzThYUm3Cb02c1M8w/XyXuIlSQMpHw==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.12.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.8_1772649496872_0.5928926947565518","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@learncard/partner-connect","version":"0.2.9","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.9","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"0b4032de05403b6ff3aee439f346579b9c446c65","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.9.tgz","fileCount":8,"integrity":"sha512-ft7qK8tQAdIapiXeP2JV7W+FvWkblnjxRjrmrp9Su+HnM/SXpXeWlLMykCmK4B6Y2q6POGYDOA/Z67gTSApk4A==","signatures":[{"sig":"MEQCIDyhRJgRbM8Lafv9Z9Vuea12vrI61+rWXl/Iswl+S65UAiA8+3W4KTq3pY3uAwgCrbOd7+QV1ELJtVxpV4YvXx1pGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111797},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.9.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/623c42596e16555ffb87e4304a9f9fd5/learncard-partner-connect-0.2.9.tgz","_integrity":"sha512-ft7qK8tQAdIapiXeP2JV7W+FvWkblnjxRjrmrp9Su+HnM/SXpXeWlLMykCmK4B6Y2q6POGYDOA/Z67gTSApk4A==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.12.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.9_1772663887746_0.29649066857295847","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@learncard/partner-connect","version":"0.2.10","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.10","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"f3fb55a81708a9269f8565748c22867e3cb769ee","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.10.tgz","fileCount":8,"integrity":"sha512-Udi/4xLsd/xgiks2YRdKIRo08yIQFDMN6gwsep4lbba9edglO3wC3xE4sYdBnYnyz3YIQk9Dp8kFlWEkdGrFZQ==","signatures":[{"sig":"MEUCIBx/V6OMAZElIqlbNWw7hflyuHKso5cJVnJdqrl7gPgVAiEA30gi+TxvQr1EOcHjwcx9zECT+DuOSRCv1gx4W590o94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":132909},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.10.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/423de7f41f3f56c5d496ca36c5f1c622/learncard-partner-connect-0.2.10.tgz","_integrity":"sha512-Udi/4xLsd/xgiks2YRdKIRo08yIQFDMN6gwsep4lbba9edglO3wC3xE4sYdBnYnyz3YIQk9Dp8kFlWEkdGrFZQ==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.13.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.10_1773799634220_0.9045500257802697","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@learncard/partner-connect","version":"0.2.11","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.11","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"2e17a7fc5c36997b3dfee54c62fb448c386b1faf","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.11.tgz","fileCount":8,"integrity":"sha512-E6mFQu286yh8VTaVTZA3OB/pGa4/l0vaQJ2vs4Y2wGBz/lX7j07XcTeLIis+h6k5GY63SGCtfVaR9FX3luepLA==","signatures":[{"sig":"MEUCIDIuoeaWbFJuONnP9V9yBi/B65zRRQE8k/Xpjo6nvx5bAiEAnZUw/iGbGsz6GLy7AQ9OpP2KB7pSVprW0dOKwWC307Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":132909},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.11.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/aad8844c3c858514a5e8299d8c471485/learncard-partner-connect-0.2.11.tgz","_integrity":"sha512-E6mFQu286yh8VTaVTZA3OB/pGa4/l0vaQJ2vs4Y2wGBz/lX7j07XcTeLIis+h6k5GY63SGCtfVaR9FX3luepLA==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.13.1"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.11_1774291881923_0.9091647647906682","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@learncard/partner-connect","version":"0.2.12","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.12","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"6eb0d96d6fb132b23389659dac925da28e750733","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.12.tgz","fileCount":8,"integrity":"sha512-dWmrT4yocU6lFti6KSLyDAql5tDVNyvH6Z1AHXZwNSU+hR34trALIp35XP6t+gyv5COBwcFc1SNXwF9uf3KViA==","signatures":[{"sig":"MEUCIDmLWqXlxlNizMll5055zvbv/ThLfXMS+1i/Xao5BI2RAiEAnSGPKGh/b93mWANdptJV+m5CgkeBP34ykUlxDwzfIo0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":132909},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.12.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/700277abc412997ef4d5869aa346015a/learncard-partner-connect-0.2.12.tgz","_integrity":"sha512-dWmrT4yocU6lFti6KSLyDAql5tDVNyvH6Z1AHXZwNSU+hR34trALIp35XP6t+gyv5COBwcFc1SNXwF9uf3KViA==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.13.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.12_1774982012294_0.730805728188445","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@learncard/partner-connect","version":"0.2.13","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.13","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"2540c646269db9fc54d917db3936b617ab58385b","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.13.tgz","fileCount":8,"integrity":"sha512-Q9BDObO/ncE+wZ3UHWwy94MGpG96lO7rcRv+XITYfjrLdO2QGROc0eSSLYJidK2rst3d4tlmamhIDbd0dzHwpw==","signatures":[{"sig":"MEUCIGtjLavlPF55OHrW6OQxR3sBoS2ROVniN7K6Fnu6wC+ZAiEAt1+Dy+sVzs7k3HcAdm1LDHXjYXFvESfegR4FV283U+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":132909},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.13.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/e3e94c0b604feb59d917ec5ef7e8de08/learncard-partner-connect-0.2.13.tgz","_integrity":"sha512-Q9BDObO/ncE+wZ3UHWwy94MGpG96lO7rcRv+XITYfjrLdO2QGROc0eSSLYJidK2rst3d4tlmamhIDbd0dzHwpw==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.13.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.13_1775252117386_0.8518854847856243","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@learncard/partner-connect","version":"0.2.14","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.14","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"b2d914c2d85637afa8af7b0ae0cd83a032ebdc01","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.14.tgz","fileCount":8,"integrity":"sha512-RCKM1v8GTI9xpsYGjZtCUYZVzCA+vujABXeAWoYqrdHdDZUiA4Kipa8yeCi4Won7kwqvYZzsa/gQ7A/vJJVm9g==","signatures":[{"sig":"MEYCIQDuD8Rzou6QNfz8glwLJFFB/fU2hvnG41dOILCCP75ZMwIhANF4Pe3aoJlCCnSaYLEjK1tVH+5zA7y6OtvlWWsRcJIP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":132909},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.14.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/e41ad003d652193e9f91ce77e9b1509f/learncard-partner-connect-0.2.14.tgz","_integrity":"sha512-RCKM1v8GTI9xpsYGjZtCUYZVzCA+vujABXeAWoYqrdHdDZUiA4Kipa8yeCi4Won7kwqvYZzsa/gQ7A/vJJVm9g==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.13.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.14_1775599197611_0.04503626393930382","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@learncard/partner-connect","version":"0.2.16","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.2.16","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"4a2501c06937cd95b773ab0a5b70497a8acf0e11","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.2.16.tgz","fileCount":8,"integrity":"sha512-JnDJxzX3RagWiGvBzn/flgtHhrLzB5BG2DXInkibnG4pQsrIm3Xwc8QwTE9hvqZghYGd2pfehtdLxlx2SOjuCA==","signatures":[{"sig":"MEYCIQCWmZFHfBEDwfXzJ4tADxR+aNS2NK6FcphUoHyMxElFlQIhAONc8DyMR+gTkz6TreXGVW7c+fHave97Fm1Vq4g1Yp2g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.2.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":170906},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.2.16.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","build":"rollup -c","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/d15c60c31047f958c9bf985784092b99/learncard-partner-connect-0.2.16.tgz","_integrity":"sha512-JnDJxzX3RagWiGvBzn/flgtHhrLzB5BG2DXInkibnG4pQsrIm3Xwc8QwTE9hvqZghYGd2pfehtdLxlx2SOjuCA==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.13.6"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.79.1","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.2.16_1777433629648_0.40217777315161873","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@learncard/partner-connect","version":"0.3.0","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.3.0","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"aa4d69ac82b960cff62afe05ac4a2bd73aefc56b","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.3.0.tgz","fileCount":8,"integrity":"sha512-KyoSZ/tskPcQQLdd7tgos/m9JeNq5x1/rhTJYwoSKEJDL0Z3J3PVSA+CnWxzAwLBvAmtlLplHl0tnDBd61RE2g==","signatures":[{"sig":"MEUCIFcoRVi4lsBF94C7jYtjE3ts8LjodO/cnSA/QjAx0xLXAiEA619EZJRlLLjMC53j4PTmSclO0mjFjfXFHvut/bRvgYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":250938},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.3.0.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/b1cda8484db3d161f59e9120f7b2b7cc/learncard-partner-connect-0.3.0.tgz","_integrity":"sha512-KyoSZ/tskPcQQLdd7tgos/m9JeNq5x1/rhTJYwoSKEJDL0Z3J3PVSA+CnWxzAwLBvAmtlLplHl0tnDBd61RE2g==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.14.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.3.0_1777923114214_0.691244659057064","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@learncard/partner-connect","version":"0.3.1","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.3.1","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"58a5bb78dfc368e28a4b720d256cf582233c9f78","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.3.1.tgz","fileCount":8,"integrity":"sha512-QMy4jTU1dZm3U7dZgOhDm1wqnc0+1KX+lxk9fwBtHeuVhqG6ry6TQ557eUPqst0se6+pntXAtWVi+PNiauyR4w==","signatures":[{"sig":"MEUCIQDB23g315MxVIgDLoHgziwa8pZyWb+BnLfZLuDWAVYcoQIgf53Q30lP2vvZrBTiHfemwy/vAq6qFj8d+6BdzZ4VgBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":250938},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.3.1.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/e9d28ed551e84257efb75068380b655d/learncard-partner-connect-0.3.1.tgz","_integrity":"sha512-QMy4jTU1dZm3U7dZgOhDm1wqnc0+1KX+lxk9fwBtHeuVhqG6ry6TQ557eUPqst0se6+pntXAtWVi+PNiauyR4w==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.15.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.3.1_1778713645299_0.5293362747445165","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@learncard/partner-connect","version":"0.3.2","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.3.2","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"d609ea7a0060b4693e68a06c280227ecfe48f22f","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.3.2.tgz","fileCount":8,"integrity":"sha512-sQEjo3muSAceSh4isHCLcbrQSXMwVpARUBuErKGAttDftjX0c3eMqb+YdzlQAhOEQWEYwKbm9cqxUQ45VeKFpQ==","signatures":[{"sig":"MEUCIQCJ7J9JIMwC4bhVJmDuWiX9JFNEhvO7quY+BoNVPt+wxAIgGSVLRC5vpnIbwjDBwDxe5zpItMsK0SFORO+nUcUJ6i8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":250938},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.3.2.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/c69cb7d3249795d1a345a92b4caea5bf/learncard-partner-connect-0.3.2.tgz","_integrity":"sha512-sQEjo3muSAceSh4isHCLcbrQSXMwVpARUBuErKGAttDftjX0c3eMqb+YdzlQAhOEQWEYwKbm9cqxUQ45VeKFpQ==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.16.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.3.2_1779383022753_0.9346169728919982","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@learncard/partner-connect","version":"0.3.3","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.3.3","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"fffd15bc15a17b47a0da47ced53f846072978ea7","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.3.3.tgz","fileCount":8,"integrity":"sha512-WcGaKo+GakNoAmtiePSUDXORPSjqo3l/Q1CJyO8SunEK9KY6yKSNecGlRoud+YAQsk72Nd9LroADfZ61e49E7g==","signatures":[{"sig":"MEUCIQDhZC6k5WkDo6xrYbLQW9ViEdMs2f52Ag59ZwDR0WljiwIgdNiB/cSndfJN88sB6PY/Afp5cKm/qVo1xzJRpdt556A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":250938},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.3.3.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/26d2b257d640f65dd2f9a9c5a8bb9a92/learncard-partner-connect-0.3.3.tgz","_integrity":"sha512-WcGaKo+GakNoAmtiePSUDXORPSjqo3l/Q1CJyO8SunEK9KY6yKSNecGlRoud+YAQsk72Nd9LroADfZ61e49E7g==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.17.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.3.3_1780516301938_0.8678752693450611","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@learncard/partner-connect","version":"0.3.4","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.3.4","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"d8ec431cd68a45c422914e9ba75496bd67be533a","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.3.4.tgz","fileCount":10,"integrity":"sha512-soxtuDgmPUreTt2mVY7Dy3+Whgg55MmpPSUXhY6QqR9yyFsVqo6Sbf5q2VUrTzcPjyaYQpGdMWLnF5OdL6Nz9Q==","signatures":[{"sig":"MEUCIQDyS58o+m+BKQcyWEIQ+gWhagDBb3AngXahs4E7W9ZV5QIgXQ2aLln4V00xHxA8OArfMKQLu/FuxMzpeg+0+yxVa7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347420},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.3.4.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/fd4d1bd263cb2f462c6460a7711629ac/learncard-partner-connect-0.3.4.tgz","_integrity":"sha512-soxtuDgmPUreTt2mVY7Dy3+Whgg55MmpPSUXhY6QqR9yyFsVqo6Sbf5q2VUrTzcPjyaYQpGdMWLnF5OdL6Nz9Q==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.17.1"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.3.4_1780612345400_0.7137842829039409","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@learncard/partner-connect","version":"0.3.5","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.3.5","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"d7c09b8d75ddb1d26acc9452200a1ca4d40a4776","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.3.5.tgz","fileCount":10,"integrity":"sha512-Lii9wX2sWSrzU+w9OiadmHW7tHMjLOav5jkYo7hzU76OcTMYKX9wjBQH3mVE/CHQXtdiDp1jmr5vn17Artm0jQ==","signatures":[{"sig":"MEUCIQDWbXNt96QgwBRzepLIxXBast9G2pTTD23WPFuUht2KKgIgRPotW+509Z0jLjtSbilIPIUBrj9eMJ4iaJMvzHUhKck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347420},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.3.5.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/2e6bc475bf9fe9ad2c0d60ff516bd7f2/learncard-partner-connect-0.3.5.tgz","_integrity":"sha512-Lii9wX2sWSrzU+w9OiadmHW7tHMjLOav5jkYo7hzU76OcTMYKX9wjBQH3mVE/CHQXtdiDp1jmr5vn17Artm0jQ==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.17.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.3.5_1781199265089_0.14088468697823409","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@learncard/partner-connect","version":"0.3.6","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.3.6","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"4e450d929acec1bdab2833b4cdb333a0b022d3f6","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.3.6.tgz","fileCount":10,"integrity":"sha512-cATkdCabxRl/f3FB0F7epO4GGscSpMXbNgFnzHc6MzTYxB5bS2kHZJdGLpHahAYSBt8JFL36s1jbHOC3YHnDog==","signatures":[{"sig":"MEUCIEHvasGZfaWqypRJpx6W0KyPMRWseAAbSFKSFru5vqeUAiEAzFecVSYlM+6aw9rlgHEqFERopfgmHW1BJiV2iveLJB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347420},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.3.6.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/ff951ccfcad9e5708c8fd802a9409c90/learncard-partner-connect-0.3.6.tgz","_integrity":"sha512-cATkdCabxRl/f3FB0F7epO4GGscSpMXbNgFnzHc6MzTYxB5bS2kHZJdGLpHahAYSBt8JFL36s1jbHOC3YHnDog==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.17.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.3.6_1782316343096_0.3759426449492169","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@learncard/partner-connect","version":"0.3.7","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.3.7","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"ffe6b4ad52fcbf2bbbac9fef911105e2616be2e2","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.3.7.tgz","fileCount":10,"integrity":"sha512-H3bc7F7RisOhaYUXn8i+v1WrV2Mq7bSRRdB60GaKHwHGcXTM69pNJo9jbEpPiDTQSdKvVr7WCWaEDTfKJaHwVg==","signatures":[{"sig":"MEYCIQD+UYsxhJ+eqTFMjx2qnGRVtKGqaa/Oqu9nlTEdDTYW/QIhAOCgZEQN7Qw+j7/mC+R+SOknAzMWsAvOSy+qUpi0ophe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.3.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347420},"main":"dist/partner-connect.js","_from":"file:learncard-partner-connect-0.3.7.tgz","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js"}},"scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"_resolved":"/tmp/d42c0242021788955403f0e8af17d510/learncard-partner-connect-0.3.7.tgz","_integrity":"sha512-H3bc7F7RisOhaYUXn8i+v1WrV2Mq7bSRRdB60GaKHwHGcXTM69pNJo9jbEpPiDTQSdKvVr7WCWaEDTfKJaHwVg==","repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.17.4"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.3.7_1782839339000_0.3943102569742507","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@learncard/partner-connect","version":"0.3.8","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.3.8","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"eba208ec6b2be969851aad7e75969c7dc139c16b","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.3.8.tgz","fileCount":13,"integrity":"sha512-lGJeA04HgPzjZOlbCvu+dPJ6c6ZSHLihu9zMyl6CjBRpnTZl9YcutdGMT6wE7nPeBPEZqp20N+VLHcBwN9mKSQ==","signatures":[{"sig":"MEUCIFLTcFFK2qRI/MRvSO56I5Ed4p7qv9Kxj8RBdPoQWAJJAiEAl0SnYsFzCar5mXduktrMKEslykI58pYqsp/AKl41IkA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.3.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":450644},"main":"dist/partner-connect.js","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js","development":"./src/index.ts"}},"gitHead":"62adb2a3440170d9debcc2f7f2b0496889d6ecdd","scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.16.0","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@learncard/types":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.3.8_1783025468289_0.16476982469577028","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@learncard/partner-connect","version":"0.3.9","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.3.9","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"255a308c7f167be4200b37e486c1fd23eee302f1","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.3.9.tgz","fileCount":13,"integrity":"sha512-ZQdApx885rO03U38Z0sg12NIHy1/ppSyaj+uzIpaXwraVioVozFInoDqTqtI3VmuFR4ZmR9sPQ69L24dHnXaGA==","signatures":[{"sig":"MEQCIGvdKAXUqsGlnWKs6kyQoLIgVNteDHv9nGfb514N/65dAiAY0ZkHOMF9swDQA6Inp884DT/3KXcIYp03cXag4bPcjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.3.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":450639},"main":"dist/partner-connect.js","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js","development":"./src/index.ts"}},"gitHead":"b1da7671146b99d0ff4132c54f969148bf05920d","scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.16.0","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@learncard/types":"5.17.5"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.3.9_1783028125684_0.167912264111314","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@learncard/partner-connect","version":"0.3.10","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.3.10","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"8810c5b390273a1f9b44a7815d93dba3227b6ea1","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.3.10.tgz","fileCount":13,"integrity":"sha512-zRFaBBMt9/zxKCraZIQUQoIkIGyfPaByrR04bI2UDUB8g1lZ3dnId8WnS8CGK295E0KtlFsquA/5pDLA3z3azA==","signatures":[{"sig":"MEYCIQC+4TxhfKhLZEcNtT+o2byDaw/fU4tr4lqTCEc+ZW5mFwIhAIQ0J58+iW+asAV0lvshVF33c458hYg0InUSPx6OWM6n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.3.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":457204},"main":"dist/partner-connect.js","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js","development":"./src/index.ts"}},"gitHead":"3cbe933446373a44cef028d74566705231b5e8ac","scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.16.0","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@learncard/types":"5.17.6"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.3.10_1783539096535_0.48424566583255135","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@learncard/partner-connect","version":"0.4.0","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.4.0","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"c22ad6ac6c5efbfdfb3620b0f15270c40c642403","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.4.0.tgz","fileCount":15,"integrity":"sha512-Snh0Qb3c2k2guempOXjZxlY8mXnXXzrkSQzLiaM3f/IdtAq34HEu8BLTp+Yg1vEE95Yv3qOnnmNNEDK+odyYZg==","signatures":[{"sig":"MEUCIQCLKKjhclO6TFC18aR1Q3/oVRqVkp4dRQ0PsVruJyxIYgIgAgrFJg3pZTfMi5rHBDoeZhzFIvXVHNAzENZZoacDIsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":895190},"main":"dist/partner-connect.js","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js","development":"./src/index.ts"}},"gitHead":"6740e62548cf0333fb649eac131016760a7408e2","scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.16.0","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@learncard/types":"5.17.6"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.4.0_1784583776216_0.9563253954163176","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@learncard/partner-connect","version":"0.4.1","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.4.1","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"9c58a61aac7e8dd00ddbfd46521b7b34e80fd57c","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.4.1.tgz","fileCount":15,"integrity":"sha512-1Jqa06k8AzlMDetIrTXiHVUZT3x6qfQRu2h1p8fbvpW4cLxifyu2Qp1RoPFemvU9bxu7gicqcQCvStXwfsAaKQ==","signatures":[{"sig":"MEQCIAOzHkKWIXmD37BH0/+Qtjs0mbpMSog0zXvgWhkTQBvdAiBgRykKnJL1kFQt64sZ4P34cP+KRmq+/0/a1bvJTGKLew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":895190},"main":"dist/partner-connect.js","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js","development":"./src/index.ts"}},"gitHead":"71b5ddbc761ef0f3493c72c4e4aa45c57f3d225e","scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.16.0","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@learncard/types":"5.18.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.4.1_1785177790421_0.2775068042784685","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@learncard/partner-connect","version":"0.4.2","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.4.2","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"271b51eaa5f919b16c12de74e6dbd817b27edd62","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.4.2.tgz","fileCount":15,"integrity":"sha512-6MDjSniE8fXZFp/dBFdFXVgZXdhqLJRhJBqNfGETxB7f9tEyeb1qBQ66ZNg1yHESI9tHkE8ab+lE7FZcfnSCvA==","signatures":[{"sig":"MEYCIQDZozBdwTkjP0YeRZMd9jpYUVYcxNklTr5QCodMTogD1wIhAI2TW8S4f5o6RZ7l23cIkLl1cR++3rW7sbctVxCvVWjU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":895190},"main":"dist/partner-connect.js","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js","development":"./src/index.ts"}},"gitHead":"4c9acad746f4e1cbfd9874f4a5e48ab6aa131a16","scripts":{"dev":"rollup -c -w","test":"jest -c jest.config.js","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"jest -c jest.config.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.16.0","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@learncard/types":"5.18.1"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.4.2_1786117484782_0.23562177706034815","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@learncard/partner-connect","version":"0.4.3","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.4.3","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"8c761422a5f61204f94b82900fa9edf9b0ee31ba","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.4.3.tgz","fileCount":15,"integrity":"sha512-oecOeK+5yzBSbesY+aFQia1Pk8fVO1msWr9SSeO/7N1uyraV7Yn7T/ymPUMz5M4C/fK2uhlO17BqrgrdBmwP4w==","signatures":[{"sig":"MEQCIHCKr++O1IQsv3wpMskrykAJt72LxuEqNReSII94fVgaAiATqgShbXzG24ZiS+iPenzFitSver/+tBx8LeYnyKMQSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":895325},"main":"dist/partner-connect.js","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js","development":"./src/index.ts"}},"gitHead":"1feb0d2c690e0eab8d7dee88e95d8f6328d806af","scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.17.0","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@learncard/types":"5.18.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.4.3_1787952231836_0.31442587121145826","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@learncard/partner-connect","version":"0.4.4","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.4.4","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"c86fcc304f1c7466f549fe303927d71521d18f45","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.4.4.tgz","fileCount":15,"integrity":"sha512-VWsmF3vr3loaaLlbYf7e3nwY1/ZiDIkoBN/lqQUZ+21dILgPoyaHuYScQEiqarlOE8IswSnpK3ZjA8UEhKuDFw==","signatures":[{"sig":"MEYCIQDPBKhzq+0OTql22BCNegCDAgHikJKnn3W01DYS6b3+/wIhANjF8ODnyEjJ2MXE6NioM/TIOf3NjZ8levyBSCh/TWXd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":895325},"main":"dist/partner-connect.js","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js","development":"./src/index.ts"}},"gitHead":"da13fee650e93139b7e146cc85e72df708712894","scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.18.3"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.4.4_1789012848340_0.421669278438465","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@learncard/partner-connect","version":"0.4.5","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.4.5","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"347615368f5f66459ccbb43ff8377e62ddfd8a2b","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.4.5.tgz","fileCount":15,"integrity":"sha512-4WKlM2CWgUQmEGae1KEOH52VsBje3p56jtTsjlWdGEWcRBGUQuN5pH0Xnl6VLx6JlpjvGfA3/AsDT8YZZDlOcg==","signatures":[{"sig":"MEYCIQDcnyY+IZl9AeetVMXOSCspw6bP+WSw7i7gX4vQyyi53gIhAIrWrKI2zGXpBNXqECjbSxyG4MKIafO743WaeJpz1cAM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIC7myNqGEvTQDrDPL9xn3/jDhtFh4DgWYtnyKMqQvpyiAiEAjVAzA+q8h7VQPYM9rSCXx9CGtcaeLcKEjxa7xg5+eF0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":895325},"main":"dist/partner-connect.js","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js","development":"./src/index.ts"}},"gitHead":"d7ed0f8246731fefb79544105e54c0790840f06b","scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.19.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.4.5_1789498290702_0.9879867984203652","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@learncard/partner-connect","version":"0.5.0","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.5.0","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"018529d26a58e82fbfdd8e3f7d2fca55abc3db30","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.5.0.tgz","fileCount":15,"integrity":"sha512-BlJtZlKHEn90QQAb3zTjdGCqTjYYWNJmcHrAZVKKdYI8KFCe6nQGUdv7Fx44Ta+/CYDUWaJQgX54i8BAhKAKRA==","signatures":[{"sig":"MEYCIQC9Kao5dX+DQLBpC/bP1J4nWJ4APQj3fo80BWhO8kQJ+QIhAJkCVFn547lvtgT0Tmil8zQZbujgVVAOavHry8OgitWD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD13yADuAC/3SstEDbT0cYILte6ZlRXZrD9U1dZIuE18wIhAKOz7mX/lji9ggTR6Xf/d6CUDLLFDM5/2QC7SuXWwRz0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":895715},"main":"dist/partner-connect.js","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js","development":"./src/index.ts"}},"gitHead":"6cc28b6f943e05b6319dc861a8900248a844aa62","scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.20.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.5.0_1789541859571_0.2223622741610165","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@learncard/partner-connect","version":"0.5.1","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","_id":"@learncard/partner-connect@0.5.1","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"homepage":"https://github.com/learningeconomy/LearnCard#readme","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"7c90ce9c9e66be5c96c675d0ef6e5d496b133f69","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.5.1.tgz","fileCount":15,"integrity":"sha512-BYywRrt3Uc4zVj7+p368dzF/+FbT7EzTc2rKzU1YImYh7lG8ZZ7a6EXQEYklppPgvKwcFi8zUVCiNjbEZHg1Gw==","signatures":[{"sig":"MEYCIQCrUxv/wOHpAJvgExXUme9ivc3cd+Eetd33TosoolKltAIhAMxsV2ThX3hntdnHqWP3IGGOZz5vWdXniqqhhuVr5yER","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD+zdZT6mSXBcUdasxtJEMex41iPO8Lk9icuesedVOAWAIgKBRMu5EFpU118ZZE+Ckv8DAPhh4DxKj4qDePUhbYbTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":895715},"main":"dist/partner-connect.js","types":"dist/index.d.ts","module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js","development":"./src/index.ts"}},"gitHead":"8b9c9c1979e1483af1e1508e58a82dd94c6f39e1","scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0b94740-7765-4fa2-be9e-74accb133580"}},"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.21.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"tmp":"tmp/partner-connect_0.5.1_1790197448653_0.9419070529695401","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"_id":"@learncard/partner-connect@0.5.2","bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"dist":{"shasum":"c043dcce495bcc90425ecb4c4cf0941157ed8061","tarball":"https://registry.npmjs.org/@learncard/partner-connect/-/partner-connect-0.5.2.tgz","fileCount":15,"integrity":"sha512-ZsVtIC2oHV024nbr2RADMJBb7ZyyPJtu7vZnSkRPJEV6mUrMnyEPMAbxJIAGEacH/LnbARIFGf2p5BdNqJHktg==","signatures":[{"sig":"MEUCIQCW0uGcAK722+yyuUQyiIxrx5D/BELM0eK0AQ8x88s1CQIgMzBS+VtDoLB70hzm8UEEcntFP/csQUu8CCN+Kbne5M4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCq32zFYUYrK32iw26LXey1hJXe6FjnW9RRhlrGaNZKmAIhAMFHxEpFiedeyycybSEOF5tHqMHF/s994a3QTCn+xmY1"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@learncard%2fpartner-connect@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":895715},"main":"dist/partner-connect.js","name":"@learncard/partner-connect","types":"dist/index.d.ts","author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"module":"dist/partner-connect.esm.js","exports":{".":{"node":{"import":"./dist/partner-connect.mjs","require":"./dist/partner-connect.js"},"types":"./dist/index.d.ts","import":"./dist/partner-connect.esm.js","default":"./dist/partner-connect.js","require":"./dist/partner-connect.js","development":"./src/index.ts"}},"gitHead":"18a933868414d78a9efc4cb9354394defd0d3ad9","license":"MIT","scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"version":"0.5.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"d0b94740-7765-4fa2-be9e-74accb133580"}},"homepage":"https://github.com/learningeconomy/LearnCard#readme","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"_npmVersion":"11.6.2","description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","directories":{},"maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@learncard/types":"5.22.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^2.80.0","typescript":"^5.4.5","@types/node":"^18.19.64","rollup-plugin-dts":"^4.2.2","rollup-plugin-esbuild":"^4.9.1","@rollup/plugin-commonjs":"^22.0.2","@rollup/plugin-node-resolve":"^13.3.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/partner-connect_0.5.2_1790806966413_0.07949126722792665"}}},"time":{"created":"2025-11-07T20:15:56.729Z","modified":"2026-09-30T22:22:46.865Z","0.2.0":"2025-11-07T20:15:57.043Z","0.2.2":"2026-01-16T20:37:23.875Z","0.2.3":"2026-01-22T21:41:51.638Z","0.2.5":"2026-02-10T22:29:01.871Z","0.2.6":"2026-03-02T23:25:18.938Z","0.2.7":"2026-03-04T03:42:00.298Z","0.2.8":"2026-03-04T18:38:17.031Z","0.2.9":"2026-03-04T22:38:07.893Z","0.2.10":"2026-03-18T02:07:14.359Z","0.2.11":"2026-03-23T18:51:22.087Z","0.2.12":"2026-03-31T18:33:32.433Z","0.2.13":"2026-04-03T21:35:17.573Z","0.2.14":"2026-04-07T21:59:57.759Z","0.2.16":"2026-04-29T03:33:49.849Z","0.3.0":"2026-05-04T19:31:54.455Z","0.3.1":"2026-05-13T23:07:25.452Z","0.3.2":"2026-05-21T17:03:42.890Z","0.3.3":"2026-06-03T19:51:42.079Z","0.3.4":"2026-06-04T22:32:25.554Z","0.3.5":"2026-06-11T17:34:25.236Z","0.3.6":"2026-06-24T15:52:23.231Z","0.3.7":"2026-06-30T17:08:59.149Z","0.3.8":"2026-07-02T20:51:08.546Z","0.3.9":"2026-07-02T21:35:25.834Z","0.3.10":"2026-07-08T19:31:36.715Z","0.4.0":"2026-07-20T21:42:56.379Z","0.4.1":"2026-07-27T18:43:10.565Z","0.4.2":"2026-08-07T15:44:44.937Z","0.4.3":"2026-08-28T21:23:52.012Z","0.4.4":"2026-09-10T04:00:48.475Z","0.4.5":"2026-09-15T18:51:30.807Z","0.5.0":"2026-09-16T06:57:39.695Z","0.5.1":"2026-09-23T21:04:08.797Z","0.5.2":"2026-09-30T22:22:46.506Z"},"bugs":{"url":"https://github.com/learningeconomy/LearnCard/issues"},"author":{"url":"www.learningeconomy.io","name":"Learning Economy Foundation"},"license":"MIT","homepage":"https://github.com/learningeconomy/LearnCard#readme","keywords":["learncard","partner","connect","postmessage","iframe","credentials","sso"],"repository":{"url":"git+https://github.com/learningeconomy/LearnCard.git","type":"git"},"description":"LearnCard Partner Connect SDK - Promise-based cross-origin messaging for partner apps","maintainers":[{"name":"gerardopar","email":"gerardparedes23@gmail.com"},{"name":"custard7","email":"custard7@gmail.com"},{"name":"smurflo2","email":"smurflo2@gmail.com"},{"name":"taylorbeeston","email":"beeston.taylor@gmail.com"},{"name":"jonny2lips","email":"donny@learningeconomy.io"}],"readme":"# @learncard/partner-connect\n\n> Promise-based JavaScript SDK for managing cross-origin messaging between partner apps and LearnCard\n\nThe LearnCard Partner Connect SDK transforms complex `postMessage` communication into clean, modern Promise-based functions. It handles the entire cross-origin message lifecycle, including request queuing, message validation, and timeout management.\n\n## Features\n\n-   🔒 **Secure**: Origin validation for all messages\n-   🎯 **Type-safe**: Full TypeScript support with comprehensive types\n-   ⚡ **Promise-based**: Modern async/await API\n-   🧹 **Clean**: Abstracts away all postMessage complexity\n-   📦 **Lightweight**: Zero runtime dependencies\n-   🛡️ **Robust**: Built-in timeout handling and error management\n\n## Installation\n\n```bash\nnpm install @learncard/partner-connect\n```\n\n```bash\npnpm add @learncard/partner-connect\n```\n\n```bash\nyarn add @learncard/partner-connect\n```\n\n## Quick Start\n\n```typescript\nimport { createPartnerConnect } from '@learncard/partner-connect';\n\n// Initialize the SDK\nconst learnCard = createPartnerConnect({\n    hostOrigin: 'https://learncard.app',\n});\n\n// Request user identity (SSO)\ntry {\n    const identity = await learnCard.requestIdentity();\n    console.log('User DID:', identity.user.did);\n    console.log('JWT Token:', identity.token);\n} catch (error) {\n    if (error.code === 'LC_UNAUTHENTICATED') {\n        console.log('User is not logged in');\n    }\n}\n```\n\n## Configuration\n\n### Options\n\n```typescript\ninterface PartnerConnectOptions {\n    /**\n     * The origin(s) of the LearnCard host\n     * Single string or array for query parameter whitelist\n     * @default 'https://learncard.app'\n     */\n    hostOrigin?: string | string[];\n\n    /**\n     * Whether to allow native app origins (Capacitor/Ionic)\n     * @default true\n     */\n    allowNativeAppOrigins?: boolean;\n\n    /**\n     * Protocol identifier (default: 'LEARNCARD_V1')\n     */\n    protocol?: string;\n\n    /**\n     * Request timeout in milliseconds (default: 30000)\n     */\n    requestTimeout?: number;\n\n    /**\n     * Controls automatic standalone mock mode.\n     * 'auto' (default) mocks only when no LearnCard host is present AND the\n     * page runs on a local dev host; 'standalone' mocks whenever no host is\n     * present, on any origin; true always mocks; false never mocks.\n     */\n    mock?: boolean | 'auto' | 'standalone';\n\n    /**\n     * Fine-grained mock behavior (UI, logging, persistence, fake DID).\n     */\n    mockOptions?: MockHostOptions;\n\n    /**\n     * How long (ms) to wait for the host presence probe when embedded in a\n     * frame whose parent can't be confirmed as LearnCard (default: 1500).\n     */\n    hostProbeTimeout?: number;\n}\n```\n\n### Dynamic Origin Configuration\n\nThe SDK uses a hierarchical approach to determine the active host origin:\n\n#### 1. **Hardcoded Default** (Security Anchor)\n\n```typescript\nPartnerConnect.DEFAULT_HOST_ORIGIN; // 'https://learncard.app'\n```\n\n#### 2. **Query Parameter Override** (Staging/Testing)\n\n```typescript\n// Your app URL: https://partner-app.com/?lc_host_override=https://staging.learncard.app\n\nconst learnCard = createPartnerConnect({\n    hostOrigin: ['https://learncard.app', 'https://staging.learncard.app'],\n});\n// Active origin: https://staging.learncard.app (from query param)\n// ✅ Only accepts messages from: https://staging.learncard.app\n// ✅ Sends messages to: https://staging.learncard.app\n```\n\n**How the LearnCard Host Uses This:**\n\n-   Production: Iframe URL has no `lc_host_override` parameter\n-   Staging: Iframe URL includes `?lc_host_override=https://staging.learncard.app`\n-   This allows testing against non-production environments without recompiling partner code\n\n#### 3. **Configured Origin** (Fallback)\n\n```typescript\nconst learnCard = createPartnerConnect({\n    hostOrigin: 'https://learncard.app',\n});\n// Active origin: https://learncard.app (configured)\n```\n\n### Origin Whitelist (Security Gate)\n\nWhen providing multiple origins, they serve as a **whitelist** for the `lc_host_override` parameter:\n\n```typescript\nconst learnCard = createPartnerConnect({\n    hostOrigin: [\n        'https://learncard.app',\n        'https://staging.learncard.app',\n        'https://preview.learncard.app',\n    ],\n});\n\n// Scenario 1: No query param\n// → Uses: https://learncard.app (first in array)\n\n// Scenario 2: Valid override\n// URL: ?lc_host_override=https://staging.learncard.app\n// → Uses: https://staging.learncard.app ✅\n\n// Scenario 3: Invalid override (not in whitelist)\n// URL: ?lc_host_override=https://evil.com\n// → Uses: https://learncard.app (falls back to first) ⚠️\n// → Logs warning about unauthorized override\n```\n\n### Security Model\n\n**STRICT Origin Validation:**\n\n```\nIncoming Message Origin ≡ Configured Host Origin\n```\n\nThe SDK enforces an exact match between incoming message origins and the active host origin:\n\n-   ✅ **Secure**: Even if a malicious actor adds `?lc_host_override=https://evil.com`, messages from `evil.com` will be rejected\n-   ✅ **Cannot be spoofed**: Browser security prevents malicious sites from faking their `event.origin`\n-   ✅ **No wildcards**: Only exact matches are accepted\n\n```typescript\n// Active origin: https://staging.learncard.app\n// ✅ Accepts: messages from https://staging.learncard.app\n// ❌ Rejects: messages from https://learncard.app\n// ❌ Rejects: messages from https://evil.com\n// ❌ Rejects: messages from any other origin\n```\n\n## Standalone / Mock Mode\n\nThe SDK only works when embedded inside a LearnCard host — that's the host that\nanswers its `postMessage` requests. When you run your app on its own (local dev,\nStorybook, a preview deploy, CI), there is no host. Standalone calls that aren't\nmocked reject immediately with `LC_NOT_EMBEDDED` (rather than hanging until the\nrequest timeout), and the SDK logs a one-time hint pointing you to mock mode.\n\n**Mock mode fixes this automatically in local development.** Whenever no\nLearnCard host is present and your app runs on a local dev host (`localhost`,\n`127.0.0.1`, `[::1]`, `*.localhost`, `*.local`) — plain local dev or a local\nStorybook — the SDK simulates the host locally:\n\n-   **Every method shows a branded toast** describing what would happen once embedded — e.g. `sendCredential` → _\"✅ In LearnCard, the user would receive **[name]** here.\"_, `incrementCounter` → _\"Counter **coins** → **10**.\"_, `launchFeature` → _\"Would open **/wallet**.\"_ So you get strong, visible feedback for every call, not just console logs.\n-   `requestConsent(...)` auto-grants and shows a \"mock consent\" toast; `incrementCounter` / `getCounter` / `getCounters` persist to `localStorage` so values survive reloads.\n-   Identical or polled calls **coalesce** into a single toast with a ×N counter, so nothing spams the screen.\n-   `requestIdentity`, notifications, learner context, sync status, etc. all resolve with sensible fake data.\n-   Every simulated interaction is also logged to the console with a `[LearnCard SDK · MOCK]` prefix.\n\n**No code changes, no environment flags in local dev.** Your app is fully\nbuildable and demo-able locally, and behaves identically against the real host\nonce embedded.\n\n```typescript\n// Mocks in local dev when standalone; real host when embedded in LearnCard.\nconst learnCard = createPartnerConnect({ hostOrigin: 'https://learncard.app' });\n\nconst res = await learnCard.sendCredential({ templateAlias: 'course-completion' });\n// Local dev, standalone: resolves with a mock URI + shows a toast.\n// Embedded:              goes to the real LearnCard host.\n```\n\n**`'auto'` is deliberately scoped to local dev hosts.** A standalone page on a\nproduction or remote preview origin never auto-mocks — otherwise a real user\nopening your app's URL directly would receive a fabricated identity and\nauto-granted consent. For remote deploy previews (Netlify, Lovable, Vercel, …)\nthat should demo standalone anywhere but go real once embedded, opt in with\n`mock: 'standalone'`; for CI and tests that should always mock, use\n`mock: true`. Every mocked call shows a labeled toast and a\n`[LearnCard SDK · MOCK]` console log, so it's clear the SDK is simulating\nrather than talking to a real host.\n\n| `mock`             | Standalone, local dev | Standalone, remote origin     | Embedded in LearnCard |\n| ------------------ | --------------------- | ----------------------------- | --------------------- |\n| `'auto'` (default) | mock                  | fail fast (`LC_NOT_EMBEDDED`) | real host             |\n| `'standalone'`     | mock                  | mock                          | real host             |\n| `true`             | mock                  | mock                          | mock                  |\n| `false`            | fail fast             | fail fast                     | real host             |\n\n**Unrelated iframes don't fool it.** If your app is embedded in something that\nisn't LearnCard (a cross-origin Storybook canvas, a preview shell), calls no\nlonger hang: the SDK mocks on local dev hosts and otherwise rejects fast with\n`LC_NOT_EMBEDDED`. When the parent can't be identified (Firefox, or a\nsame-origin localhost wrapper), the SDK sends a one-time, side-effect-free\npresence probe and only mocks if no host answers within `hostProbeTimeout`\n(default 1500 ms).\n\nFor a **production build that's meant to run only inside LearnCard**, set\n`mock: false`; standalone calls then reject immediately with `LC_NOT_EMBEDDED`\ninstead of showing simulated data.\n\nOverride the default behavior when needed:\n\n```typescript\n// Mock wherever no host is present (remote previews), real host when embedded:\ncreatePartnerConnect({ mock: 'standalone' });\n\n// Always mock, even while embedded (CI, tests):\ncreatePartnerConnect({ mock: true });\n\n// Never mock (standalone calls reject fast with LC_NOT_EMBEDDED):\ncreatePartnerConnect({ mock: false });\n\n// Configure mock behavior:\ncreatePartnerConnect({\n    mock: 'auto',\n    mockOptions: {\n        ui: true, // show toasts/banners (default true)\n        log: true, // console logging (default true)\n        persist: true, // localStorage-backed counters (default true)\n        did: 'did:web:example.com:me', // fake identity DID\n        namespace: 'my-app-mock', // localStorage namespace for mock state\n    },\n});\n```\n\nCheck whether an instance is currently mocking:\n\n```typescript\nif (learnCard.isMocked()) {\n    console.log('Running against the local mock host.');\n}\n```\n\n### Coherent state: reads reflect writes\n\nThe mock keeps a small session store so it behaves like a real host, not a set of\ndisconnected stubs. Anything you do in a session shows up in later reads:\n\n```typescript\nawait learnCard.sendCredential({ templateAlias: 'course-completion' });\n\n// Now reflects the credential you just issued:\nawait learnCard.checkUserHasCredential({ templateAlias: 'course-completion' }); // { hasCredential: true, ... }\nawait learnCard.requestLearnerContext(); // raw.credentials includes it\n```\n\nThis means happy-path UI (e.g. a \"you already earned this\" banner) actually\nlights up standalone. Counters persist to `localStorage`; issued credentials and\nidentity live for the session (a reload re-applies your seeds — see below). Mock\ncredentials are clearly marked (`_mock: true`) and never cryptographically valid,\nso they can't be mistaken for real ones.\n\n### Seeding data for demos\n\nTo demo a pre-populated state (a returning user who already has credentials, a\nstarting coin balance) without performing actions first, seed via `mockOptions`:\n\n```typescript\ncreatePartnerConnect({\n    mockOptions: {\n        identity: { did: 'did:web:example.com:me', name: 'Ada' },\n        credentials: [\n            { templateAlias: 'course-completion', name: 'Algebra 101' },\n            // Model a credential you issued to someone else:\n            { boostUri: 'lc:boost:team-badge', recipient: 'alice', status: 'pending' },\n        ],\n        counters: { coins: 50 },\n    },\n});\n```\n\nSeeded credentials feed `checkUserHasCredential`, `getTemplateRecipients`,\n`getTemplateIssuanceStatus`, `requestLearnerContext`, and `askCredentialSearch`.\nSeeded counters are applied only when a counter has no persisted value yet, so\nincremented values survive reloads.\n\n## Detecting the Embed Context\n\nUse `isEmbedded()` to branch your own logic based on whether your app is running\ninside a LearnCard iframe or as a standalone page — no need to write your own\nframe detection.\n\n```typescript\nimport { isEmbedded, createPartnerConnect } from '@learncard/partner-connect';\n\nif (isEmbedded()) {\n    // Inside LearnCard — hide your standalone header, enable SDK-backed features.\n} else {\n    // Standalone — show an \"Open in LearnCard\" prompt, or lean on mock mode.\n}\n```\n\nIt is also available as a static and instance method:\n\n```typescript\nPartnerConnect.isEmbedded(); // static\ncreatePartnerConnect().isEmbedded(); // instance\n```\n\n`isEmbedded()` returns `false` during server-side rendering (no `window`) and is\nsafe to call anywhere.\n\n## API Reference\n\n### `requestIdentity()`\n\nRequest user identity information (Single Sign-On).\n\n```typescript\nconst identity = await learnCard.requestIdentity();\n// Returns: { token: string, user: { did: string, ... } }\n```\n\n**Error Codes:**\n\n-   `LC_UNAUTHENTICATED`: User is not logged in to LearnCard\n-   `LC_TIMEOUT`: Request timed out\n-   `LC_NOT_EMBEDDED`: The app is not embedded in a LearnCard host (standalone, not mocking)\n\n---\n\n### `sendCredential(credential)`\n\nSend a verifiable credential to the user's LearnCard wallet.\n\n```typescript\nconst response = await learnCard.sendCredential({\n    '@context': ['https://www.w3.org/2018/credentials/v1'],\n    type: ['VerifiableCredential', 'AchievementCredential'],\n    credentialSubject: {\n        id: identity.user.did,\n        achievement: {\n            name: 'JavaScript Expert',\n            description: 'Mastered advanced JavaScript concepts',\n        },\n    },\n});\n\nconsole.log('Credential ID:', response.credentialId);\n```\n\n**Returns:** `{ credentialId: string }` (raw credential mode) or `{ credentialUri: string, boostUri: string }` (template mode).\n\nTemplate mode example with duplicate prevention:\n\n```typescript\nconst response = await learnCard.sendCredential({\n    templateAlias: 'achievement',\n    templateData: { score: 95 },\n    preventDuplicateClaim: true,\n});\n\nif (response.alreadyClaimed) {\n    console.log('User already has this credential:', response.credentialUri);\n}\n```\n\n---\n\n### `checkUserHasCredential(input)`\n\nSilently check whether the current user already has a credential for a given app boost template.\n\n```typescript\nconst result = await learnCard.checkUserHasCredential({\n    templateAlias: 'achievement',\n});\n\nif (result.hasCredential) {\n    console.log('Already earned:', result.credentialUri, result.receivedDate);\n} else {\n    console.log('Not earned yet');\n}\n```\n\nYou can also query directly by boost URI:\n\n```typescript\nawait learnCard.checkUserHasCredential({\n    boostUri: 'lc:network:network.learncard.com/trpc:boost:abc123',\n});\n```\n\n**Returns:** `{ hasCredential: boolean, credentialUri?: string, receivedDate?: string, status?: 'pending' | 'claimed' | 'revoked' }`\n\n### `getTemplateIssuanceStatus(input)`\n\nCheck if the current user has issued/sent a specific template to someone. Returns issuance status including sent date and claim status.\n\n```typescript\nconst status = await learnCard.getTemplateIssuanceStatus({\n    templateAlias: 'achievement-badge',\n    recipient: 'user123', // Can be a profileId or DID (did:web:...)\n});\n\nif (status.sent) {\n    console.log('Issued on:', status.sentDate);\n    console.log('Status:', status.status); // 'pending', 'claimed', or 'revoked'\n    if (status.claimedDate) {\n        console.log('Claimed on:', status.claimedDate);\n    }\n}\n```\n\nYou can also use a DID as the recipient:\n\n```typescript\nawait learnCard.getTemplateIssuanceStatus({\n    boostUri: 'lc:network:network.learncard.com/trpc:boost:abc123',\n    recipient: 'did:web:network.learncard.com:users:user456',\n});\n```\n\n**Returns:** `{ sent: boolean, credentialUri?: string, sentDate?: string, claimedDate?: string, status?: 'pending' | 'claimed' | 'revoked' }`\n\n### `getTemplateRecipients(input)`\n\nGet the list of all recipients for a specific template/boost. Useful for dashboards showing who has received a credential.\n\n```typescript\nconst recipients = await learnCard.getTemplateRecipients({\n    templateAlias: 'achievement-badge',\n    limit: 10,\n});\n\nconsole.log(`Found ${recipients.records.length} recipients`);\nrecipients.records.forEach(r => {\n    console.log(`${r.recipientDisplayName}: ${r.status}`);\n});\n\n// Paginate if more results available\nif (recipients.hasMore) {\n    const nextPage = await learnCard.getTemplateRecipients({\n        templateAlias: 'achievement-badge',\n        limit: 10,\n        cursor: recipients.cursor,\n    });\n}\n```\n\n**Returns:** `{ records: TemplateRecipientRecord[], hasMore: boolean, cursor?: string, total?: number }`\n\n### `sendNotification(input)`\n\nSend a notification to the current user from this app. The notification appears in the user's LearnCard notification inbox, even after they leave the app.\n\n```typescript\nawait learnCard.sendNotification({\n    title: 'Sprint Bonus!',\n    body: '+10 coins from Sprint 42',\n    actionPath: '/',\n    category: 'reward',\n});\n```\n\n**Parameters:**\n\n-   `title` _(optional)_: Notification title\n-   `body` _(optional)_: Notification body text\n-   `actionPath` _(optional)_: Deep link path within the app (e.g. `'/prizes'`). Must be an absolute pathname starting with `/`. This path is appended to the app's configured embed URL when the user taps the notification. For example, if your embed URL is `https://myapp.com` and `actionPath` is `'/challenges/42'`, the app will open at `https://myapp.com/challenges/42`. Hash routes (e.g. `'/#/page'`) are **not** supported — use pathname-based routing.\n-   `category` _(optional)_: Grouping category (e.g. `'reward'`, `'announcement'`, `'status'`)\n-   `priority` _(optional)_: `'normal'` (default) or `'high'`. Affects visual styling of the notification card and toast. Does not change delivery priority or ordering.\n\nAt least one of `title` or `body` is required.\n\n**Returns:** `{ sent: boolean }`\n\n> **Note:** This method sends a notification to the _current_ user (self-notification) via the `send-notification` app event. For server-to-server notifications to arbitrary users, use the `POST /app-store/listing/{listingId}/notify` brain-service route directly from your app backend.\n\n---\n\n### `incrementCounter(key, amount)`\n\nIncrement or decrement an app-scoped counter for the current user. Counters are scoped to (user, app, key). If the counter does not exist, it is created with the given amount as its initial value.\n\n```typescript\n// Add 10 coins\nconst result = await learnCard.incrementCounter('coins', 10);\nconsole.log(result.newValue); // 10\n\n// Spend 5 coins\nconst spent = await learnCard.incrementCounter('coins', -5);\nconsole.log(spent.newValue); // 5\n```\n\n**Parameters:**\n\n-   `key` _(required)_: Counter name. Must match `[a-zA-Z0-9_-]+`, max 64 characters.\n-   `amount` _(required)_: Integer value to add. Use a negative integer to decrement.\n\n**Returns:** `{ key: string, previousValue: number, newValue: number }`\n\n**Limits:**\n\n-   Max 50 distinct counter keys per user per app\n-   Max 100 writes per user per app per minute\n-   Amount must be a finite integer\n\n---\n\n### `getCounter(key)`\n\nRead the current value of an app-scoped counter. Returns `{ value: 0 }` if the counter does not exist.\n\n```typescript\nconst { value } = await learnCard.getCounter('coins');\nconsole.log('Balance:', value);\n```\n\n**Parameters:**\n\n-   `key` _(required)_: Counter name (same format as `incrementCounter`)\n\n**Returns:** `{ key: string, value: number, updatedAt: string | null }`\n\n---\n\n### `getCounters(keys?)`\n\nRead multiple app-scoped counters at once. If `keys` is omitted, returns all counters for this app.\n\n```typescript\n// Specific keys\nconst { counters } = await learnCard.getCounters(['coins', 'spins', 'streak']);\ncounters.forEach(c => console.log(c.key, c.value));\n\n// All counters\nconst all = await learnCard.getCounters();\n```\n\n**Parameters:**\n\n-   `keys` _(optional)_: Array of counter names to fetch (max 50). Omit to return all.\n\n**Returns:** `{ counters: Array<{ key: string, value: number, updatedAt: string | null }> }`\n\n---\n\n### `launchFeature(featurePath, initialPrompt?)`\n\nLaunch a feature in the LearnCard host application.\n\n```typescript\nawait learnCard.launchFeature(\n    '/ai/topics?shortCircuitStep=newTopic&selectedAppId=null',\n    'Explain the postMessage security model'\n);\n```\n\n**Parameters:**\n\n-   `featurePath`: Path to the feature\n-   `initialPrompt`: Optional initial data or prompt\n\n---\n\n### `askCredentialSearch(verifiablePresentationRequest)`\n\nRequest credentials from the user's wallet using a Verifiable Presentation Request.\n\n```typescript\nconst response = await learnCard.askCredentialSearch({\n    query: [\n        {\n            type: 'QueryByTitle',\n            credentialQuery: {\n                reason: 'We need to verify your teamwork skills',\n                title: 'Capstone',\n            },\n        },\n    ],\n    challenge: `challenge-${Date.now()}`,\n    domain: window.location.hostname,\n});\n\nif (response.verifiablePresentation) {\n    const credentials = response.verifiablePresentation.verifiableCredential;\n    console.log(`Received ${credentials.length} credential(s)`);\n}\n```\n\n**Returns:** `{ verifiablePresentation?: { verifiableCredential: unknown[], ... } }`\n\n---\n\n### `askCredentialSpecific(credentialId)`\n\nRequest a specific credential by ID.\n\n```typescript\nconst response = await learnCard.askCredentialSpecific('credential-id-123');\n\nif (response.credential) {\n    console.log('Received credential:', response.credential);\n}\n```\n\n**Error Codes:**\n\n-   `CREDENTIAL_NOT_FOUND`: Credential doesn't exist\n-   `USER_REJECTED`: User declined to share\n\n---\n\n### `requestConsent(contractUri)`\n\nRequest user consent for permissions.\n\n```typescript\nconst response = await learnCard.requestConsent(\n    'lc:network:network.learncard.com/trpc:contract:abc123'\n);\n\nif (response.granted) {\n    console.log('User granted consent');\n} else {\n    console.log('User denied consent');\n}\n```\n\n**Returns:** `{ granted: boolean }`\n\n---\n\n### `initiateTemplateIssue(templateId, draftRecipients?)`\n\nInitiate a template-based credential issuance flow (e.g., Send Boost).\n\n```typescript\nconst response = await learnCard.initiateTemplateIssue(\n    'lc:network:network.learncard.com/trpc:boost:xyz789',\n    ['did:key:z6Mkr...', 'did:key:z6Mks...']\n);\n\nif (response.issued) {\n    console.log('Template issued successfully');\n}\n```\n\n**Error Codes:**\n\n-   `UNAUTHORIZED`: Not an admin of this template\n-   `TEMPLATE_NOT_FOUND`: Template doesn't exist\n\n---\n\n### `destroy()`\n\nClean up the SDK and remove event listeners. Call this when unmounting your component or closing your app.\n\n```typescript\nlearnCard.destroy();\n```\n\n## Complete Example\n\nHere's a complete example showing how to refactor a manual postMessage implementation to use the SDK:\n\n### Before (Manual postMessage)\n\n```typescript\n// Manual setup - verbose and error-prone\nconst LEARNCARD_HOST_ORIGIN = 'https://learncard.app';\nconst PROTOCOL = 'LEARNCARD_V1';\nconst pendingRequests = new Map();\n\nfunction sendPostMessage(action, payload = {}) {\n    return new Promise((resolve, reject) => {\n        const requestId = `${action}-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n        pendingRequests.set(requestId, { resolve, reject });\n\n        window.parent.postMessage(\n            {\n                protocol: PROTOCOL,\n                action,\n                requestId,\n                payload,\n            },\n            LEARNCARD_HOST_ORIGIN\n        );\n\n        setTimeout(() => {\n            if (pendingRequests.has(requestId)) {\n                pendingRequests.delete(requestId);\n                reject({ code: 'LC_TIMEOUT', message: 'Request timed out' });\n            }\n        }, 30000);\n    });\n}\n\nwindow.addEventListener('message', event => {\n    if (event.origin !== LEARNCARD_HOST_ORIGIN) return;\n    const { protocol, requestId, type, data, error } = event.data;\n    if (protocol !== PROTOCOL || !requestId) return;\n\n    const pending = pendingRequests.get(requestId);\n    if (!pending) return;\n\n    pendingRequests.delete(requestId);\n    if (type === 'SUCCESS') {\n        pending.resolve(data);\n    } else if (type === 'ERROR') {\n        pending.reject(error);\n    }\n});\n\n// Usage\nconst identity = await sendPostMessage('REQUEST_IDENTITY');\n```\n\n### After (With SDK)\n\n```typescript\nimport { createPartnerConnect } from '@learncard/partner-connect';\n\n// Clean, one-line setup\nconst learnCard = createPartnerConnect({\n    hostOrigin: 'https://learncard.app',\n});\n\n// Usage - same result, much cleaner\nconst identity = await learnCard.requestIdentity();\n```\n\n## Error Handling\n\nAll methods return Promises that reject with a `LearnCardError` object:\n\n```typescript\ninterface LearnCardError {\n    code: string;\n    message: string;\n}\n```\n\n**Common Error Codes:**\n\n-   `LC_TIMEOUT`: Request timed out\n-   `LC_NOT_EMBEDDED`: Not embedded in a LearnCard host (standalone, not mocking)\n-   `LC_UNAUTHENTICATED`: User not logged in\n-   `USER_REJECTED`: User declined the request\n-   `CREDENTIAL_NOT_FOUND`: Credential doesn't exist\n-   `UNAUTHORIZED`: User lacks permission\n-   `TEMPLATE_NOT_FOUND`: Template doesn't exist\n-   `SDK_NOT_INITIALIZED`: SDK initialization failed\n-   `SDK_DESTROYED`: SDK was destroyed before completion\n\n**Example:**\n\n```typescript\ntry {\n    const identity = await learnCard.requestIdentity();\n    // Success\n} catch (error) {\n    switch (error.code) {\n        case 'LC_UNAUTHENTICATED':\n            console.log('Please log in to your LearnCard account');\n            break;\n        case 'LC_TIMEOUT':\n            console.log('Request timed out. Please try again.');\n            break;\n        default:\n            console.error('An error occurred:', error.message);\n    }\n}\n```\n\n## Integration with Astro\n\n```astro\n---\n// src/pages/index.astro\nconst config = {\n    learnCardHostOrigin: import.meta.env.PUBLIC_LEARNCARD_HOST || 'https://learncard.app',\n};\n---\n\n<script>\n    import { createPartnerConnect } from '@learncard/partner-connect';\n\n    const config = window.__LC_CONFIG;\n    const learnCard = createPartnerConnect({\n        hostOrigin: config.learnCardHostOrigin,\n    });\n\n    async function init() {\n        try {\n            const identity = await learnCard.requestIdentity();\n            console.log('Logged in as:', identity.user.did);\n        } catch (error) {\n            console.error('Not authenticated:', error);\n        }\n    }\n\n    init();\n</script>\n```\n\n## Browser Support\n\n-   Chrome/Edge 90+\n-   Firefox 88+\n-   Safari 14+\n\nRequires `postMessage` API and `Promise` support.\n\n## Security\n\nThe SDK implements multiple security layers:\n\n### 1. **Strict Origin Validation**\n\n-   Messages must come from the **exact** active host origin\n-   No wildcards, no pattern matching, no exceptions\n-   Mathematical equivalence: `event.origin === activeHostOrigin`\n\n### 2. **Query Parameter Whitelist**\n\n-   `lc_host_override` values are validated against configured `hostOrigin` array\n-   Invalid overrides are rejected and logged\n-   Falls back to first configured origin on validation failure\n\n### 3. **Anti-Spoofing Protection**\n\nEven if a malicious actor injects `?lc_host_override=https://evil.com`:\n\n-   The SDK may adopt `evil.com` as the active origin (if not whitelisted)\n-   **BUT** messages from `evil.com` will only be accepted if `event.origin === 'evil.com'`\n-   Browser security prevents `evil.com` from spoofing another domain's origin\n-   Malicious messages are silently rejected\n\n### 4. **Additional Security Layers**\n\n-   **Protocol Validation**: Messages must match the expected protocol identifier\n-   **Request ID Tracking**: Only tracked requests with valid IDs are processed\n-   **Timeout Protection**: Requests automatically timeout to prevent hanging\n-   **Explicit targetOrigin**: Never uses `'*'` in postMessage calls\n\n### Example Attack Scenario (Prevented)\n\n```typescript\n// Attacker adds malicious query param\n// URL: https://partner-app.com/?lc_host_override=https://evil.com\n\n// SDK configuration\nconst learnCard = createPartnerConnect({\n    hostOrigin: ['https://learncard.app', 'https://staging.learncard.app'],\n});\n\n// What happens:\n// 1. SDK detects lc_host_override=https://evil.com\n// 2. Validates against whitelist: NOT FOUND\n// 3. Falls back to: https://learncard.app\n// 4. Sends messages to: https://learncard.app\n// 5. Only accepts messages from: https://learncard.app\n// 6. Attacker's messages from evil.com: REJECTED ❌\n```\n\n## TypeScript\n\nThe SDK is written in TypeScript and includes comprehensive type definitions:\n\n```typescript\nimport type {\n    PartnerConnectOptions,\n    IdentityResponse,\n    SendCredentialResponse,\n    VerifiablePresentationRequest,\n    CredentialSearchResponse,\n    ConsentResponse,\n    LearnCardError,\n} from '@learncard/partner-connect';\n```\n\n## Learner Context Sync Readiness\n\nApps that need a complete learner snapshot can ask LearnCard to wait for background data sync:\n\n```typescript\nconst context = await learnCard.requestLearnerContext({\n    includeCredentials: true,\n    waitForSync: true,\n    format: 'structured',\n});\n\nif (context.status === 'syncing') {\n    const unsubscribe = learnCard.onSyncComplete(async () => {\n        const readyContext = await learnCard.requestLearnerContext({\n            includeCredentials: true,\n            waitForSync: true,\n            format: 'structured',\n        });\n\n        unsubscribe();\n        console.log(readyContext.raw?.credentials);\n    });\n}\n```\n\nUse `learnCard.getSyncStatus()` to render your own progress UI:\n\n```typescript\nconst syncStatus = await learnCard.getSyncStatus();\nconsole.log(syncStatus.status, syncStatus.progress);\n```\n\n## License\n\nMIT\n\n## Contributing\n\nContributions are welcome! Please see the [main LearnCard repository](https://github.com/learningeconomy/LearnCard) for contribution guidelines.\n\n## Support\n\nFor issues and questions:\n\n-   GitHub Issues: https://github.com/learningeconomy/LearnCard/issues\n-   Documentation: https://docs.learncard.com\n","readmeFilename":"README.md"}