@initx-plugin/core 0.1.4 → 0.3.0
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.
- package/dist/index.d.mts +81 -4
- package/dist/index.d.ts +81 -4
- package/dist/index.mjs +1 -1
- package/package.json +3 -4
package/dist/index.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { MatcherRules } from 'matchinitx';
|
|
2
|
-
import * as npm_plugin_kit from 'npm-plugin-kit';
|
|
3
2
|
|
|
4
3
|
declare const INITX_DIR: string;
|
|
5
4
|
declare const STORE_DIR: string;
|
|
6
5
|
declare const STORE_FILE_NAME = "store.json";
|
|
7
6
|
declare const PLUGIN_DIR: string;
|
|
7
|
+
declare const PLUGINS_CACHE_FILE = ".plugins.json";
|
|
8
8
|
declare const NODE_MODULES_DIR: string;
|
|
9
9
|
|
|
10
10
|
type MaybePromise<T> = T | Promise<T>;
|
|
@@ -120,11 +120,88 @@ declare abstract class InitxPlugin<TStore extends object = object> {
|
|
|
120
120
|
declare function detectManager(): Promise<boolean>;
|
|
121
121
|
declare function installManager(): Promise<void>;
|
|
122
122
|
|
|
123
|
+
interface PluginOptions {
|
|
124
|
+
/**
|
|
125
|
+
* Custom plugin directory path
|
|
126
|
+
* @default `~/.initx/plugins`
|
|
127
|
+
*/
|
|
128
|
+
pluginDir?: string;
|
|
129
|
+
/**
|
|
130
|
+
* Custom npm registry URL
|
|
131
|
+
* @default 'https://registry.npmjs.org'
|
|
132
|
+
*/
|
|
133
|
+
registry?: string;
|
|
134
|
+
/**
|
|
135
|
+
* Custom npm executable path
|
|
136
|
+
* @default 'npm'
|
|
137
|
+
*/
|
|
138
|
+
npmPath?: string;
|
|
139
|
+
}
|
|
140
|
+
interface PluginSystem<T = any> {
|
|
141
|
+
search: (keyword: string) => Promise<SearchResult[]>;
|
|
142
|
+
install: (packageName: string, version?: string) => Promise<void>;
|
|
143
|
+
uninstall: (packageName: string) => Promise<void>;
|
|
144
|
+
list: () => Promise<PluginInfo[]>;
|
|
145
|
+
update: (packageName: string, version?: string) => Promise<void>;
|
|
146
|
+
load: (packageName: string) => Promise<T>;
|
|
147
|
+
resolve: (packageName: string, ...paths: string[]) => string;
|
|
148
|
+
}
|
|
149
|
+
interface SearchResult {
|
|
150
|
+
name: string;
|
|
151
|
+
version: string;
|
|
152
|
+
description: string;
|
|
153
|
+
}
|
|
154
|
+
interface PluginInfo {
|
|
155
|
+
name: string;
|
|
156
|
+
version: string;
|
|
157
|
+
description: string;
|
|
158
|
+
isLocal: boolean;
|
|
159
|
+
}
|
|
160
|
+
interface NpmPackageInfo {
|
|
161
|
+
version: string;
|
|
162
|
+
resolved: string;
|
|
163
|
+
overridden: boolean;
|
|
164
|
+
description: string;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* NPM-based plugin system using native Node.js APIs
|
|
169
|
+
*/
|
|
170
|
+
declare class NpmPluginSystem<T = any> implements PluginSystem<T> {
|
|
171
|
+
private readonly npmManager;
|
|
172
|
+
private readonly pluginLoader;
|
|
173
|
+
private readonly pluginDir;
|
|
174
|
+
constructor(id: string, options?: PluginOptions);
|
|
175
|
+
search(keyword: string): Promise<SearchResult[]>;
|
|
176
|
+
install(packageName: string, version?: string): Promise<void>;
|
|
177
|
+
uninstall(packageName: string): Promise<void>;
|
|
178
|
+
list(): Promise<PluginInfo[]>;
|
|
179
|
+
update(packageName: string, version?: string): Promise<void>;
|
|
180
|
+
load(packageName: string): Promise<T>;
|
|
181
|
+
resolve(packageName: string, ...paths: string[]): string;
|
|
182
|
+
/**
|
|
183
|
+
* Ensure plugin cache is valid. Rebuild if invalid.
|
|
184
|
+
* Call this after updating core packages or if cache was manually deleted.
|
|
185
|
+
*/
|
|
186
|
+
ensureCacheValid(): Promise<void>;
|
|
187
|
+
}
|
|
188
|
+
|
|
123
189
|
type Constructor<T> = new (...args: any[]) => T;
|
|
124
|
-
|
|
190
|
+
/**
|
|
191
|
+
* Create a plugin system instance
|
|
192
|
+
*/
|
|
193
|
+
declare function createNpmPlugin<T = any>(id: string, options?: {
|
|
194
|
+
pluginDir?: string;
|
|
195
|
+
registry?: string;
|
|
196
|
+
npmPath?: string;
|
|
197
|
+
}): NpmPluginSystem<T>;
|
|
198
|
+
/**
|
|
199
|
+
* Global plugin system instance for initx
|
|
200
|
+
*/
|
|
201
|
+
declare const pluginSystem: NpmPluginSystem<Constructor<InitxPlugin<object>>>;
|
|
125
202
|
|
|
126
203
|
declare function createStore(name: string, defaultStore?: Record<string, any>): Record<string, any>;
|
|
127
204
|
declare function writeStore(name: string): void;
|
|
128
205
|
|
|
129
|
-
export { INITX_DIR, InitxPlugin, NODE_MODULES_DIR, PLUGIN_DIR, STORE_DIR, STORE_FILE_NAME, createStore, detectManager, fetchPlugins, installManager, loadPlugins, matchPlugins, pluginSystem, withPluginPrefix, writeStore };
|
|
130
|
-
export type { HandlerInfo, InitxBaseContext, InitxContext, InitxMatcherRules, InitxPluginInfo, LoadPluginResult, MatchedPlugin, PackageInfo };
|
|
206
|
+
export { INITX_DIR, InitxPlugin, NODE_MODULES_DIR, PLUGINS_CACHE_FILE, PLUGIN_DIR, STORE_DIR, STORE_FILE_NAME, createNpmPlugin, createStore, detectManager, fetchPlugins, installManager, loadPlugins, matchPlugins, pluginSystem, withPluginPrefix, writeStore };
|
|
207
|
+
export type { HandlerInfo, InitxBaseContext, InitxContext, InitxMatcherRules, InitxPluginInfo, LoadPluginResult, MatchedPlugin, NpmPackageInfo, PackageInfo, PluginInfo, PluginOptions, PluginSystem, SearchResult };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { MatcherRules } from 'matchinitx';
|
|
2
|
-
import * as npm_plugin_kit from 'npm-plugin-kit';
|
|
3
2
|
|
|
4
3
|
declare const INITX_DIR: string;
|
|
5
4
|
declare const STORE_DIR: string;
|
|
6
5
|
declare const STORE_FILE_NAME = "store.json";
|
|
7
6
|
declare const PLUGIN_DIR: string;
|
|
7
|
+
declare const PLUGINS_CACHE_FILE = ".plugins.json";
|
|
8
8
|
declare const NODE_MODULES_DIR: string;
|
|
9
9
|
|
|
10
10
|
type MaybePromise<T> = T | Promise<T>;
|
|
@@ -120,11 +120,88 @@ declare abstract class InitxPlugin<TStore extends object = object> {
|
|
|
120
120
|
declare function detectManager(): Promise<boolean>;
|
|
121
121
|
declare function installManager(): Promise<void>;
|
|
122
122
|
|
|
123
|
+
interface PluginOptions {
|
|
124
|
+
/**
|
|
125
|
+
* Custom plugin directory path
|
|
126
|
+
* @default `~/.initx/plugins`
|
|
127
|
+
*/
|
|
128
|
+
pluginDir?: string;
|
|
129
|
+
/**
|
|
130
|
+
* Custom npm registry URL
|
|
131
|
+
* @default 'https://registry.npmjs.org'
|
|
132
|
+
*/
|
|
133
|
+
registry?: string;
|
|
134
|
+
/**
|
|
135
|
+
* Custom npm executable path
|
|
136
|
+
* @default 'npm'
|
|
137
|
+
*/
|
|
138
|
+
npmPath?: string;
|
|
139
|
+
}
|
|
140
|
+
interface PluginSystem<T = any> {
|
|
141
|
+
search: (keyword: string) => Promise<SearchResult[]>;
|
|
142
|
+
install: (packageName: string, version?: string) => Promise<void>;
|
|
143
|
+
uninstall: (packageName: string) => Promise<void>;
|
|
144
|
+
list: () => Promise<PluginInfo[]>;
|
|
145
|
+
update: (packageName: string, version?: string) => Promise<void>;
|
|
146
|
+
load: (packageName: string) => Promise<T>;
|
|
147
|
+
resolve: (packageName: string, ...paths: string[]) => string;
|
|
148
|
+
}
|
|
149
|
+
interface SearchResult {
|
|
150
|
+
name: string;
|
|
151
|
+
version: string;
|
|
152
|
+
description: string;
|
|
153
|
+
}
|
|
154
|
+
interface PluginInfo {
|
|
155
|
+
name: string;
|
|
156
|
+
version: string;
|
|
157
|
+
description: string;
|
|
158
|
+
isLocal: boolean;
|
|
159
|
+
}
|
|
160
|
+
interface NpmPackageInfo {
|
|
161
|
+
version: string;
|
|
162
|
+
resolved: string;
|
|
163
|
+
overridden: boolean;
|
|
164
|
+
description: string;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* NPM-based plugin system using native Node.js APIs
|
|
169
|
+
*/
|
|
170
|
+
declare class NpmPluginSystem<T = any> implements PluginSystem<T> {
|
|
171
|
+
private readonly npmManager;
|
|
172
|
+
private readonly pluginLoader;
|
|
173
|
+
private readonly pluginDir;
|
|
174
|
+
constructor(id: string, options?: PluginOptions);
|
|
175
|
+
search(keyword: string): Promise<SearchResult[]>;
|
|
176
|
+
install(packageName: string, version?: string): Promise<void>;
|
|
177
|
+
uninstall(packageName: string): Promise<void>;
|
|
178
|
+
list(): Promise<PluginInfo[]>;
|
|
179
|
+
update(packageName: string, version?: string): Promise<void>;
|
|
180
|
+
load(packageName: string): Promise<T>;
|
|
181
|
+
resolve(packageName: string, ...paths: string[]): string;
|
|
182
|
+
/**
|
|
183
|
+
* Ensure plugin cache is valid. Rebuild if invalid.
|
|
184
|
+
* Call this after updating core packages or if cache was manually deleted.
|
|
185
|
+
*/
|
|
186
|
+
ensureCacheValid(): Promise<void>;
|
|
187
|
+
}
|
|
188
|
+
|
|
123
189
|
type Constructor<T> = new (...args: any[]) => T;
|
|
124
|
-
|
|
190
|
+
/**
|
|
191
|
+
* Create a plugin system instance
|
|
192
|
+
*/
|
|
193
|
+
declare function createNpmPlugin<T = any>(id: string, options?: {
|
|
194
|
+
pluginDir?: string;
|
|
195
|
+
registry?: string;
|
|
196
|
+
npmPath?: string;
|
|
197
|
+
}): NpmPluginSystem<T>;
|
|
198
|
+
/**
|
|
199
|
+
* Global plugin system instance for initx
|
|
200
|
+
*/
|
|
201
|
+
declare const pluginSystem: NpmPluginSystem<Constructor<InitxPlugin<object>>>;
|
|
125
202
|
|
|
126
203
|
declare function createStore(name: string, defaultStore?: Record<string, any>): Record<string, any>;
|
|
127
204
|
declare function writeStore(name: string): void;
|
|
128
205
|
|
|
129
|
-
export { INITX_DIR, InitxPlugin, NODE_MODULES_DIR, PLUGIN_DIR, STORE_DIR, STORE_FILE_NAME, createStore, detectManager, fetchPlugins, installManager, loadPlugins, matchPlugins, pluginSystem, withPluginPrefix, writeStore };
|
|
130
|
-
export type { HandlerInfo, InitxBaseContext, InitxContext, InitxMatcherRules, InitxPluginInfo, LoadPluginResult, MatchedPlugin, PackageInfo };
|
|
206
|
+
export { INITX_DIR, InitxPlugin, NODE_MODULES_DIR, PLUGINS_CACHE_FILE, PLUGIN_DIR, STORE_DIR, STORE_FILE_NAME, createNpmPlugin, createStore, detectManager, fetchPlugins, installManager, loadPlugins, matchPlugins, pluginSystem, withPluginPrefix, writeStore };
|
|
207
|
+
export type { HandlerInfo, InitxBaseContext, InitxContext, InitxMatcherRules, InitxPluginInfo, LoadPluginResult, MatchedPlugin, NpmPackageInfo, PackageInfo, PluginInfo, PluginOptions, PluginSystem, SearchResult };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{homedir as
|
|
1
|
+
import{homedir as R}from"node:os";import u from"fs-extra";import c,{resolve as f,join as l}from"pathe";import{useInitxMatcher as J}from"matchinitx";import{defu as A}from"defu";import D from"node:process";import{exec as T}from"node:child_process";import{createRequire as y}from"node:module";import{promisify as U}from"node:util";import{pathToFileURL as V}from"node:url";const v=f(R(),".initx"),x=f(v,"stores"),j="store.json",h=f(v,"plugins"),S=".plugins.json",H=u.existsSync(f(h,"lib"))?"lib/node_modules":"node_modules";let P=!1,$={};const E=i=>c.resolve(x,i,j);function N(i,e={}){u.ensureDirSync(c.resolve(x,i));const t=E(i),a=r=>(I(t,r),G(r));if(!u.existsSync(t))return a(e);let n;try{const r=u.readJsonSync(t);n=A(r,e)}catch{n=e}return a(n)}function O(i){P&&I(E(i),$)}function I(i,e){u.writeJsonSync(i,e,{spaces:2})}function G(i={}){const e=a=>typeof a=="object"&&a!==null&&new Set(["[object Object]","[object Array]"]).has(Object.prototype.toString.call(a)),t=a=>new Proxy(a,{get(n,r){const s=Reflect.get(n,r);return e(s)?t(s):s},set(n,r,s){const o=Reflect.set(n,r,s);return P=!0,o},deleteProperty(n,r){const s=Reflect.deleteProperty(n,r);return P=!0,s}});return $=t(i),$}const W=y(import.meta.url),{pathExists:C,readJSON:q,writeJSON:B}=W("fs-extra");class X{cachePath;constructor(e=h){this.cachePath=l(e,S)}async read(){return await C(this.cachePath)?await q(this.cachePath):{}}async write(e){await B(this.cachePath,e)}async updateOne(e,t){const a=await this.read();a[e]=t,await this.write(a)}async removeOne(e){const t=await this.read();e in t&&(delete t[e],await this.write(t))}async rebuild(e){await this.write(e)}async validate(){if(!await C(this.cachePath))return!1;const e=await this.read();for(const t of Object.values(e))if(!t.version||t.resolved===void 0||t.overridden===void 0)return!1;return!0}async clear(){await this.write({})}}const z=y(import.meta.url),{ensureDir:K,pathExists:m,readJSON:w}=z("fs-extra"),Q=U(T);class Y{constructor(e,t={}){this.pluginDir=e,this.registry=t.registry||"https://registry.npmjs.org",this.npmCommand=t.npmPath||"npm",this.cache=new X(e)}registry;npmCommand;cache;async executeNpmCommand(e){const t=`${this.npmCommand} ${e}`;try{return await Q(t)}catch(a){throw a.code==="ENOENT"?new Error(`npm command not found: ${this.npmCommand}. Please ensure npm is installed or specify a custom npm path using the 'npmPath' option.`):a}}async install(e,t){const{packageName:a,cachedInfo:n}=await this.resolvePackageName(e);if(p.exclude.test(a))throw new Error(`Cannot install core package: ${a}`);await K(this.pluginDir);let r;if(k(e))await this.installFromLocal(e),r=n;else{await this.installFromRegistry(e,t);const s=await this.getPackageInfo(e);if(!s)throw new Error(`Failed to get package info for ${e}, package.json may not exist`);r=s}await this.cache.updateOne(a,r)}async resolvePackageName(e){if(k(e)){const t=_(e),a=await w(l(t,"package.json")),n=a.name;if(typeof n!="string"||n.length===0)throw new Error(`Local package at ${t} must define a valid name in package.json`);return{packageName:n,cachedInfo:{version:a.version||"",resolved:"",overridden:!1,description:a.description||""}}}return{packageName:e}}async installFromLocal(e){const t=_(e);if(!await ue(t))throw new Error(`Local path does not exist or does not contain a valid package.json: ${t}`);const a=`install "${t}" --prefix "${this.pluginDir}"`;try{await this.executeNpmCommand(a)}catch(n){throw new Error(`Failed to install plugin from local path ${t}: ${n.message}`)}}async installFromRegistry(e,t){const a=t?`@${t}`:"",n=`install ${e}${a} --prefix "${this.pluginDir}" --registry ${this.registry}`;try{await this.executeNpmCommand(n)}catch(r){throw new Error(`Failed to install plugin ${e}: ${r.message}`)}}async uninstall(e){const t=l(this.pluginDir,"node_modules",e);if(!await m(t))throw new Error(`Plugin ${e} is not installed`);const a=`uninstall ${e} --prefix "${this.pluginDir}"`;try{await this.executeNpmCommand(a),await this.cache.removeOne(e)}catch(n){throw new Error(`Failed to uninstall plugin ${e}: ${n.message}`)}}async list(){const e=await this.cache.read();return Object.keys(e).length>0&&await this.cache.validate()?e:await this.rebuildCache()}async rebuildCache(){const e=`list --prefix "${this.pluginDir}" --depth=0 --json`;let t={};try{const{stdout:n}=await this.executeNpmCommand(e);t=JSON.parse(n).dependencies||{}}catch(n){if(n.stdout)try{t=JSON.parse(n.stdout).dependencies||{}}catch{t={}}}const a={};for(const[n,r]of Object.entries(t))p.exclude.test(n)||(r.resolved===void 0&&(r.resolved=""),r.description=await this.getPackageDescription(n),a[n]=r);return await this.cache.rebuild(a),a}async ensureCacheValid(){await this.cache.validate()||await this.rebuildCache()}async getPackageInfo(e){const t=l(this.pluginDir,"node_modules",e,"package.json");if(!await m(t))return null;try{const a=await w(t);return{version:a.version,resolved:"",overridden:!1,description:a.description||""}}catch{return null}}async getPackageDescription(e){const t=l(this.pluginDir,"node_modules",e,"package.json");if(!await m(t))return"";try{return(await w(t)).description||""}catch{return""}}async search(e){const t=`search ${e} --json --registry ${this.registry}`;try{const{stdout:a}=await this.executeNpmCommand(t);return JSON.parse(a)}catch(a){throw new Error(`Failed to search plugins: ${a.message}`)}}async isInstalled(e){const t=l(this.pluginDir,"node_modules",e);return await m(t)}async getInstalledVersion(e){const t=l(this.pluginDir,"node_modules",e,"package.json");if(!await m(t))return null;try{return(await w(t)).version}catch{return null}}}const Z=y(import.meta.url),{pathExists:ee,readJSON:te}=Z("fs-extra");class ae{constructor(e){this.pluginDir=e}cache=new Map;async load(e){if(this.cache.has(e))return this.cache.get(e);const t=l(this.pluginDir,"node_modules",e),a=l(t,"package.json");if(!await ee(a))throw new Error(`Plugin package not found: ${e}`);const n=await te(a),r=l(t,n.main||"index.js");try{const s=await import(V(r).href),o=s.default??s;if(typeof o!="function")throw new TypeError("Plugin must export a class or function");return this.cache.set(e,o),o}catch(s){throw new Error(`Failed to load plugin ${e}: ${s.message}`)}}unload(e){return this.cache.delete(e)}clearCache(){this.cache.clear()}getLoadedPlugins(){return Array.from(this.cache.keys())}}class ne{npmManager;pluginLoader;pluginDir;constructor(e,t={}){this.pluginDir=t.pluginDir??h,this.npmManager=new Y(this.pluginDir,{registry:t.registry,npmPath:t.npmPath}),this.pluginLoader=new ae(this.pluginDir)}async search(e){return await this.npmManager.search(e)}async install(e,t){await this.npmManager.install(e,t)}async uninstall(e){this.pluginLoader.unload(e),await this.npmManager.uninstall(e)}async list(){const e=await this.npmManager.list();return Object.entries(e).map(([t,a])=>({name:t,version:a.version,description:a.description,isLocal:k(a.resolved)}))}async update(e,t){await this.uninstall(e),await this.install(e,t)}async load(e){return await this.pluginLoader.load(e)}resolve(e,...t){return l(this.pluginDir,"node_modules",e,...t)}async ensureCacheValid(){await this.npmManager.ensureCacheValid()}}function L(i,e){return new ne(i,e)}const g=L("initx",{pluginDir:h}),p={plugin:/^(?:@initx-plugin\/|initx-plugin-)/,exclude:/@initx-plugin\/(?:core|utils)$/,relativePath:/^\.\.?(?:$|[/\\])/};async function ie(i){const e=c.resolve(i,"package.json");if(!u.existsSync(e))return[];const t=u.readJsonSync(e),{dependencies:a={},devDependencies:n={}}=t,r=[];return Object.keys({...a,...n}).forEach(s=>{if(!p.plugin.test(s)||p.exclude.test(s))return;const o=c.resolve(i,"node_modules",s);u.existsSync(o)&&r.push({name:s,version:t.version,description:t.description,root:o})}),r}async function re(){return ie(D.cwd())}async function b(){return(await g.list()).filter(i=>p.plugin.test(i.name)&&!p.exclude.test(i.name)).map(i=>({name:i.name,version:i.version,description:i.description,root:c.resolve(h,"node_modules",i.name)}))}async function se(){const i=await re(),e=i.map(({name:a})=>a),t=[...(await b()).filter(({name:a})=>!e.includes(a)),...i];return Promise.all(t.map(async({name:a,root:n})=>{const r=await g.load(a),s=u.readJsonSync(c.resolve(n,"package.json"));return{packageInfo:{root:n,name:s.name,version:s.version,description:s.description,author:s.author,homepage:s.homepage},instance:new r}}))}async function oe(i,{key:e,cliOptions:t},...a){const n=[];for(const r of i){const{instance:s,packageInfo:o}=r,F=await s.run({key:e,cliOptions:t,packageInfo:o,optionsList:Object.keys(t).filter(d=>t[d]===!0).map(d=>`--${d}`)},...a);n.push(...F.map(d=>({handler:d.handler,description:d.description,packageInfo:o})))}return n}function ce(i,e){return i.some(t=>typeof t=="string"||typeof t>"u"?t===e:t.test(e))}function le(i){return i.push("--prefix",h),i}function k(i){return!!(i.startsWith("file:")||c.isAbsolute(i)||p.relativePath.test(i))}function _(i,e=D.cwd()){if(i.startsWith("file:")){const t=i.slice(5);return c.isAbsolute(t)?t:c.resolve(e,t)}return c.resolve(e,i)}async function ue(i){try{const e=c.join(i,"package.json");return await u.pathExists(e)}catch{return!1}}class he{defaultStore;async run(e,...t){const a=J((n,...r)=>({handler:()=>this.executeHandle(e,n,...r),...n}));return(await Promise.all(a.match(this.rules,e.key,...t).map(async n=>n.verify&&!n.verify(e,...t)||n.optional&&!ce(n.optional,t[0])?!1:n))).filter(Boolean)}async executeHandle(e,t,...a){const n=N(e.packageInfo.name,this.defaultStore);await this.handle({...e,rule:t,store:n},...a),O(e.packageInfo.name)}}const M="@initx-plugin/manager";async function pe(){try{return(await g.list()).some(i=>i.name===M)}catch{return!1}}async function de(){await g.install(M)}export{v as INITX_DIR,he as InitxPlugin,H as NODE_MODULES_DIR,S as PLUGINS_CACHE_FILE,h as PLUGIN_DIR,x as STORE_DIR,j as STORE_FILE_NAME,L as createNpmPlugin,N as createStore,pe as detectManager,b as fetchPlugins,de as installManager,se as loadPlugins,oe as matchPlugins,g as pluginSystem,le as withPluginPrefix,O as writeStore};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@initx-plugin/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"description": "core module for initx plugins",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/initx-collective/initx#readme",
|
|
@@ -23,11 +23,10 @@
|
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"defu": "^6.1.4",
|
|
26
|
-
"fs-extra": "^11.3.
|
|
26
|
+
"fs-extra": "^11.3.4",
|
|
27
27
|
"matchinitx": "^0.0.4",
|
|
28
|
-
"npm-plugin-kit": "^0.3.1",
|
|
29
28
|
"pathe": "^2.0.3",
|
|
30
|
-
"@initx-plugin/utils": "0.
|
|
29
|
+
"@initx-plugin/utils": "0.3.0"
|
|
31
30
|
},
|
|
32
31
|
"devDependencies": {
|
|
33
32
|
"@types/fs-extra": "^11.0.4"
|