keyv-registry 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/keyv/keyv-registry/src/loadAdapter.ts"],"sourcesContent":["import Module from 'node:module';\nimport path from 'node:path';\nimport url from 'node:url';\nimport installModule from 'install-module-linked';\nimport type { LoadAdapterCallback } from './types.ts';\n\n// Create require function for ESM compatibility\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\n// Determine node_modules path\nconst _dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst nodeModulesPath = path.join(_dirname, '..', '..', 'node_modules');\n\n// Cache loaded adapters\nconst adapterCache = new Map<string, unknown>();\n\n/**\n * Load an adapter, installing it dynamically if needed\n */\nexport default function loadAdapter(packageName: string, exportName: string | undefined, callback: LoadAdapterCallback): void {\n const cacheKey = `${packageName}:${exportName ?? 'default'}`;\n\n // Return cached adapter if available\n if (adapterCache.has(cacheKey)) {\n callback(null, adapterCache.get(cacheKey));\n return;\n }\n\n // Try to require first (may already be installed)\n try {\n const mod = _require(packageName);\n const Adapter = exportName ? mod[exportName] : (mod.default ?? mod);\n adapterCache.set(cacheKey, Adapter);\n callback(null, Adapter);\n return;\n } catch {\n // Not installed - dynamically install then load\n installModule(packageName, nodeModulesPath, {}, (err
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/keyv/keyv-registry/src/loadAdapter.ts"],"sourcesContent":["import Module from 'node:module';\nimport path from 'node:path';\nimport url from 'node:url';\nimport installModule from 'install-module-linked';\nimport type { LoadAdapterCallback } from './types.ts';\n\n// Create require function for ESM compatibility\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\n// Determine node_modules path\nconst _dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst nodeModulesPath = path.join(_dirname, '..', '..', 'node_modules');\n\n// Cache loaded adapters\nconst adapterCache = new Map<string, unknown>();\n\n/**\n * Load an adapter, installing it dynamically if needed\n */\nexport default function loadAdapter(packageName: string, exportName: string | undefined, callback: LoadAdapterCallback): void {\n const cacheKey = `${packageName}:${exportName ?? 'default'}`;\n\n // Return cached adapter if available\n if (adapterCache.has(cacheKey)) {\n callback(null, adapterCache.get(cacheKey));\n return;\n }\n\n // Try to require first (may already be installed)\n try {\n const mod = _require(packageName);\n const Adapter = exportName ? mod[exportName] : (mod.default ?? mod);\n adapterCache.set(cacheKey, Adapter);\n callback(null, Adapter);\n return;\n } catch {\n // Not installed - dynamically install then load\n installModule(packageName, nodeModulesPath, {}, (err?: Error | null) => {\n if (err) return callback(err);\n try {\n const mod = _require(packageName);\n const Adapter = exportName ? mod[exportName] : (mod.default ?? mod);\n adapterCache.set(cacheKey, Adapter);\n callback(null, Adapter);\n } catch (loadErr) {\n callback(loadErr as Error);\n }\n });\n }\n}\n\n/**\n * Clear the adapter cache (useful for testing)\n */\nexport function clearAdapterCache(): void {\n adapterCache.clear();\n}\n"],"names":["clearAdapterCache","loadAdapter","_require","require","Module","createRequire","_dirname","path","dirname","__filename","url","fileURLToPath","nodeModulesPath","join","adapterCache","Map","packageName","exportName","callback","cacheKey","has","get","mod","Adapter","default","set","installModule","err","loadErr","clear"],"mappings":";;;;;;;;;;;QAsDgBA;eAAAA;;QAtChB;;CAEC,GACD;eAAwBC;;;iEAnBL;+DACF;8DACD;0EACU;;;;;;AAG1B,gDAAgD;AAChD,IAAMC,WAAW,OAAOC,YAAY,cAAcC,mBAAM,CAACC,aAAa,CAAC,uDAAmBF;AAE1F,8BAA8B;AAC9B,IAAMG,WAAWC,iBAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcC,gBAAG,CAACC,aAAa,CAAC,uDAAmBF;AACvG,IAAMG,kBAAkBL,iBAAI,CAACM,IAAI,CAACP,UAAU,MAAM,MAAM;AAExD,wBAAwB;AACxB,IAAMQ,eAAe,IAAIC;AAKV,SAASd,YAAYe,WAAmB,EAAEC,UAA8B,EAAEC,QAA6B;IACpH,IAAMC,WAAW,AApBnB,AAoBoB,UAAEH,aAAY,KAA2B,OAAxBC,uBAAAA,wBAAAA,aAAc;IAEjD,qCAAqC;IACrC,IAAIH,aAAaM,GAAG,CAACD,WAAW;QAC9BD,SAAS,MAAMJ,aAAaO,GAAG,CAACF;QAChC;IACF;IAEA,kDAAkD;IAClD,IAAI;YAE8CG;QADhD,IAAMA,MAAMpB,SAASc;QACrB,IAAMO,UAAUN,aAAaK,GAAG,CAACL,WAAW,IAAIK,eAAAA,IAAIE,OAAO,cAAXF,0BAAAA,eAAeA;QAC/DR,aAAaW,GAAG,CAACN,UAAUI;QAC3BL,SAAS,MAAMK;QACf;IACF,EAAE,eAAM;QACN,gDAAgD;QAChDG,IAAAA,4BAAa,EAACV,aAAaJ,iBAAiB,CAAC,GAAG,SAACe;YAC/C,IAAIA,KAAK,OAAOT,SAASS;YACzB,IAAI;oBAE8CL;gBADhD,IAAMA,MAAMpB,SAASc;gBACrB,IAAMO,UAAUN,aAAaK,GAAG,CAACL,WAAW,IAAIK,eAAAA,IAAIE,OAAO,cAAXF,0BAAAA,eAAeA;gBAC/DR,aAAaW,GAAG,CAACN,UAAUI;gBAC3BL,SAAS,MAAMK;YACjB,EAAE,OAAOK,SAAS;gBAChBV,SAASU;YACX;QACF;IACF;AACF;AAKO,SAAS5B;IACdc,aAAae,KAAK;AACpB"}
|
package/dist/cjs/registry.js
CHANGED
|
@@ -63,7 +63,7 @@ function _object_spread(target) {
|
|
|
63
63
|
'postgresql:': {
|
|
64
64
|
package: '@keyv/postgres',
|
|
65
65
|
mode: 'options',
|
|
66
|
-
optionsMapper: function(url) {
|
|
66
|
+
optionsMapper: function optionsMapper(url) {
|
|
67
67
|
return {
|
|
68
68
|
uri: url.toString()
|
|
69
69
|
};
|
|
@@ -72,7 +72,7 @@ function _object_spread(target) {
|
|
|
72
72
|
'postgres:': {
|
|
73
73
|
package: '@keyv/postgres',
|
|
74
74
|
mode: 'options',
|
|
75
|
-
optionsMapper: function(url) {
|
|
75
|
+
optionsMapper: function optionsMapper(url) {
|
|
76
76
|
return {
|
|
77
77
|
uri: url.toString()
|
|
78
78
|
};
|
|
@@ -81,7 +81,7 @@ function _object_spread(target) {
|
|
|
81
81
|
'mysql:': {
|
|
82
82
|
package: '@keyv/mysql',
|
|
83
83
|
mode: 'options',
|
|
84
|
-
optionsMapper: function(url) {
|
|
84
|
+
optionsMapper: function optionsMapper(url) {
|
|
85
85
|
return {
|
|
86
86
|
uri: url.toString()
|
|
87
87
|
};
|
|
@@ -90,7 +90,7 @@ function _object_spread(target) {
|
|
|
90
90
|
'sqlite:': {
|
|
91
91
|
package: '@keyv/sqlite',
|
|
92
92
|
mode: 'options',
|
|
93
|
-
optionsMapper: function(url) {
|
|
93
|
+
optionsMapper: function optionsMapper(url) {
|
|
94
94
|
return {
|
|
95
95
|
uri: url.toString()
|
|
96
96
|
};
|
|
@@ -99,7 +99,7 @@ function _object_spread(target) {
|
|
|
99
99
|
'mongodb:': {
|
|
100
100
|
package: '@keyv/mongo',
|
|
101
101
|
mode: 'options',
|
|
102
|
-
optionsMapper: function(url) {
|
|
102
|
+
optionsMapper: function optionsMapper(url) {
|
|
103
103
|
return {
|
|
104
104
|
url: url.toString()
|
|
105
105
|
};
|
|
@@ -108,7 +108,7 @@ function _object_spread(target) {
|
|
|
108
108
|
'mongodb+srv:': {
|
|
109
109
|
package: '@keyv/mongo',
|
|
110
110
|
mode: 'options',
|
|
111
|
-
optionsMapper: function(url) {
|
|
111
|
+
optionsMapper: function optionsMapper(url) {
|
|
112
112
|
return {
|
|
113
113
|
url: url.toString()
|
|
114
114
|
};
|
|
@@ -121,7 +121,7 @@ function _object_spread(target) {
|
|
|
121
121
|
'etcd:': {
|
|
122
122
|
package: '@keyv/etcd',
|
|
123
123
|
mode: 'options',
|
|
124
|
-
optionsMapper: function(url) {
|
|
124
|
+
optionsMapper: function optionsMapper(url) {
|
|
125
125
|
return {
|
|
126
126
|
url: url.toString()
|
|
127
127
|
};
|
|
@@ -131,7 +131,7 @@ function _object_spread(target) {
|
|
|
131
131
|
'file:': {
|
|
132
132
|
package: 'keyv-file',
|
|
133
133
|
exportName: 'KeyvFile',
|
|
134
|
-
optionsMapper: function(url) {
|
|
134
|
+
optionsMapper: function optionsMapper(url) {
|
|
135
135
|
return {
|
|
136
136
|
filename: (0, _utilsts.resolveFilePath)(url)
|
|
137
137
|
};
|
|
@@ -144,7 +144,7 @@ function _object_spread(target) {
|
|
|
144
144
|
// Future/custom adapters
|
|
145
145
|
'duckdb:': {
|
|
146
146
|
package: 'keyv-duckdb',
|
|
147
|
-
optionsMapper: function(url) {
|
|
147
|
+
optionsMapper: function optionsMapper(url) {
|
|
148
148
|
return {
|
|
149
149
|
filename: (0, _utilsts.resolveFilePath)(url)
|
|
150
150
|
};
|
package/dist/cjs/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/keyv/keyv-registry/src/registry.ts"],"sourcesContent":["import type { AdapterConfig } from './types.ts';\nimport { resolveFilePath } from './utils.ts';\n\n/**\n * Protocol registry mapping URI protocols to adapter configurations\n */\nconst PROTOCOL_REGISTRY: Record<string, AdapterConfig> = {\n // Official @keyv adapters\n 'redis:': { package: '@keyv/redis', mode: 'string' },\n 'rediss:': { package: '@keyv/redis', mode: 'string' },\n 'postgresql:': { package: '@keyv/postgres', mode: 'options', optionsMapper: (url) => ({ uri: url.toString() }) },\n 'postgres:': { package: '@keyv/postgres', mode: 'options', optionsMapper: (url) => ({ uri: url.toString() }) },\n 'mysql:': { package: '@keyv/mysql', mode: 'options', optionsMapper: (url) => ({ uri: url.toString() }) },\n 'sqlite:': { package: '@keyv/sqlite', mode: 'options', optionsMapper: (url) => ({ uri: url.toString() }) },\n 'mongodb:': { package: '@keyv/mongo', mode: 'options', optionsMapper: (url) => ({ url: url.toString() }) },\n 'mongodb+srv:': { package: '@keyv/mongo', mode: 'options', optionsMapper: (url) => ({ url: url.toString() }) },\n 'memcache:': { package: '@keyv/memcache', mode: 'string' },\n 'etcd:': { package: '@keyv/etcd', mode: 'options', optionsMapper: (url) => ({ url: url.toString() }) },\n\n // Third-party adapters\n 'file:': {\n package: 'keyv-file',\n exportName: 'KeyvFile',\n optionsMapper: (url: URL) => ({ filename: resolveFilePath(url) }),\n },\n\n // Built-in (no package needed)\n 'memory:': { package: null },\n\n // Future/custom adapters\n 'duckdb:': {\n package: 'keyv-duckdb',\n optionsMapper: (url: URL) => ({ filename: resolveFilePath(url) }),\n },\n};\n\n/**\n * Register or override a protocol adapter\n */\nexport function registerAdapter(protocol: string, config: AdapterConfig): void {\n const normalizedProtocol = protocol.endsWith(':') ? protocol : `${protocol}:`;\n PROTOCOL_REGISTRY[normalizedProtocol] = config;\n}\n\n/**\n * Get the current registry (read-only copy)\n */\nexport function getRegistry(): Readonly<Record<string, AdapterConfig>> {\n return { ...PROTOCOL_REGISTRY };\n}\n\n/**\n * Get adapter config for a protocol\n */\nexport function getAdapterConfig(protocol: string): AdapterConfig | undefined {\n return PROTOCOL_REGISTRY[protocol];\n}\n"],"names":["getAdapterConfig","getRegistry","registerAdapter","PROTOCOL_REGISTRY","package","mode","optionsMapper","url","uri","toString","exportName","filename","resolveFilePath","protocol","config","normalizedProtocol","endsWith"],"mappings":";;;;;;;;;;;QAsDgBA;eAAAA;;QAPAC;eAAAA;;QARAC;eAAAA;;;uBAtCgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhC;;CAEC,GACD,IAAMC,oBAAmD;IACvD,0BAA0B;IAC1B,UAAU;QAAEC,SAAS;QAAeC,MAAM;IAAS;IACnD,WAAW;QAAED,SAAS;QAAeC,MAAM;IAAS;IACpD,eAAe;QAAED,SAAS;QAAkBC,MAAM;QAAWC,eAAe,
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/keyv/keyv-registry/src/registry.ts"],"sourcesContent":["import type { AdapterConfig } from './types.ts';\nimport { resolveFilePath } from './utils.ts';\n\n/**\n * Protocol registry mapping URI protocols to adapter configurations\n */\nconst PROTOCOL_REGISTRY: Record<string, AdapterConfig> = {\n // Official @keyv adapters\n 'redis:': { package: '@keyv/redis', mode: 'string' },\n 'rediss:': { package: '@keyv/redis', mode: 'string' },\n 'postgresql:': { package: '@keyv/postgres', mode: 'options', optionsMapper: (url) => ({ uri: url.toString() }) },\n 'postgres:': { package: '@keyv/postgres', mode: 'options', optionsMapper: (url) => ({ uri: url.toString() }) },\n 'mysql:': { package: '@keyv/mysql', mode: 'options', optionsMapper: (url) => ({ uri: url.toString() }) },\n 'sqlite:': { package: '@keyv/sqlite', mode: 'options', optionsMapper: (url) => ({ uri: url.toString() }) },\n 'mongodb:': { package: '@keyv/mongo', mode: 'options', optionsMapper: (url) => ({ url: url.toString() }) },\n 'mongodb+srv:': { package: '@keyv/mongo', mode: 'options', optionsMapper: (url) => ({ url: url.toString() }) },\n 'memcache:': { package: '@keyv/memcache', mode: 'string' },\n 'etcd:': { package: '@keyv/etcd', mode: 'options', optionsMapper: (url) => ({ url: url.toString() }) },\n\n // Third-party adapters\n 'file:': {\n package: 'keyv-file',\n exportName: 'KeyvFile',\n optionsMapper: (url: URL) => ({ filename: resolveFilePath(url) }),\n },\n\n // Built-in (no package needed)\n 'memory:': { package: null },\n\n // Future/custom adapters\n 'duckdb:': {\n package: 'keyv-duckdb',\n optionsMapper: (url: URL) => ({ filename: resolveFilePath(url) }),\n },\n};\n\n/**\n * Register or override a protocol adapter\n */\nexport function registerAdapter(protocol: string, config: AdapterConfig): void {\n const normalizedProtocol = protocol.endsWith(':') ? protocol : `${protocol}:`;\n PROTOCOL_REGISTRY[normalizedProtocol] = config;\n}\n\n/**\n * Get the current registry (read-only copy)\n */\nexport function getRegistry(): Readonly<Record<string, AdapterConfig>> {\n return { ...PROTOCOL_REGISTRY };\n}\n\n/**\n * Get adapter config for a protocol\n */\nexport function getAdapterConfig(protocol: string): AdapterConfig | undefined {\n return PROTOCOL_REGISTRY[protocol];\n}\n"],"names":["getAdapterConfig","getRegistry","registerAdapter","PROTOCOL_REGISTRY","package","mode","optionsMapper","url","uri","toString","exportName","filename","resolveFilePath","protocol","config","normalizedProtocol","endsWith"],"mappings":";;;;;;;;;;;QAsDgBA;eAAAA;;QAPAC;eAAAA;;QARAC;eAAAA;;;uBAtCgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhC;;CAEC,GACD,IAAMC,oBAAmD;IACvD,0BAA0B;IAC1B,UAAU;QAAEC,SAAS;QAAeC,MAAM;IAAS;IACnD,WAAW;QAAED,SAAS;QAAeC,MAAM;IAAS;IACpD,eAAe;QAAED,SAAS;QAAkBC,MAAM;QAAWC,eAAe,SAAfA,cAAgBC;mBAAS;gBAAEC,KAAKD,IAAIE,QAAQ;YAAG;;IAAG;IAC/G,aAAa;QAAEL,SAAS;QAAkBC,MAAM;QAAWC,eAAe,SAAfA,cAAgBC;mBAAS;gBAAEC,KAAKD,IAAIE,QAAQ;YAAG;;IAAG;IAC7G,UAAU;QAAEL,SAAS;QAAeC,MAAM;QAAWC,eAAe,SAAfA,cAAgBC;mBAAS;gBAAEC,KAAKD,IAAIE,QAAQ;YAAG;;IAAG;IACvG,WAAW;QAAEL,SAAS;QAAgBC,MAAM;QAAWC,eAAe,SAAfA,cAAgBC;mBAAS;gBAAEC,KAAKD,IAAIE,QAAQ;YAAG;;IAAG;IACzG,YAAY;QAAEL,SAAS;QAAeC,MAAM;QAAWC,eAAe,SAAfA,cAAgBC;mBAAS;gBAAEA,KAAKA,IAAIE,QAAQ;YAAG;;IAAG;IACzG,gBAAgB;QAAEL,SAAS;QAAeC,MAAM;QAAWC,eAAe,SAAfA,cAAgBC;mBAAS;gBAAEA,KAAKA,IAAIE,QAAQ;YAAG;;IAAG;IAC7G,aAAa;QAAEL,SAAS;QAAkBC,MAAM;IAAS;IACzD,SAAS;QAAED,SAAS;QAAcC,MAAM;QAAWC,eAAe,SAAfA,cAAgBC;mBAAS;gBAAEA,KAAKA,IAAIE,QAAQ;YAAG;;IAAG;IAErG,uBAAuB;IACvB,SAAS;QACPL,SAAS;QACTM,YAAY;QACZJ,eAAe,SAAfA,cAAgBC;mBAAc;gBAAEI,UAAUC,IAAAA,wBAAe,EAACL;YAAK;;IACjE;IAEA,+BAA+B;IAC/B,WAAW;QAAEH,SAAS;IAAK;IAE3B,yBAAyB;IACzB,WAAW;QACTA,SAAS;QACTE,eAAe,SAAfA,cAAgBC;mBAAc;gBAAEI,UAAUC,IAAAA,wBAAe,EAACL;YAAK;;IACjE;AACF;AAKO,SAASL,gBAAgBW,QAAgB,EAAEC,MAAqB;IACrE,IAAMC,qBAAqBF,SAASG,QAAQ,CAAC,OAAOH,WAAW,AAAC,GAAW,OAATA,UAAS;IAC3EV,iBAAiB,CAACY,mBAAmB,GAAGD;AAC1C;AAKO,SAASb;IACd,OAAO,mBAAKE;AACd;AAKO,SAASH,iBAAiBa,QAAgB;IAC/C,OAAOV,iBAAiB,CAACU,SAAS;AACpC"}
|
package/dist/cjs/worker.js
CHANGED
|
@@ -51,7 +51,7 @@ function _object_without_properties(source, excluded) {
|
|
|
51
51
|
if (source == null) return {};
|
|
52
52
|
var target = {}, sourceKeys, key, i;
|
|
53
53
|
if (typeof Reflect !== "undefined" && Reflect.ownKeys) {
|
|
54
|
-
sourceKeys = Reflect.ownKeys(source);
|
|
54
|
+
sourceKeys = Reflect.ownKeys(Object(source));
|
|
55
55
|
for(i = 0; i < sourceKeys.length; i++){
|
|
56
56
|
key = sourceKeys[i];
|
|
57
57
|
if (excluded.indexOf(key) >= 0) continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/keyv/keyv-registry/src/loadAdapter.ts"],"sourcesContent":["import Module from 'node:module';\nimport path from 'node:path';\nimport url from 'node:url';\nimport installModule from 'install-module-linked';\nimport type { LoadAdapterCallback } from './types.ts';\n\n// Create require function for ESM compatibility\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\n// Determine node_modules path\nconst _dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst nodeModulesPath = path.join(_dirname, '..', '..', 'node_modules');\n\n// Cache loaded adapters\nconst adapterCache = new Map<string, unknown>();\n\n/**\n * Load an adapter, installing it dynamically if needed\n */\nexport default function loadAdapter(packageName: string, exportName: string | undefined, callback: LoadAdapterCallback): void {\n const cacheKey = `${packageName}:${exportName ?? 'default'}`;\n\n // Return cached adapter if available\n if (adapterCache.has(cacheKey)) {\n callback(null, adapterCache.get(cacheKey));\n return;\n }\n\n // Try to require first (may already be installed)\n try {\n const mod = _require(packageName);\n const Adapter = exportName ? mod[exportName] : (mod.default ?? mod);\n adapterCache.set(cacheKey, Adapter);\n callback(null, Adapter);\n return;\n } catch {\n // Not installed - dynamically install then load\n installModule(packageName, nodeModulesPath, {}, (err
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/keyv/keyv-registry/src/loadAdapter.ts"],"sourcesContent":["import Module from 'node:module';\nimport path from 'node:path';\nimport url from 'node:url';\nimport installModule from 'install-module-linked';\nimport type { LoadAdapterCallback } from './types.ts';\n\n// Create require function for ESM compatibility\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\n// Determine node_modules path\nconst _dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst nodeModulesPath = path.join(_dirname, '..', '..', 'node_modules');\n\n// Cache loaded adapters\nconst adapterCache = new Map<string, unknown>();\n\n/**\n * Load an adapter, installing it dynamically if needed\n */\nexport default function loadAdapter(packageName: string, exportName: string | undefined, callback: LoadAdapterCallback): void {\n const cacheKey = `${packageName}:${exportName ?? 'default'}`;\n\n // Return cached adapter if available\n if (adapterCache.has(cacheKey)) {\n callback(null, adapterCache.get(cacheKey));\n return;\n }\n\n // Try to require first (may already be installed)\n try {\n const mod = _require(packageName);\n const Adapter = exportName ? mod[exportName] : (mod.default ?? mod);\n adapterCache.set(cacheKey, Adapter);\n callback(null, Adapter);\n return;\n } catch {\n // Not installed - dynamically install then load\n installModule(packageName, nodeModulesPath, {}, (err?: Error | null) => {\n if (err) return callback(err);\n try {\n const mod = _require(packageName);\n const Adapter = exportName ? mod[exportName] : (mod.default ?? mod);\n adapterCache.set(cacheKey, Adapter);\n callback(null, Adapter);\n } catch (loadErr) {\n callback(loadErr as Error);\n }\n });\n }\n}\n\n/**\n * Clear the adapter cache (useful for testing)\n */\nexport function clearAdapterCache(): void {\n adapterCache.clear();\n}\n"],"names":["Module","path","url","installModule","_require","require","createRequire","_dirname","dirname","__filename","fileURLToPath","nodeModulesPath","join","adapterCache","Map","loadAdapter","packageName","exportName","callback","cacheKey","has","get","mod","Adapter","default","set","err","loadErr","clearAdapterCache","clear"],"mappings":"AAAA,OAAOA,YAAY,cAAc;AACjC,OAAOC,UAAU,YAAY;AAC7B,OAAOC,SAAS,WAAW;AAC3B,OAAOC,mBAAmB,wBAAwB;AAGlD,gDAAgD;AAChD,MAAMC,WAAW,OAAOC,YAAY,cAAcL,OAAOM,aAAa,CAAC,YAAYJ,GAAG,IAAIG;AAE1F,8BAA8B;AAC9B,MAAME,WAAWN,KAAKO,OAAO,CAAC,OAAOC,eAAe,cAAcP,IAAIQ,aAAa,CAAC,YAAYR,GAAG,IAAIO;AACvG,MAAME,kBAAkBV,KAAKW,IAAI,CAACL,UAAU,MAAM,MAAM;AAExD,wBAAwB;AACxB,MAAMM,eAAe,IAAIC;AAEzB;;CAEC,GACD,eAAe,SAASC,YAAYC,WAAmB,EAAEC,UAA8B,EAAEC,QAA6B;IACpH,MAAMC,WAAW,GAAGH,YAAY,CAAC,EAAEC,uBAAAA,wBAAAA,aAAc,WAAW;IAE5D,qCAAqC;IACrC,IAAIJ,aAAaO,GAAG,CAACD,WAAW;QAC9BD,SAAS,MAAML,aAAaQ,GAAG,CAACF;QAChC;IACF;IAEA,kDAAkD;IAClD,IAAI;YAE8CG;QADhD,MAAMA,MAAMlB,SAASY;QACrB,MAAMO,UAAUN,aAAaK,GAAG,CAACL,WAAW,IAAIK,eAAAA,IAAIE,OAAO,cAAXF,0BAAAA,eAAeA;QAC/DT,aAAaY,GAAG,CAACN,UAAUI;QAC3BL,SAAS,MAAMK;QACf;IACF,EAAE,OAAM;QACN,gDAAgD;QAChDpB,cAAca,aAAaL,iBAAiB,CAAC,GAAG,CAACe;YAC/C,IAAIA,KAAK,OAAOR,SAASQ;YACzB,IAAI;oBAE8CJ;gBADhD,MAAMA,MAAMlB,SAASY;gBACrB,MAAMO,UAAUN,aAAaK,GAAG,CAACL,WAAW,IAAIK,eAAAA,IAAIE,OAAO,cAAXF,0BAAAA,eAAeA;gBAC/DT,aAAaY,GAAG,CAACN,UAAUI;gBAC3BL,SAAS,MAAMK;YACjB,EAAE,OAAOI,SAAS;gBAChBT,SAASS;YACX;QACF;IACF;AACF;AAEA;;CAEC,GACD,OAAO,SAASC;IACdf,aAAagB,KAAK;AACpB"}
|