@byteluck-fe/model-driven-core 7.1.0-beta.0 → 7.1.0-beta.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.
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ## 纯契约子入口
8
8
 
9
- `@byteluck-fe/model-driven-core/contracts` 只导出版本、诊断和页面模型类型,不引用 Vue、DOM 或接口。Designer、Runtime 与 FDE 应从这里共享 `HeadlessControlNode`、`CompilePageModelInput/Result` 和 build-info 契约;版本不一致时由编译入口返回阻断诊断。
9
+ `@byteluck-fe/model-driven-core/contracts` 只导出版本、诊断和页面模型类型,不引用 Vue、DOM 或接口。Designer、Runtime 与 FDE 应从这里共享 `HeadlessControlNode`、`CompilePageModelInput/Result`、`ValidateSavedPageModelChangeInput` 和 build-info 契约;版本不一致时由编译或页面差分入口返回始终阻断的兼容性诊断。
10
10
 
11
11
  `HeadlessRuntimeOptions.locale` 接受任意非空字符串;调用方可提供当前语言的扁平 `localeMessages` 或同步 `resolveLocaleMessage`,公共层不会读取全局 i18n 或访问接口。
12
12
 
@@ -1 +1 @@
1
- "use strict";var n=Object.defineProperty;var E=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable;var _=(t,e,o)=>e in t?n(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,r=(t,e)=>{for(var o in e||(e={}))O.call(e,o)&&_(t,o,e[o]);if(E)for(var o of E(e))s.call(e,o)&&_(t,o,e[o]);return t};Object.defineProperty(exports,"__esModule",{value:!0});const MODEL_DRIVEN_PACKAGE_VERSION="7.1.0-beta.0",CURRENT_PAGE_SCHEMA_VERSION="3.16",HEADLESS_COMPILER_CONTRACT_VERSION="model-driven.headless.v1",CONTROL_CATALOG_SCHEMA_VERSION="model-driven.control-catalog.v1",MODEL_DRIVEN_BUILD_INFO=Object.freeze({packageVersion:MODEL_DRIVEN_PACKAGE_VERSION,pageSchemaVersion:CURRENT_PAGE_SCHEMA_VERSION,compilerContractVersion:HEADLESS_COMPILER_CONTRACT_VERSION,catalogSchemaVersion:CONTROL_CATALOG_SCHEMA_VERSION});function getModelDrivenBuildInfo(){return r({},MODEL_DRIVEN_BUILD_INFO)}function createModelDrivenDiagnostic(t){return r({},t)}exports.CONTROL_CATALOG_SCHEMA_VERSION=CONTROL_CATALOG_SCHEMA_VERSION,exports.CURRENT_PAGE_SCHEMA_VERSION=CURRENT_PAGE_SCHEMA_VERSION,exports.HEADLESS_COMPILER_CONTRACT_VERSION=HEADLESS_COMPILER_CONTRACT_VERSION,exports.MODEL_DRIVEN_BUILD_INFO=MODEL_DRIVEN_BUILD_INFO,exports.MODEL_DRIVEN_PACKAGE_VERSION=MODEL_DRIVEN_PACKAGE_VERSION,exports.createModelDrivenDiagnostic=createModelDrivenDiagnostic,exports.getModelDrivenBuildInfo=getModelDrivenBuildInfo;
1
+ "use strict";var n=Object.defineProperty;var E=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable;var _=(t,e,o)=>e in t?n(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,r=(t,e)=>{for(var o in e||(e={}))O.call(e,o)&&_(t,o,e[o]);if(E)for(var o of E(e))s.call(e,o)&&_(t,o,e[o]);return t};Object.defineProperty(exports,"__esModule",{value:!0});const MODEL_DRIVEN_PACKAGE_VERSION="7.1.0-beta.2",CURRENT_PAGE_SCHEMA_VERSION="3.16",HEADLESS_COMPILER_CONTRACT_VERSION="model-driven.headless.v2",CONTROL_CATALOG_SCHEMA_VERSION="model-driven.control-catalog.v1",MODEL_DRIVEN_BUILD_INFO=Object.freeze({packageVersion:MODEL_DRIVEN_PACKAGE_VERSION,pageSchemaVersion:CURRENT_PAGE_SCHEMA_VERSION,compilerContractVersion:HEADLESS_COMPILER_CONTRACT_VERSION,catalogSchemaVersion:CONTROL_CATALOG_SCHEMA_VERSION});function getModelDrivenBuildInfo(){return r({},MODEL_DRIVEN_BUILD_INFO)}function createModelDrivenDiagnostic(t){return r({},t)}exports.CONTROL_CATALOG_SCHEMA_VERSION=CONTROL_CATALOG_SCHEMA_VERSION,exports.CURRENT_PAGE_SCHEMA_VERSION=CURRENT_PAGE_SCHEMA_VERSION,exports.HEADLESS_COMPILER_CONTRACT_VERSION=HEADLESS_COMPILER_CONTRACT_VERSION,exports.MODEL_DRIVEN_BUILD_INFO=MODEL_DRIVEN_BUILD_INFO,exports.MODEL_DRIVEN_PACKAGE_VERSION=MODEL_DRIVEN_PACKAGE_VERSION,exports.createModelDrivenDiagnostic=createModelDrivenDiagnostic,exports.getModelDrivenBuildInfo=getModelDrivenBuildInfo;
@@ -1 +1 @@
1
- var s=Object.defineProperty;var c=Object.getOwnPropertySymbols;var R=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;var r=(n,e,o)=>e in n?s(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o,t=(n,e)=>{for(var o in e||(e={}))R.call(e,o)&&r(n,o,e[o]);if(c)for(var o of c(e))l.call(e,o)&&r(n,o,e[o]);return n};const E="7.1.0-beta.0",_="3.16",a="model-driven.headless.v1",i="model-driven.control-catalog.v1",O=Object.freeze({packageVersion:E,pageSchemaVersion:_,compilerContractVersion:a,catalogSchemaVersion:i});function C(){return t({},O)}function I(n){return t({},n)}export{i as CONTROL_CATALOG_SCHEMA_VERSION,_ as CURRENT_PAGE_SCHEMA_VERSION,a as HEADLESS_COMPILER_CONTRACT_VERSION,O as MODEL_DRIVEN_BUILD_INFO,E as MODEL_DRIVEN_PACKAGE_VERSION,I as createModelDrivenDiagnostic,C as getModelDrivenBuildInfo};
1
+ var s=Object.defineProperty;var c=Object.getOwnPropertySymbols;var R=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;var r=(n,e,o)=>e in n?s(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o,t=(n,e)=>{for(var o in e||(e={}))R.call(e,o)&&r(n,o,e[o]);if(c)for(var o of c(e))l.call(e,o)&&r(n,o,e[o]);return n};const E="7.1.0-beta.2",_="3.16",a="model-driven.headless.v2",i="model-driven.control-catalog.v1",O=Object.freeze({packageVersion:E,pageSchemaVersion:_,compilerContractVersion:a,catalogSchemaVersion:i});function C(){return t({},O)}function I(n){return t({},n)}export{i as CONTROL_CATALOG_SCHEMA_VERSION,_ as CURRENT_PAGE_SCHEMA_VERSION,a as HEADLESS_COMPILER_CONTRACT_VERSION,O as MODEL_DRIVEN_BUILD_INFO,E as MODEL_DRIVEN_PACKAGE_VERSION,I as createModelDrivenDiagnostic,C as getModelDrivenBuildInfo};
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 注意:npm 包版本、页面持久化 schema 版本和纯编译契约版本是三套独立版本,
5
5
  * 不能再通过其中任意一个推断另外两个。
6
- */ export var MODEL_DRIVEN_PACKAGE_VERSION = '7.1.0-beta.0';
6
+ */ export var MODEL_DRIVEN_PACKAGE_VERSION = '7.1.0-beta.2';
7
7
  /** 当前设计器写入的页面持久化 schema 版本。 */ export var CURRENT_PAGE_SCHEMA_VERSION = '3.16';
8
- /** Node 纯编译入口的契约版本。 */ export var HEADLESS_COMPILER_CONTRACT_VERSION = 'model-driven.headless.v1';
8
+ /** Node 纯编译入口的契约版本。 */ export var HEADLESS_COMPILER_CONTRACT_VERSION = 'model-driven.headless.v2';
9
9
  /** 静态控件目录的文档结构版本。 */ export var CONTROL_CATALOG_SCHEMA_VERSION = 'model-driven.control-catalog.v1';
@@ -1,4 +1,9 @@
1
1
  export type ModelDrivenDiagnosticSeverity = 'error' | 'warning' | 'info';
2
+ /**
3
+ * always 用于版本、契约等运行环境错误;页面 Patch 不得把它们当作历史问题放行。
4
+ * 页面结构规则默认使用 when-introduced,由基线/候选差分决定是否阻断。
5
+ */
6
+ export type ModelDrivenDiagnosticBlockingPolicy = 'always' | 'when-introduced';
2
7
  /**
3
8
  * 纯编译层只返回稳定、短小的诊断信息,不携带完整页面或控件 props,
4
9
  * 便于 FDE 将结果写入日志或工具返回值而不放大模型上下文。
@@ -7,8 +12,11 @@ export interface ModelDrivenDiagnostic {
7
12
  code: string;
8
13
  message: string;
9
14
  severity: ModelDrivenDiagnosticSeverity;
15
+ blockingPolicy?: ModelDrivenDiagnosticBlockingPolicy;
10
16
  path?: string;
11
17
  controlId?: string;
12
18
  controlType?: string;
19
+ /** 规则同时依赖父容器时记录稳定作用域,避免控件移动后被误判为同一个问题。 */
20
+ scopeControlId?: string;
13
21
  }
14
22
  export declare function createModelDrivenDiagnostic(diagnostic: ModelDrivenDiagnostic): ModelDrivenDiagnostic;
@@ -70,3 +70,34 @@ export interface CompilePageModelResult {
70
70
  diagnostics: ModelDrivenDiagnostic[];
71
71
  buildInfo: ModelDrivenBuildInfo;
72
72
  }
73
+ export type ModelDrivenPageChangeDiagnosticOrigin = 'compatibility' | 'inherited' | 'introduced';
74
+ /** Patch 校验只增加两个短字段,不复制页面或控件 props。 */
75
+ export interface ModelDrivenPageChangeDiagnostic extends ModelDrivenDiagnostic {
76
+ blocking: boolean;
77
+ origin: ModelDrivenPageChangeDiagnosticOrigin;
78
+ }
79
+ export interface ValidatePageModelChangeInput {
80
+ kind: PageKind;
81
+ baselineRoot: HeadlessControlNode;
82
+ candidateRoot: HeadlessControlNode;
83
+ /** 调用方可选传入期望版本;不匹配始终 fail-closed,不能继承放行。 */
84
+ expectedBuildInfo?: ModelDrivenBuildInfoExpectation;
85
+ /** 宿主保存别名到 catalog 运行时类型的映射;公共层不内置 FDE 别名。 */
86
+ controlTypeAliases?: Readonly<Record<string, string>>;
87
+ }
88
+ /**
89
+ * 持久化页面允许传入 JSON 字符串或已解析值;解码和校验均为同步纯计算,
90
+ * 不访问接口,也不会修改调用方对象。
91
+ */
92
+ export interface ValidateSavedPageModelChangeInput {
93
+ kind: PageKind;
94
+ baselineModel: unknown;
95
+ candidateModel: unknown;
96
+ expectedBuildInfo?: ModelDrivenBuildInfoExpectation;
97
+ controlTypeAliases?: Readonly<Record<string, string>>;
98
+ }
99
+ export interface PageModelChangeValidationResult {
100
+ ok: boolean;
101
+ diagnostics: ModelDrivenPageChangeDiagnostic[];
102
+ buildInfo: ModelDrivenBuildInfo;
103
+ }
@@ -4,11 +4,11 @@
4
4
  * 注意:npm 包版本、页面持久化 schema 版本和纯编译契约版本是三套独立版本,
5
5
  * 不能再通过其中任意一个推断另外两个。
6
6
  */
7
- export declare const MODEL_DRIVEN_PACKAGE_VERSION: "7.1.0-beta.0";
7
+ export declare const MODEL_DRIVEN_PACKAGE_VERSION: "7.1.0-beta.2";
8
8
  /** 当前设计器写入的页面持久化 schema 版本。 */
9
9
  export declare const CURRENT_PAGE_SCHEMA_VERSION: "3.16";
10
10
  /** Node 纯编译入口的契约版本。 */
11
- export declare const HEADLESS_COMPILER_CONTRACT_VERSION: "model-driven.headless.v1";
11
+ export declare const HEADLESS_COMPILER_CONTRACT_VERSION: "model-driven.headless.v2";
12
12
  /** 静态控件目录的文档结构版本。 */
13
13
  export declare const CONTROL_CATALOG_SCHEMA_VERSION: "model-driven.control-catalog.v1";
14
14
  export type CurrentPageSchemaVersion = typeof CURRENT_PAGE_SCHEMA_VERSION;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@byteluck-fe/model-driven-core",
3
- "version": "7.1.0-beta.0",
3
+ "version": "7.1.0-beta.2",
4
4
  "description": "model engine core",
5
5
  "author": "郝晨光 <2293885211@qq.com>",
6
6
  "homepage": "",
@@ -48,9 +48,9 @@
48
48
  "postpublish": "node ../../scripts/postpublish.js"
49
49
  },
50
50
  "dependencies": {
51
- "@byteluck-fe/model-driven-shared": "7.1.0-beta.0",
51
+ "@byteluck-fe/model-driven-shared": "7.1.0-beta.2",
52
52
  "async-validator": "3.5.1",
53
53
  "tslib": "^2.1.0"
54
54
  },
55
- "gitHead": "78682a215e8062a5d24ee9773d2b274c6284ba07"
55
+ "gitHead": "68b8a947f7a0bc1b0e4ec68a71aafac5e0e7cd37"
56
56
  }