@longzai-intelligence-scripts/config 0.0.10 → 0.0.12
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 +11 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -19,6 +19,13 @@ type ScriptSeverity = 'required' | 'recommended';
|
|
|
19
19
|
* - `package` 仓内子包档案
|
|
20
20
|
*/
|
|
21
21
|
type ScriptsProfileKey = 'root' | 'root-engineering' | 'package';
|
|
22
|
+
/**
|
|
23
|
+
* 单条标准脚本的值形态判据来源
|
|
24
|
+
*
|
|
25
|
+
* - `definition` 固定标准比对,与 `definition` 全等或命中 `alternatives` 即合规
|
|
26
|
+
* - `preset` 委托单元 oxlint 预设注入的允许清单判定(ADR 0220/0221 判据面), 预设判据缺位时回退固定标准比对
|
|
27
|
+
*/
|
|
28
|
+
type ScriptJudgeBy = 'definition' | 'preset';
|
|
22
29
|
/**
|
|
23
30
|
* 单条标准脚本注册条目
|
|
24
31
|
*/
|
|
@@ -43,6 +50,10 @@ type ScriptEntry = {
|
|
|
43
50
|
* 允许的等价命令行列表,命中任一即视为合规
|
|
44
51
|
*/
|
|
45
52
|
alternatives?: string[];
|
|
53
|
+
/**
|
|
54
|
+
* 值形态判据来源,缺省 `definition`,见 `ScriptJudgeBy`
|
|
55
|
+
*/
|
|
56
|
+
judgeBy?: ScriptJudgeBy;
|
|
46
57
|
};
|
|
47
58
|
/**
|
|
48
59
|
* 兼伴配置文件注册条目
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{existsSync as e}from"node:fs";import{dirname as t,isAbsolute as n,join as r,resolve as i}from"node:path";const a=(e={})=>e,o=e=>e,s=e=>e,c=e=>e,l=e=>e,u=[`root`,`root-engineering`,`package`],d=a=>{let o=n(a)?a:i(process.cwd(),a);for(;o!==`/`;){let n=r(o,`lzi-scripts.config.ts`);if(e(n))return n;o=t(o)}return null},f=e=>typeof e==`object`&&!!e&&!Array.isArray(e),p=e=>typeof e==`string`&&u.includes(e),m=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`),h=e=>{if(!f(e))return{};let t={};typeof e.registryRoot==`string`&&(t.registryRoot=e.registryRoot),p(e.profile)&&(t.profile=e.profile);let n=[];if(Array.isArray(e.exempt))for(let t of e.exempt)f(t)&&m(t.scripts)&&typeof t.reason==`string`&&t.reason.length>0&&n.push({scripts:t.scripts,reason:t.reason});n.length>0&&(t.exempt=n);let r=[];if(Array.isArray(e.extraAlternatives))for(let t of e.extraAlternatives)f(t)&&typeof t.script==`string`&&typeof t.definition==`string`&&r.push({script:t.script,definition:t.definition});return r.length>0&&(t.extraAlternatives=r),t},g=async(e=process.cwd())=>{let t=d(e);if(t===null)return{config:{},configPath:null};try{let e=await import(t),n=typeof e==`object`&&e&&`default`in e?e.default:e;if(typeof n!=`object`||!n||Array.isArray(n))throw Error(`配置 default export 须为对象: ${t}`);return{config:h(n),configPath:t}}catch(e){throw e instanceof Error&&e.message.startsWith(`配置 default export`)?e:Error(`加载配置文件失败: ${t} ${e instanceof Error?e.message:String(e)}`)}},_=r(`registry`,`index.ts`),v=e=>typeof e==`string`,y=e=>typeof e==`object`&&!!e&&!Array.isArray(e),b=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`),x=e=>e===`required`||e===`recommended`,S=e=>{if(!y(e)||!v(e.name)||!v(e.definition)||!v(e.family)||!x(e.severity)||e.alternatives!==void 0&&!b(e.alternatives))return null;let t={name:e.name,definition:e.definition,severity:e.severity,family:e.family};return e.alternatives!==void 0&&(t.alternatives=e.alternatives),t},
|
|
1
|
+
import{existsSync as e}from"node:fs";import{dirname as t,isAbsolute as n,join as r,resolve as i}from"node:path";const a=(e={})=>e,o=e=>e,s=e=>e,c=e=>e,l=e=>e,u=[`root`,`root-engineering`,`package`],d=a=>{let o=n(a)?a:i(process.cwd(),a);for(;o!==`/`;){let n=r(o,`lzi-scripts.config.ts`);if(e(n))return n;o=t(o)}return null},f=e=>typeof e==`object`&&!!e&&!Array.isArray(e),p=e=>typeof e==`string`&&u.includes(e),m=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`),h=e=>{if(!f(e))return{};let t={};typeof e.registryRoot==`string`&&(t.registryRoot=e.registryRoot),p(e.profile)&&(t.profile=e.profile);let n=[];if(Array.isArray(e.exempt))for(let t of e.exempt)f(t)&&m(t.scripts)&&typeof t.reason==`string`&&t.reason.length>0&&n.push({scripts:t.scripts,reason:t.reason});n.length>0&&(t.exempt=n);let r=[];if(Array.isArray(e.extraAlternatives))for(let t of e.extraAlternatives)f(t)&&typeof t.script==`string`&&typeof t.definition==`string`&&r.push({script:t.script,definition:t.definition});return r.length>0&&(t.extraAlternatives=r),t},g=async(e=process.cwd())=>{let t=d(e);if(t===null)return{config:{},configPath:null};try{let e=await import(t),n=typeof e==`object`&&e&&`default`in e?e.default:e;if(typeof n!=`object`||!n||Array.isArray(n))throw Error(`配置 default export 须为对象: ${t}`);return{config:h(n),configPath:t}}catch(e){throw e instanceof Error&&e.message.startsWith(`配置 default export`)?e:Error(`加载配置文件失败: ${t} ${e instanceof Error?e.message:String(e)}`)}},_=r(`registry`,`index.ts`),v=e=>typeof e==`string`,y=e=>typeof e==`object`&&!!e&&!Array.isArray(e),b=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`),x=e=>e===`required`||e===`recommended`,S=e=>e===`definition`||e===`preset`,C=e=>{if(!y(e)||!v(e.name)||!v(e.definition)||!v(e.family)||!x(e.severity)||e.alternatives!==void 0&&!b(e.alternatives))return null;let t={name:e.name,definition:e.definition,severity:e.severity,family:e.family};return e.alternatives!==void 0&&(t.alternatives=e.alternatives),S(e.judgeBy)&&(t.judgeBy=e.judgeBy),t},w=e=>{if(!y(e)||e.formatVersion!==1)return null;let t={};if(y(e.profiles))for(let[n,r]of Object.entries(e.profiles)){if(n!==`root`&&n!==`root-engineering`&&n!==`package`)continue;let e=[];if(Array.isArray(r))for(let t of r){let n=C(t);n!==null&&e.push(n)}t[n]=e}let n=[];if(Array.isArray(e.companions))for(let t of e.companions)y(t)&&v(t.path)&&v(t.reason)&&x(t.severity)&&n.push({path:t.path,severity:t.severity,reason:t.reason});let r=[];if(Array.isArray(e.legacyMappings))for(let t of e.legacyMappings)y(t)&&v(t.legacyPrefix)&&v(t.targetScript)&&v(t.targetPackage)&&v(t.note)&&r.push({legacyPrefix:t.legacyPrefix,targetScript:t.targetScript,targetPackage:t.targetPackage,note:t.note});return{formatVersion:1,profiles:t,companions:n,legacyMappings:r}},T=async t=>{let a=n(t)?t:i(process.cwd(),t),o=r(a,_);if(!e(o))return null;try{let e=await import(o),t=typeof e==`object`&&e&&`default`in e?e.default:e;return w(t)}catch{return null}},E=async e=>{if(e.explicit!==void 0&&e.explicit!==``){let t=await T(e.explicit);return t===null?null:{data:t,root:i(process.cwd(),e.explicit),source:`explicit`}}if(e.configRoot!==void 0&&e.configRoot!==``){let t=await T(i(e.repoDir,e.configRoot));if(t!==null)return{data:t,root:i(e.repoDir,e.configRoot),source:`config`}}let n=process.env.LZI_SCRIPTS_REGISTRY_ROOT;if(n!==void 0&&n!==``){let e=await T(n);if(e!==null)return{data:e,root:i(n),source:`env`}}let a=r(t(e.repoDir),`longzai-intelligence-scripts-registry`),o=await T(a);return o===null?null:{data:o,root:a,source:`sibling`}};export{w as asRegistryData,c as defineCompanionEntries,a as defineConfig,s as defineLegacyMappings,o as defineProfile,l as defineRegistry,d as findScriptsConfigFile,g as loadScriptsConfig,E as resolveRegistry};
|