@tarquinen/opencode-auth-provider
Advanced tools
+29
-6
@@ -29,7 +29,25 @@ import fs from "fs/promises"; | ||
| ]); | ||
| const CACHE_VERSION = "9"; | ||
| const version = await fs | ||
| .readFile(path.join(Global.Path.cache, "version"), "utf8") | ||
| .catch(() => "0"); | ||
| if (version !== CACHE_VERSION) { | ||
| const CACHE_VERSION = "11"; | ||
| // Minimum cache version we're compatible with (don't clear if version is >= this) | ||
| // This prevents cache thrashing when multiple packages with different CACHE_VERSION | ||
| // values are loaded in the same process (e.g., OpenCode + plugins) | ||
| const MIN_COMPATIBLE_VERSION = 9; | ||
| // Don't clear cache if it was modified very recently (within this many ms) | ||
| // This prevents race conditions where OpenCode just set up the cache | ||
| const CACHE_AGE_THRESHOLD_MS = 5000; | ||
| const versionFile = path.join(Global.Path.cache, "version"); | ||
| const { version, mtime } = await fs | ||
| .readFile(versionFile, "utf8") | ||
| .then(async (content) => { | ||
| const stat = await fs.stat(versionFile).catch(() => null); | ||
| return { version: content.trim(), mtime: stat?.mtime }; | ||
| }) | ||
| .catch(() => ({ version: "0", mtime: undefined })); | ||
| const versionNum = parseInt(version, 10) || 0; | ||
| const cacheAge = mtime ? Date.now() - mtime.getTime() : Infinity; | ||
| // Only clear cache if: | ||
| // 1. Version is below minimum compatible version, AND | ||
| // 2. Cache wasn't just created/modified (prevents race with OpenCode) | ||
| const shouldClearCache = versionNum < MIN_COMPATIBLE_VERSION && cacheAge > CACHE_AGE_THRESHOLD_MS; | ||
| if (shouldClearCache) { | ||
| try { | ||
@@ -43,4 +61,9 @@ const contents = await fs.readdir(Global.Path.cache); | ||
| catch (e) { } | ||
| await fs.writeFile(path.join(Global.Path.cache, "version"), CACHE_VERSION); | ||
| await fs.writeFile(versionFile, CACHE_VERSION); | ||
| } | ||
| else if (version !== CACHE_VERSION && cacheAge > CACHE_AGE_THRESHOLD_MS) { | ||
| // Update version file without clearing cache if we're compatible | ||
| // but only if cache isn't freshly created (to avoid race conditions) | ||
| await fs.writeFile(versionFile, CACHE_VERSION).catch(() => { }); | ||
| } | ||
| //# sourceMappingURL=global.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"global.js","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"global.js","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,GAAG,GAAG,UAAU,CAAA;AAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,EAAE,GAAG,CAAC,CAAA;AAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAA;AAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAA;AAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,EAAE,GAAG,CAAC,CAAA;AAEjF,MAAM,KAAW,MAAM,CAUtB;AAVD,WAAiB,MAAM;IACR,WAAI,GAAG;QAClB,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE;QAClB,IAAI;QACJ,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;QAC3B,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;QAC3B,KAAK;QACL,MAAM;QACN,KAAK;KACG,CAAA;AACZ,CAAC,EAVgB,MAAM,KAAN,MAAM,QAUtB;AAED,MAAM,OAAO,CAAC,GAAG,CAAC;IAChB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC/C,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACjD,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAChD,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC9C,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;CAC/C,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,IAAI,CAAA;AAE1B,kFAAkF;AAClF,oFAAoF;AACpF,mEAAmE;AACnE,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAEhC,2EAA2E;AAC3E,qEAAqE;AACrE,MAAM,sBAAsB,GAAG,IAAI,CAAA;AAEnC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AAE3D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE;KAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC7B,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACzD,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACxD,CAAC,CAAC;KACD,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;AAEpD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;AAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;AAEhE,uBAAuB;AACvB,sDAAsD;AACtD,sEAAsE;AACtE,MAAM,gBAAgB,GAAG,UAAU,GAAG,sBAAsB,IAAI,QAAQ,GAAG,sBAAsB,CAAA;AAEjG,IAAI,gBAAgB,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpD,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACpB,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;YACxC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;SACZ,CAAC,CACH,CACF,CAAA;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IACd,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;AAChD,CAAC;KAAM,IAAI,OAAO,KAAK,aAAa,IAAI,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1E,iEAAiE;IACjE,qEAAqE;IACrE,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;AAChE,CAAC"} |
+1
-1
| { | ||
| "name": "@tarquinen/opencode-auth-provider", | ||
| "version": "0.1.4", | ||
| "version": "0.1.5", | ||
| "description": "Reuse OpenCode authentication & provider logic for clean AI calls in plugins", | ||
@@ -5,0 +5,0 @@ "type": "module", |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
675098
0.33%2903
0.8%