@kimesh/auto-import 0.2.21 → 0.2.22-nightly.20260127153128

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  import MagicString from "magic-string";
2
- import { Plugin, PluginOption } from "vite";
3
2
  import { ComponentResolver } from "unplugin-vue-components";
3
+ import { Plugin, PluginOption } from "vite";
4
4
 
5
5
  //#region src/types.d.ts
6
6
  /**
@@ -189,6 +189,47 @@ interface ResolvedLayerInfo {
189
189
  /** Is this the host app? */
190
190
  isApp: boolean;
191
191
  }
192
+ /**
193
+ * Minimal Kimesh context interface for auto-import
194
+ * This avoids circular dependency with @kimesh/kit
195
+ */
196
+ interface KimeshContextForAutoImport {
197
+ _registries: {
198
+ /** Components registered via addComponent() */components: Array<{
199
+ name: string;
200
+ filePath: string;
201
+ export?: string;
202
+ prefix?: string;
203
+ priority?: number;
204
+ layer?: string;
205
+ }>; /** Component directories registered via addComponentsDir() */
206
+ componentsDirs: Array<{
207
+ path: string;
208
+ prefix?: string;
209
+ pattern?: string | string[];
210
+ extensions?: string[];
211
+ deep?: boolean;
212
+ }>; /** Component resolvers registered via addComponentResolver() */
213
+ componentResolvers: ComponentResolver[]; /** Imports registered via addImports() */
214
+ imports: Array<{
215
+ name: string;
216
+ as?: string;
217
+ from: string;
218
+ type?: boolean;
219
+ priority?: number;
220
+ layer?: string;
221
+ }>; /** Import directories registered via addImportsDir() */
222
+ importsDirs: Array<{
223
+ path: string;
224
+ pattern?: string | string[];
225
+ }>; /** Import presets registered via addImportsPreset() */
226
+ importsPresets: Array<{
227
+ from: string;
228
+ imports: string[];
229
+ type?: boolean;
230
+ }>;
231
+ };
232
+ }
192
233
  /**
193
234
  * Vite plugin options
194
235
  */
@@ -201,6 +242,12 @@ interface AutoImportPluginOptions {
201
242
  layers?: ResolvedLayerInfo[];
202
243
  /** Resolved layers getter (lazy evaluation for async resolution) */
203
244
  getLayers?: () => ResolvedLayerInfo[];
245
+ /**
246
+ * Kimesh context getter for accessing module-registered imports and components.
247
+ * This enables modules to contribute auto-imports via kit's addComponent(),
248
+ * addComponentResolver(), and addImports() functions.
249
+ */
250
+ getKimesh?: () => KimeshContextForAutoImport | null;
204
251
  /** Include patterns */
205
252
  include?: string[];
206
253
  /** Exclude patterns */
@@ -356,6 +403,11 @@ declare function createKimeshResolver(options: KimeshResolverOptions): Component
356
403
  //#region src/template/plugin.d.ts
357
404
  interface TemplatePluginOptions {
358
405
  getRegistry: () => ImportRegistry | null;
406
+ /**
407
+ * Get external resolvers from kimesh registries.
408
+ * These are resolvers added via addComponentResolver() in modules.
409
+ */
410
+ getExternalResolvers?: () => ComponentResolver[];
359
411
  dts?: string | false;
360
412
  debug?: boolean;
361
413
  }
@@ -413,4 +465,4 @@ declare function buildImportRegistry(sources: LayerAutoImportSource[]): Promise<
413
465
  */
414
466
  declare function scanExports(filePath: string): Promise<ScanResult>;
415
467
  //#endregion
416
- export { type AutoImportConfig, type AutoImportPluginOptions, type ConflictReport, ConflictResolver, type ExportInfo, type ImportEntry, ImportInjector, type ImportPreset, type ImportRegistry, type InjectionResult, type KimeshResolverOptions, type LayerAutoImportSource, OxcExportScanner, ReferenceDetector, RegistryBuilder, type ResolvedLayerInfo, type ScanResult, type ScriptPluginOptions, type TemplatePluginOptions, type TransformResult, type UnresolvedReference, autoImportPlugin, autoImportPlugin as default, buildImportRegistry, builtinPresets, createTemplatePlugin as createComponentsPlugin, createTemplatePlugin, createKimeshResolver, createScriptPlugin, generateDtsFiles as generateDts, generateDtsFiles, generateSourceDts, kimeshAutoImport, kimeshPreset, normalizePreset, piniaPreset, resolvePresets, scanExports, tanstackQueryPreset, vuePreset, vueRouterPreset };
468
+ export { type AutoImportConfig, type AutoImportPluginOptions, type ConflictReport, ConflictResolver, type ExportInfo, type ImportEntry, ImportInjector, type ImportPreset, type ImportRegistry, type InjectionResult, type KimeshContextForAutoImport, type KimeshResolverOptions, type LayerAutoImportSource, OxcExportScanner, ReferenceDetector, RegistryBuilder, type ResolvedLayerInfo, type ScanResult, type ScriptPluginOptions, type TemplatePluginOptions, type TransformResult, type UnresolvedReference, autoImportPlugin, autoImportPlugin as default, buildImportRegistry, builtinPresets, createTemplatePlugin as createComponentsPlugin, createTemplatePlugin, createKimeshResolver, createScriptPlugin, generateDtsFiles as generateDts, generateDtsFiles, generateSourceDts, kimeshAutoImport, kimeshPreset, normalizePreset, piniaPreset, resolvePresets, scanExports, tanstackQueryPreset, vuePreset, vueRouterPreset };
package/dist/index.mjs CHANGED
@@ -863,12 +863,35 @@ function resolveDtsPath(dts) {
863
863
  return true;
864
864
  }
865
865
  function createTemplatePlugin(options) {
866
- const { getRegistry, dts, debug = false } = options;
866
+ const { getRegistry, getExternalResolvers, dts, debug = false } = options;
867
+ const kimeshResolver = createKimeshResolver({
868
+ getRegistry,
869
+ debug
870
+ });
871
+ /**
872
+ * Create a lazy resolver that wraps external resolvers from kimesh._registries.componentResolvers.
873
+ * This is needed because external resolvers are registered by modules during their setup() phase,
874
+ * which happens AFTER the Vite plugins are created. By deferring the resolver evaluation to
875
+ * transform time, we ensure external resolvers are available when components are being resolved.
876
+ */
877
+ /**
878
+ * Invoke a ComponentResolver which can be either a function or an object with resolve method.
879
+ */
880
+ const invokeResolver = (resolver, name) => {
881
+ if (typeof resolver === "function") return resolver(name);
882
+ return resolver.resolve(name);
883
+ };
867
884
  const basePlugin = Components({
868
- resolvers: [createKimeshResolver({
869
- getRegistry,
870
- debug
871
- })],
885
+ resolvers: [kimeshResolver, {
886
+ type: "component",
887
+ resolve: (name) => {
888
+ const externalResolvers = getExternalResolvers?.() ?? [];
889
+ for (const resolver of externalResolvers) {
890
+ const result = invokeResolver(resolver, name);
891
+ if (result) return result;
892
+ }
893
+ }
894
+ }],
872
895
  dirs: [],
873
896
  dts: resolveDtsPath(dts),
874
897
  include: [/\.vue$/, /\.vue\?vue/],
@@ -945,7 +968,7 @@ function resolveDtsDirectory(dts) {
945
968
  return ".kimesh";
946
969
  }
947
970
  function autoImportPlugin(options) {
948
- const { dts = ".kimesh", debug = false } = options;
971
+ const { dts = ".kimesh", debug = false, getKimesh } = options;
949
972
  let sharedRegistry = null;
950
973
  return [createScriptPlugin({
951
974
  ...options,
@@ -954,6 +977,7 @@ function autoImportPlugin(options) {
954
977
  }
955
978
  }), createTemplatePlugin({
956
979
  getRegistry: () => sharedRegistry,
980
+ getExternalResolvers: () => getKimesh?.()?._registries.componentResolvers ?? [],
957
981
  dts: resolveDtsDirectory(dts),
958
982
  debug
959
983
  })];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kimesh/auto-import",
3
- "version": "0.2.21",
3
+ "version": "0.2.22-nightly.20260127153128",
4
4
  "description": "OXC-powered auto-import system for Kimesh framework with layer support",
5
5
  "repository": {
6
6
  "type": "git",