@longzai-intelligence-records/config 0.0.4 → 0.0.6

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.ts CHANGED
@@ -36,14 +36,18 @@ type ScopeEntryInput = z.input<typeof scopeSchema>;
36
36
  type ScopeEntry = z.output<typeof scopeSchema>;
37
37
  /**
38
38
  * lzi-records 配置根 schema
39
+ *
40
+ * @remarks
41
+ * scopes 与 lint 均可整体省略——零参 `defineConfig()` 书写形态下由解析层
42
+ * 落定缺省单 scope 与空基线
39
43
  */
40
44
  declare const lziRecordsConfigSchema: z.ZodObject<{
41
- scopes: z.ZodArray<z.ZodObject<{
45
+ scopes: z.ZodDefault<z.ZodArray<z.ZodObject<{
42
46
  key: z.ZodString;
43
47
  title: z.ZodString;
44
48
  paths: z.ZodArray<z.ZodString>;
45
49
  registryDir: z.ZodString;
46
- }, z.core.$strip>>;
50
+ }, z.core.$strip>>>;
47
51
  lint: z.ZodDefault<z.ZodObject<{
48
52
  baseline: z.ZodDefault<z.ZodArray<z.ZodObject<{
49
53
  file: z.ZodString;
@@ -79,10 +83,10 @@ declare function parseLziRecordsConfig(input: unknown): LziRecordsConfig;
79
83
  * 类型透传,与 lzi-dev.config.ts / oxfmt.config.ts 等 workspace 配置惯例同构:
80
84
  * 不在工厂层做任何合并——默认值由本模块 schema 解析层统一落定。
81
85
  *
82
- * @param config - 配置对象(可省略各默认值)
86
+ * @param config - 配置对象,可整体省略,零参形态由解析层落定全部缺省
83
87
  * @returns 原样返回传入的配置对象
84
88
  */
85
- declare function defineConfig(config: LziRecordsConfigInput): LziRecordsConfigInput;
89
+ declare function defineConfig(config?: LziRecordsConfigInput): LziRecordsConfigInput;
86
90
  //#endregion
87
91
  //#region src/loader/load-records-config.utils.d.ts
88
92
  /**
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import"./rolldown-runtime-BqT_7tdF.js";import{loadUnifiedConfig as e}from"@longzai-intelligence-shared-config/core";import{existsSync as t}from"node:fs";import{resolve as n}from"node:path";import{pathToFileURL as r}from"node:url";import*as i from"zod";const a=/^[a-z][a-z0-9-]*$/,o=`docs/records`,s=i.object({file:i.string().min(1),rule:i.string().min(1),reason:i.string().min(1)}),c=i.object({key:i.string().regex(a),title:i.string().min(1),paths:i.array(i.string().min(1)).min(1),registryDir:i.string().min(1)}),l=i.object({baseline:i.array(s).default([])}),u=i.object({scopes:i.array(c).min(1),lint:l.default({baseline:[]})});function d(e){let t=u.safeParse(e);if(!t.success){let e=t.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`;`);throw Error(`lzi-records 配置形态非法:${e}`)}return t.data}function f(e){return e}function p(e){let t=[],n=/* @__PURE__ */ new Map;for(let t of e.scopes)n.set(t.key,(n.get(t.key)??0)+1);for(let[e,r]of n)r>1&&t.push(`scopes: key「${e}」重复登记 ${r} 次(scope key 必须唯一)`);let r=/* @__PURE__ */ new Map;for(let t of e.scopes){let e=r.get(t.registryDir)??[];e.push(t.key),r.set(t.registryDir,e)}for(let[e,n]of r)n.length>1&&t.push(`scopes: 注册表目录「${e}」被 ${n.join(`、`)} 共用(一目录一 scope,否则取号与 lint 歧义)`);for(let n of e.lint.baseline)e.scopes.some(e=>n.file===e.registryDir||n.file.startsWith(`${e.registryDir}/`))||t.push(`lint.baseline: 豁免条目「${n.file}」(规则 ${n.rule})不在任何 scope 注册表目录内`);if(t.length>0)throw Error(`lzi-records 配置跨条目语义非法:${t.join(`;`)}`);return e}function m(e,t){try{return p(d(e))}catch(e){let n=e instanceof Error?e.message:String(e);throw Error(`${n}(配置文件:${t})`)}}async function h(r={}){if(r.configPath!==void 0){let e=n(r.cwd??process.cwd(),r.configPath);return t(e)?{ok:!0,config:m(await g(e),e),configFilePath:e,source:`explicit`}:{ok:!1,reason:`未找到配置文件:${e}`}}let i=await e({standaloneFile:`lzi-records.config.ts`,unifiedField:`records`,cwd:r.cwd});return i.success?{ok:!0,config:m(i.config,i.configFilePath),configFilePath:i.configFilePath,source:i.source}:{ok:!1,reason:`未找到 lzi-records.config.ts(且 lzi.config.ts 无 records 字段)——可先执行 lzi-records init`}}async function g(e){let t=await import(r(e).href);if(t.default===void 0)throw Error(`配置文件缺少 default 导出:${e}`);return t.default}function _(e){return[`import { defineConfig } from '@longzai-intelligence-records/config';`,``,`/**`,` * lzi-records 配置`,` */`,`export default defineConfig({`,` scopes: [`,` { key: '${e.scopeKey}', title: '${e.scopeTitle}', paths: ['.'], registryDir: '${e.registryDir}' },`,` ],`,`});`,``].join(`
1
+ import"./rolldown-runtime-BqT_7tdF.js";import{loadUnifiedConfig as e}from"@longzai-intelligence-shared-config/core";import{existsSync as t}from"node:fs";import{resolve as n}from"node:path";import{pathToFileURL as r}from"node:url";import*as i from"zod";const a=/^[a-z][a-z0-9-]*$/,o=`docs/records`,s=i.object({file:i.string().min(1),rule:i.string().min(1),reason:i.string().min(1)}),c=i.object({key:i.string().regex(a),title:i.string().min(1),paths:i.array(i.string().min(1)).min(1),registryDir:i.string().min(1)}),l=i.object({baseline:i.array(s).default([])}),u=i.object({scopes:i.array(c).min(1).default([{key:`root`,title:`全局`,paths:[`.`],registryDir:o}]),lint:l.default({baseline:[]})});function d(e){let t=u.safeParse(e);if(!t.success){let e=t.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`;`);throw Error(`lzi-records 配置形态非法:${e}`)}return t.data}function f(e={}){return e}function p(e){let t=[],n=/* @__PURE__ */ new Map;for(let t of e.scopes)n.set(t.key,(n.get(t.key)??0)+1);for(let[e,r]of n)r>1&&t.push(`scopes: key「${e}」重复登记 ${r} 次(scope key 必须唯一)`);let r=/* @__PURE__ */ new Map;for(let t of e.scopes){let e=r.get(t.registryDir)??[];e.push(t.key),r.set(t.registryDir,e)}for(let[e,n]of r)n.length>1&&t.push(`scopes: 注册表目录「${e}」被 ${n.join(`、`)} 共用(一目录一 scope,否则取号与 lint 歧义)`);for(let n of e.lint.baseline)e.scopes.some(e=>n.file===e.registryDir||n.file.startsWith(`${e.registryDir}/`))||t.push(`lint.baseline: 豁免条目「${n.file}」(规则 ${n.rule})不在任何 scope 注册表目录内`);if(t.length>0)throw Error(`lzi-records 配置跨条目语义非法:${t.join(`;`)}`);return e}function m(e,t){try{return p(d(e))}catch(e){let n=e instanceof Error?e.message:String(e);throw Error(`${n}(配置文件:${t})`)}}async function h(r={}){if(r.configPath!==void 0){let e=n(r.cwd??process.cwd(),r.configPath);return t(e)?{ok:!0,config:m(await g(e),e),configFilePath:e,source:`explicit`}:{ok:!1,reason:`未找到配置文件:${e}`}}let i=await e({standaloneFile:`lzi-records.config.ts`,unifiedField:`records`,cwd:r.cwd});return i.success?{ok:!0,config:m(i.config,i.configFilePath),configFilePath:i.configFilePath,source:i.source}:{ok:!1,reason:`未找到 lzi-records.config.ts(且 lzi.config.ts 无 records 字段)——可先执行 lzi-records init`}}async function g(e){let t=await import(r(e).href);if(t.default===void 0)throw Error(`配置文件缺少 default 导出:${e}`);return t.default}function _(e){return[`import { defineConfig } from '@longzai-intelligence-records/config';`,``,`/**`,` * lzi-records 配置`,` */`,`export default defineConfig({`,` scopes: [`,` { key: '${e.scopeKey}', title: '${e.scopeTitle}', paths: ['.'], registryDir: '${e.registryDir}' },`,` ],`,`});`,``].join(`
2
2
  `)}export{o as DEFAULT_REGISTRY_DIR,a as SCOPE_KEY_PATTERN,s as baselineEntrySchema,f as defineConfig,g as importConfigModule,h as loadLziRecordsConfig,u as lziRecordsConfigSchema,d as parseLziRecordsConfig,_ as renderConfigScaffold,p as validateLziRecordsConfig};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@longzai-intelligence-records/config",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "Longzai Intelligence Records 配置",
5
5
  "keywords": [
6
6
  "config",