@k-table/sheet-host 0.0.1 → 1.0.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.
File without changes
@@ -0,0 +1 @@
1
+ function _0x5174(_0x20dc1a,_0x5cd8b6){_0x20dc1a=_0x20dc1a-0x1c9;var _0xa38577=_0xa385();var _0x5174f3=_0xa38577[_0x20dc1a];if(_0x5174['sVttYW']===undefined){var _0x2e6bd3=function(_0xce1b39){var _0x2e4a43='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x21d18f='',_0x2bdd74='';for(var _0x52dd8d=0x0,_0x34fece,_0x276a03,_0x32e284=0x0;_0x276a03=_0xce1b39['charAt'](_0x32e284++);~_0x276a03&&(_0x34fece=_0x52dd8d%0x4?_0x34fece*0x40+_0x276a03:_0x276a03,_0x52dd8d++%0x4)?_0x21d18f+=String['fromCharCode'](0xff&_0x34fece>>(-0x2*_0x52dd8d&0x6)):0x0){_0x276a03=_0x2e4a43['indexOf'](_0x276a03);}for(var _0x4c99e2=0x0,_0x3102f5=_0x21d18f['length'];_0x4c99e2<_0x3102f5;_0x4c99e2++){_0x2bdd74+='%'+('00'+_0x21d18f['charCodeAt'](_0x4c99e2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2bdd74);};_0x5174['CJCLjC']=_0x2e6bd3,_0x5174['cmatcg']={},_0x5174['sVttYW']=!![];}var _0x4fa258=_0xa38577[0x0];_0x5174['orKSIW']!==_0x4fa258&&(_0x5174['cmatcg']={},_0x5174['orKSIW']=_0x4fa258);var _0x480be9=_0x5174['cmatcg'][_0x20dc1a];return _0x480be9===undefined?(_0x5174f3=_0x5174['CJCLjC'](_0x5174f3),_0x5174['cmatcg'][_0x20dc1a]=_0x5174f3):_0x5174f3=_0x480be9,_0x5174f3;}(function(_0x32dafd,_0x3694a1){var _0x203c5e=_0x5174,_0x544407=_0x32dafd();while(!![]){try{var _0x49eefd=-parseInt(_0x203c5e(0x1d0))/0x1+-parseInt(_0x203c5e(0x1cc))/0x2+-parseInt(_0x203c5e(0x1cd))/0x3*(parseInt(_0x203c5e(0x1d2))/0x4)+parseInt(_0x203c5e(0x1cf))/0x5+-parseInt(_0x203c5e(0x1c9))/0x6+parseInt(_0x203c5e(0x1d6))/0x7*(parseInt(_0x203c5e(0x1ca))/0x8)+parseInt(_0x203c5e(0x1d3))/0x9;if(_0x49eefd===_0x3694a1)break;else _0x544407['push'](_0x544407['shift']());}catch(_0xc3cd18){_0x544407['push'](_0x544407['shift']());}}}(_0xa385,0x4002f));var TEMPLATE_WORKBOOK_JSON_VERSION=0x1,INSTANCE_DATA_SCHEMA_V2=0x2,INSTANCE_DATA_SCHEMA_V3=0x3,CURRENT_SUPPORT_MATRIX={'maxWorkbookVersion':TEMPLATE_WORKBOOK_JSON_VERSION,'maxFieldPackSchemaVersion':INSTANCE_DATA_SCHEMA_V2};function checkWorkbookCompat(_0x2bdd74,_0x52dd8d=CURRENT_SUPPORT_MATRIX){var _0x1e8838=_0x5174;const _0x34fece=_0x52dd8d[_0x1e8838(0x1d5)],_0x276a03=_0x2bdd74<=_0x34fece;return{'compatible':_0x276a03,'needsDowngrade':!_0x276a03,'dataVersion':_0x2bdd74,'supportedMax':_0x34fece,'message':_0x276a03?void 0x0:'workbookVersion\x20'+_0x2bdd74+_0x1e8838(0x1cb)+_0x34fece+_0x1e8838(0x1d1)};}function checkFieldPackCompat(_0x32e284,_0x4c99e2=CURRENT_SUPPORT_MATRIX){var _0x6f5398=_0x5174;const _0x3102f5=_0x4c99e2[_0x6f5398(0x1d4)],_0x270b20=_0x32e284<=_0x3102f5;return{'compatible':_0x270b20,'needsDowngrade':!_0x270b20,'dataVersion':_0x32e284,'supportedMax':_0x3102f5,'message':_0x270b20?void 0x0:_0x6f5398(0x1ce)+_0x32e284+_0x6f5398(0x1cb)+_0x3102f5+'。'};}function _0xa385(){var _0x30720b=['nJK4mdmWsvbjs1Hk','ndC0mtC1uw5UBK9t','77Ym6zYa6zMn57QN5OIw5y2h57QN6l+q6kgm56UV5BYv5Poo44cc','nta0u1H1s1HJ','mtiWnZCWmtbiDeLAzxK','Bwf4rMLLBgrqywnRu2nOzw1HvMvYC2LVBG','Bwf4v29YA2jVB2TwzxjZAw9U','mZK5vKTPCfr5','mtCWnduYofnuvMf4DW','nte2nZjusxDREuK','ioMRMos6JUI/KoIHJoERR+AuR+AmGEEAHca','odC4otC0CMDAsLnU','oti3oxzgvxryvW','zMLLBgrqywnRihnJAgvTyvzLCNnPB24G'];_0xa385=function(){return _0x30720b;};return _0xa385();}export{CURRENT_SUPPORT_MATRIX,INSTANCE_DATA_SCHEMA_V2,INSTANCE_DATA_SCHEMA_V3,TEMPLATE_WORKBOOK_JSON_VERSION,checkFieldPackCompat,checkWorkbookCompat};
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ 'use strict';var _0x59b502=_0x3b6a;(function(_0xdd7c7a,_0x55b142){var _0x489f82=_0x3b6a,_0x5560aa=_0xdd7c7a();while(!![]){try{var _0x2b8b25=-parseInt(_0x489f82(0xf6))/0x1*(-parseInt(_0x489f82(0xe3))/0x2)+parseInt(_0x489f82(0xe7))/0x3+parseInt(_0x489f82(0xec))/0x4*(-parseInt(_0x489f82(0xf3))/0x5)+parseInt(_0x489f82(0xeb))/0x6+-parseInt(_0x489f82(0xf0))/0x7+parseInt(_0x489f82(0xf1))/0x8+-parseInt(_0x489f82(0xe8))/0x9;if(_0x2b8b25===_0x55b142)break;else _0x5560aa['push'](_0x5560aa['shift']());}catch(_0x3ad850){_0x5560aa['push'](_0x5560aa['shift']());}}}(_0x39cd,0xbecc1));var TEMPLATE_WORKBOOK_JSON_VERSION=0x1,INSTANCE_DATA_SCHEMA_V2=0x2,INSTANCE_DATA_SCHEMA_V3=0x3,CURRENT_SUPPORT_MATRIX={'maxWorkbookVersion':TEMPLATE_WORKBOOK_JSON_VERSION,'maxFieldPackSchemaVersion':INSTANCE_DATA_SCHEMA_V2};function _0x3b6a(_0x304967,_0xe3a556){_0x304967=_0x304967-0xe3;var _0x39cdc1=_0x39cd();var _0x3b6a5c=_0x39cdc1[_0x304967];if(_0x3b6a['rTVpyD']===undefined){var _0x3d6744=function(_0x229648){var _0x384573='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xdf289e='',_0x343118='';for(var _0x2f8346=0x0,_0x1d9a41,_0x347f73,_0x3db408=0x0;_0x347f73=_0x229648['charAt'](_0x3db408++);~_0x347f73&&(_0x1d9a41=_0x2f8346%0x4?_0x1d9a41*0x40+_0x347f73:_0x347f73,_0x2f8346++%0x4)?_0xdf289e+=String['fromCharCode'](0xff&_0x1d9a41>>(-0x2*_0x2f8346&0x6)):0x0){_0x347f73=_0x384573['indexOf'](_0x347f73);}for(var _0x1f680c=0x0,_0x42a8d8=_0xdf289e['length'];_0x1f680c<_0x42a8d8;_0x1f680c++){_0x343118+='%'+('00'+_0xdf289e['charCodeAt'](_0x1f680c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x343118);};_0x3b6a['URQXpi']=_0x3d6744,_0x3b6a['CDszjb']={},_0x3b6a['rTVpyD']=!![];}var _0x46e110=_0x39cdc1[0x0];_0x3b6a['avCVqi']!==_0x46e110&&(_0x3b6a['CDszjb']={},_0x3b6a['avCVqi']=_0x46e110);var _0xa6542a=_0x3b6a['CDszjb'][_0x304967];return _0xa6542a===undefined?(_0x3b6a5c=_0x3b6a['URQXpi'](_0x3b6a5c),_0x3b6a['CDszjb'][_0x304967]=_0x3b6a5c):_0x3b6a5c=_0xa6542a,_0x3b6a5c;}function checkWorkbookCompat(_0x343118,_0x2f8346=CURRENT_SUPPORT_MATRIX){var _0x13aea1=_0x3b6a;const _0x1d9a41=_0x2f8346[_0x13aea1(0xf4)],_0x347f73=_0x343118<=_0x1d9a41;return{'compatible':_0x347f73,'needsDowngrade':!_0x347f73,'dataVersion':_0x343118,'supportedMax':_0x1d9a41,'message':_0x347f73?void 0x0:_0x13aea1(0xe5)+_0x343118+_0x13aea1(0xee)+_0x1d9a41+_0x13aea1(0xf2)};}function _0x39cd(){var _0x145f0d=['mK5PEhLjBW','Bwf4rMLLBgrqywnRu2nOzw1HvMvYC2LVBG','D29YA2jVB2TwzxjZAw9Uia','su5tvefoq0vFrefuqv9tq0HftufFvJi','mZC3ndC0mujVCMfUvG','mtC4mZy2ntLvq0DNCuW','su5tvefoq0vFrefuqv9tq0HftufFvJm','y2HLy2TxB3jRyM9VA0nVBxbHDa','ndKZntiXnKzVALb0sq','odK4ndHutKftuhG','y2HLy2TgAwvSzfbHy2TdB21Wyxq','ioMRMos6JUI/KoIHJoERR+AuR+AmGEEAHca','zMLLBgrqywnRihnJAgvTyvzLCNnPB24G','mtqXnJKWnvrgs3zHqq','ndyYmZK3nMnmEu9gDa','77Ym6zYa6zMn57QN5OIw5y2h57QN6l+q6kgm56UV5BYv5Poo44cc','nJblA1roExG','Bwf4v29YA2jVB2TwzxjZAw9U','vevnueXbvevFv09ss0jpt0TFsLnptL9wrvjtsu9o','ntC2ntm1v0zqwM9h','q1vsuKvovf9tvvbqt1jux01bvfjjwa'];_0x39cd=function(){return _0x145f0d;};return _0x39cd();}function checkFieldPackCompat(_0x3db408,_0x1f680c=CURRENT_SUPPORT_MATRIX){var _0x43f370=_0x3b6a;const _0x42a8d8=_0x1f680c[_0x43f370(0xe4)],_0x12bc67=_0x3db408<=_0x42a8d8;return{'compatible':_0x12bc67,'needsDowngrade':!_0x12bc67,'dataVersion':_0x3db408,'supportedMax':_0x42a8d8,'message':_0x12bc67?void 0x0:_0x43f370(0xef)+_0x3db408+_0x43f370(0xee)+_0x42a8d8+'。'};}exports[_0x59b502(0xf7)]=CURRENT_SUPPORT_MATRIX,exports[_0x59b502(0xe6)]=INSTANCE_DATA_SCHEMA_V2,exports[_0x59b502(0xe9)]=INSTANCE_DATA_SCHEMA_V3,exports[_0x59b502(0xf5)]=TEMPLATE_WORKBOOK_JSON_VERSION,exports[_0x59b502(0xed)]=checkFieldPackCompat,exports[_0x59b502(0xea)]=checkWorkbookCompat;
@@ -0,0 +1,3 @@
1
+ export { C as CapabilitiesInput, a as CapabilitiesJson, b as ComboInstanceDataV3, c as ComboSharedContext, E as EmbedInstanceState, d as EmbedTokenRequest, e as EmbedTokenResponse, F as FieldPullRuleDef, I as INSTANCE_DATA_SCHEMA_V2, f as INSTANCE_DATA_SCHEMA_V3, g as InstanceFieldPackV2, h as InstanceFieldPackV2Ext, i as InstanceSubTablePack, K as KtTemplateRoot, L as LogicalState, O as OpaqueSheetState, P as PublishedSnapshotRef, j as PullContext, k as PullContextSource, R as RefreshPolicy, l as RoundingMode, m as RoundingOverrideEntry, T as TEMPLATE_WORKBOOK_JSON_VERSION, n as TemplateFieldRegistry, o as TemplateSheetItem, p as TemplateWorkbookState, W as WorkbookEmbedDef, q as WorkbookJson, r as WorkbookJsonInput, s as WorkbookMeta, t as WorkbookNamedRange, u as WorkbookPublishedMessage, v as WorkbookScripts } from './snapshot-9lek8PtP.cjs';
2
+ export { CURRENT_SUPPORT_MATRIX, CompatCheckResult, EngineSupportMatrix, checkFieldPackCompat, checkWorkbookCompat } from './types/index.cjs';
3
+ export { AgentLlmCompletionResult, AgentLlmPort, EmbedPort, InstanceDataPort, PdfLayoutMode, RasterPdfRequest, ReportPort, SheetHostContext, SignatureKind, SignaturePort, SignatureResult, SignatureSpec, TemplateSnapshotPort, TextMeasurePort, TextMetrics2D, VectorPdfRequest, WorkbookStoragePort } from './ports/index.cjs';
@@ -0,0 +1,3 @@
1
+ export { C as CapabilitiesInput, a as CapabilitiesJson, b as ComboInstanceDataV3, c as ComboSharedContext, E as EmbedInstanceState, d as EmbedTokenRequest, e as EmbedTokenResponse, F as FieldPullRuleDef, I as INSTANCE_DATA_SCHEMA_V2, f as INSTANCE_DATA_SCHEMA_V3, g as InstanceFieldPackV2, h as InstanceFieldPackV2Ext, i as InstanceSubTablePack, K as KtTemplateRoot, L as LogicalState, O as OpaqueSheetState, P as PublishedSnapshotRef, j as PullContext, k as PullContextSource, R as RefreshPolicy, l as RoundingMode, m as RoundingOverrideEntry, T as TEMPLATE_WORKBOOK_JSON_VERSION, n as TemplateFieldRegistry, o as TemplateSheetItem, p as TemplateWorkbookState, W as WorkbookEmbedDef, q as WorkbookJson, r as WorkbookJsonInput, s as WorkbookMeta, t as WorkbookNamedRange, u as WorkbookPublishedMessage, v as WorkbookScripts } from './snapshot-9lek8PtP.js';
2
+ export { CURRENT_SUPPORT_MATRIX, CompatCheckResult, EngineSupportMatrix, checkFieldPackCompat, checkWorkbookCompat } from './types/index.js';
3
+ export { AgentLlmCompletionResult, AgentLlmPort, EmbedPort, InstanceDataPort, PdfLayoutMode, RasterPdfRequest, ReportPort, SheetHostContext, SignatureKind, SignaturePort, SignatureResult, SignatureSpec, TemplateSnapshotPort, TextMeasurePort, TextMetrics2D, VectorPdfRequest, WorkbookStoragePort } from './ports/index.js';
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ function _0x3db4(){var _0x303bf1=['mty1ntK4nfP5DKPJCW','ntGYodvTChzYrwe','mZGWsKHlDuvp','ntq3nZC5Efz1swnk','nZa0mZa2wMH3DhHf','mtr6qxnwBKe','mtq5odK4nMf3s1beBW','mJqWoda0ognvs21PBa','ndu2DvvOyKjt','ndG2nJnZv0r4yNa','ohvsv1rHzG'];_0x3db4=function(){return _0x303bf1;};return _0x3db4();}(function(_0x12a681,_0x14cd4a){var _0x2ebef6=_0x5259,_0x3955c0=_0x12a681();while(!![]){try{var _0x549b17=-parseInt(_0x2ebef6(0x136))/0x1+parseInt(_0x2ebef6(0x138))/0x2+parseInt(_0x2ebef6(0x135))/0x3*(parseInt(_0x2ebef6(0x131))/0x4)+-parseInt(_0x2ebef6(0x133))/0x5*(parseInt(_0x2ebef6(0x12f))/0x6)+parseInt(_0x2ebef6(0x137))/0x7*(parseInt(_0x2ebef6(0x139))/0x8)+parseInt(_0x2ebef6(0x130))/0x9*(parseInt(_0x2ebef6(0x134))/0xa)+parseInt(_0x2ebef6(0x132))/0xb;if(_0x549b17===_0x14cd4a)break;else _0x3955c0['push'](_0x3955c0['shift']());}catch(_0xcc37d9){_0x3955c0['push'](_0x3955c0['shift']());}}}(_0x3db4,0x75c9f));function _0x5259(_0x51954e,_0x1e17d0){_0x51954e=_0x51954e-0x12f;var _0x3db462=_0x3db4();var _0x52599a=_0x3db462[_0x51954e];if(_0x5259['XbBldv']===undefined){var _0x22c108=function(_0x2595c1){var _0x5be563='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1ae07f='',_0x288863='';for(var _0xce3265=0x0,_0x54b8f0,_0x41bba9,_0x3e9acc=0x0;_0x41bba9=_0x2595c1['charAt'](_0x3e9acc++);~_0x41bba9&&(_0x54b8f0=_0xce3265%0x4?_0x54b8f0*0x40+_0x41bba9:_0x41bba9,_0xce3265++%0x4)?_0x1ae07f+=String['fromCharCode'](0xff&_0x54b8f0>>(-0x2*_0xce3265&0x6)):0x0){_0x41bba9=_0x5be563['indexOf'](_0x41bba9);}for(var _0x4d6f63=0x0,_0x39d749=_0x1ae07f['length'];_0x4d6f63<_0x39d749;_0x4d6f63++){_0x288863+='%'+('00'+_0x1ae07f['charCodeAt'](_0x4d6f63)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x288863);};_0x5259['rPiigj']=_0x22c108,_0x5259['jBfpyi']={},_0x5259['XbBldv']=!![];}var _0x10ded0=_0x3db462[0x0];_0x5259['GrMziw']!==_0x10ded0&&(_0x5259['jBfpyi']={},_0x5259['GrMziw']=_0x10ded0);var _0xe0d731=_0x5259['jBfpyi'][_0x51954e];return _0xe0d731===undefined?(_0x52599a=_0x5259['rPiigj'](_0x52599a),_0x5259['jBfpyi'][_0x51954e]=_0x52599a):_0x52599a=_0xe0d731,_0x52599a;}import'./chunk-WXKUVXRJ.js';export{CURRENT_SUPPORT_MATRIX,INSTANCE_DATA_SCHEMA_V2,INSTANCE_DATA_SCHEMA_V3,TEMPLATE_WORKBOOK_JSON_VERSION,checkFieldPackCompat,checkWorkbookCompat}from'./chunk-X7FRPAVL.js';
@@ -0,0 +1 @@
1
+ 'use strict';function _0x177c(){var _0x363952=['ndaZmtG0mhzjDgvhwG','mtK4mtfhsxDJA0q','mtq0mNzQreX4va','mtbYEujMAuC','mZm2tfb1DM9u','mZe2mtKZowflvwXsBa','mtm0nJCWmfPgA21KyG','ndGWm1vTAeruuG','odKWmdKXChLPqxjw','mJr2De5ez0C','mJjxBMLTwg0','mti5mtH4DLreCNi'];_0x177c=function(){return _0x363952;};return _0x177c();}(function(_0x522372,_0x53225d){var _0x59243a=_0x4251,_0x5178d7=_0x522372();while(!![]){try{var _0x485283=-parseInt(_0x59243a(0x177))/0x1*(-parseInt(_0x59243a(0x174))/0x2)+parseInt(_0x59243a(0x171))/0x3*(-parseInt(_0x59243a(0x17a))/0x4)+-parseInt(_0x59243a(0x17c))/0x5+-parseInt(_0x59243a(0x175))/0x6*(-parseInt(_0x59243a(0x178))/0x7)+-parseInt(_0x59243a(0x176))/0x8+-parseInt(_0x59243a(0x172))/0x9*(-parseInt(_0x59243a(0x179))/0xa)+-parseInt(_0x59243a(0x17b))/0xb*(-parseInt(_0x59243a(0x173))/0xc);if(_0x485283===_0x53225d)break;else _0x5178d7['push'](_0x5178d7['shift']());}catch(_0x228791){_0x5178d7['push'](_0x5178d7['shift']());}}}(_0x177c,0x685a8));function _0x4251(_0x38b5b2,_0xb46d47){_0x38b5b2=_0x38b5b2-0x171;var _0x177c6a=_0x177c();var _0x425192=_0x177c6a[_0x38b5b2];if(_0x4251['fUGnwo']===undefined){var _0x32e36b=function(_0x1adbef){var _0x1ce438='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3320ba='',_0x22b3b5='';for(var _0x3bd7be=0x0,_0x283013,_0x20aa9a,_0x486cd3=0x0;_0x20aa9a=_0x1adbef['charAt'](_0x486cd3++);~_0x20aa9a&&(_0x283013=_0x3bd7be%0x4?_0x283013*0x40+_0x20aa9a:_0x20aa9a,_0x3bd7be++%0x4)?_0x3320ba+=String['fromCharCode'](0xff&_0x283013>>(-0x2*_0x3bd7be&0x6)):0x0){_0x20aa9a=_0x1ce438['indexOf'](_0x20aa9a);}for(var _0x139465=0x0,_0x353456=_0x3320ba['length'];_0x139465<_0x353456;_0x139465++){_0x22b3b5+='%'+('00'+_0x3320ba['charCodeAt'](_0x139465)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22b3b5);};_0x4251['thEZMc']=_0x32e36b,_0x4251['KvzlZa']={},_0x4251['fUGnwo']=!![];}var _0x4d7f33=_0x177c6a[0x0];_0x4251['pcuAXV']!==_0x4d7f33&&(_0x4251['KvzlZa']={},_0x4251['pcuAXV']=_0x4d7f33);var _0x1f04c2=_0x4251['KvzlZa'][_0x38b5b2];return _0x1f04c2===undefined?(_0x425192=_0x4251['thEZMc'](_0x425192),_0x4251['KvzlZa'][_0x38b5b2]=_0x425192):_0x425192=_0x1f04c2,_0x425192;}
@@ -0,0 +1,249 @@
1
+ import { P as PublishedSnapshotRef, g as InstanceFieldPackV2, r as WorkbookJsonInput, C as CapabilitiesInput, d as EmbedTokenRequest, e as EmbedTokenResponse } from '../snapshot-9lek8PtP.cjs';
2
+
3
+ /**
4
+ * 模板快照访问端口。
5
+ * - kt-web:实现指向 k-table-api。
6
+ * - 消费系统运行态:实现指向本地 DB(WorkbookStoragePort)或 server PAT 拉取后落库。
7
+ */
8
+ interface TemplateSnapshotPort {
9
+ /** 按 templateCode 列出已发布快照行 id。 */
10
+ listPublishedSnapshotIds(templateCode: string): Promise<string[]>;
11
+ /** 读取完整快照(workbook + capabilities)。 */
12
+ getSnapshot(snapshotId: string): Promise<PublishedSnapshotRef>;
13
+ /** 校验快照与 templateCode / DllName 绑定。 */
14
+ validateSnapshot(snapshotId: string, templateCode: string): Promise<{
15
+ valid: boolean;
16
+ templateCode?: string;
17
+ message?: string;
18
+ matchedVia?: string;
19
+ }>;
20
+ /** 设计宿主:保存草案(仅 kt-web 实现)。 */
21
+ saveDraft?(workbookJson: string, meta?: {
22
+ templateCode?: string;
23
+ }): Promise<{
24
+ draftId: string;
25
+ }>;
26
+ /** 设计宿主:发布为快照(仅 kt-web 实现)。 */
27
+ publish?(draftId: string): Promise<PublishedSnapshotRef>;
28
+ }
29
+
30
+ /**
31
+ * 实例数据读写端口。
32
+ * - kt-web:指向 k-table-api(instanceId 语义,ability 2-4)。
33
+ * - 消费系统:可用 testNo/dllName 语义直连本地 DB(无 kt instanceId)。
34
+ */
35
+ interface InstanceDataPort {
36
+ /** 读取实例字段包。 */
37
+ getFieldPack(instanceId: string): Promise<InstanceFieldPackV2>;
38
+ /** 写入字段包(ability 3)。 */
39
+ commitFieldPack(instanceId: string, pack: InstanceFieldPackV2): Promise<void>;
40
+ /** 创建空实例(ability 3)。 */
41
+ createInstance?(opts: {
42
+ templateCode: string;
43
+ snapshotId: string;
44
+ initialPack?: Partial<InstanceFieldPackV2>;
45
+ }): Promise<{
46
+ instanceId: string;
47
+ }>;
48
+ /** 软删实例(ability 4)。写操作以 POST 语义实现。 */
49
+ softDeleteInstance?(instanceId: string): Promise<void>;
50
+ /** 消费系统本地:按试验单号读取(无 kt instanceId)。 */
51
+ getFieldPackByTestNo?(testNo: string, dllName: string): Promise<InstanceFieldPackV2>;
52
+ /** 消费系统本地:按试验单号写回。 */
53
+ commitFieldPackByTestNo?(testNo: string, dllName: string, pack: InstanceFieldPackV2): Promise<void>;
54
+ }
55
+
56
+ /** PDF 版面模式。 */
57
+ type PdfLayoutMode = "fitOnePage" | "actualSize";
58
+ /** 栅格化 PDF 请求。 */
59
+ interface RasterPdfRequest {
60
+ workbookJson: WorkbookJsonInput;
61
+ capabilitiesJson?: CapabilitiesInput;
62
+ fieldPack: InstanceFieldPackV2;
63
+ layoutMode?: PdfLayoutMode;
64
+ omitCellBackground?: boolean;
65
+ metadata?: {
66
+ title?: string;
67
+ };
68
+ }
69
+ /** 矢量 PDF 请求。 */
70
+ interface VectorPdfRequest extends RasterPdfRequest {
71
+ mode: "stateless" | "instance";
72
+ snapshotId?: string;
73
+ instanceId?: string;
74
+ recalculate?: boolean;
75
+ }
76
+ /**
77
+ * 报表出图端口。
78
+ * - 栅格化:浏览器 Canvas → jsPDF(消费系统本地即可,零 kt API)。
79
+ * - 矢量:QuestPDF(kt-api 或消费系统本地实现,见 TBD-02)。
80
+ */
81
+ interface ReportPort {
82
+ /** 客户端栅格化:返回 Blob + 页数。 */
83
+ renderRasterPdf(request: RasterPdfRequest): Promise<{
84
+ blob: Blob;
85
+ pageCount: number;
86
+ }>;
87
+ /** 服务端矢量 PDF(可代理 kt 或本地实现)。 */
88
+ renderVectorPdf?(request: VectorPdfRequest): Promise<{
89
+ bytes: Uint8Array;
90
+ contentType: "application/pdf";
91
+ fileName?: string;
92
+ }>;
93
+ /** 构建打印 DOM(浏览器打印对话框)。 */
94
+ buildPrintDocument?(request: RasterPdfRequest): Promise<{
95
+ html: string;
96
+ pageCount: number;
97
+ }>;
98
+ }
99
+
100
+ /**
101
+ * 嵌入令牌与 iframe 端口(过渡期 LIMS↔kt 集成)。
102
+ * token 由**宿主 server** 用 PAT 换发,浏览器不持有 PAT。
103
+ */
104
+ interface EmbedPort {
105
+ /** PAT 换发 embed_iframe JWT(server 侧)。 */
106
+ issueEmbedToken(request: EmbedTokenRequest): Promise<EmbedTokenResponse>;
107
+ /** 撤销长期 token。 */
108
+ revokeEmbedToken?(jti: string): Promise<{
109
+ removed: number;
110
+ }>;
111
+ /** 构建 iframe URL。 */
112
+ buildEmbedUrl(opts: {
113
+ accessToken: string;
114
+ mode: "view" | "fill" | "design";
115
+ snapshotId?: string;
116
+ instanceId?: string;
117
+ print?: boolean;
118
+ }): string;
119
+ }
120
+
121
+ /**
122
+ * 消费系统本地工作簿存储端口。
123
+ * 运行期从本地 DB 读取已同步的 workbook(零 kt API);发布同步时写入。
124
+ */
125
+ interface WorkbookStoragePort {
126
+ /** 按 templateCode / DllName 读取本地缓存的 workbook。 */
127
+ loadWorkbookJson(templateCode: string): Promise<{
128
+ workbookJson: string;
129
+ capabilitiesJson: string | null;
130
+ snapshotId: string | null;
131
+ workbookFileVersion: number;
132
+ syncedAt: string | null;
133
+ } | null>;
134
+ /** 发布同步后写入(server 侧 PAT 拉取后落库)。 */
135
+ upsertWorkbookJson(opts: {
136
+ templateCode: string;
137
+ ktTemplateCode: string;
138
+ ktSnapshotId: string;
139
+ workbookJson: string;
140
+ capabilitiesJson: string | null;
141
+ workbookFileVersion: number;
142
+ syncedAt: string;
143
+ }): Promise<void>;
144
+ }
145
+
146
+ /**
147
+ * 文本测量端口(core 去 UI 化关键)。
148
+ *
149
+ * 背景:core 的排版(软换行/shrinkToFit/行高)需要测量文本宽度,
150
+ * 现状直依赖浏览器 `CanvasRenderingContext2D.measureText`。抽包后 core **不得**
151
+ * 依赖 DOM,因此把测量抽象为本端口,由宿主注入:
152
+ * - 浏览器:用离屏 Canvas 2D context 实现。
153
+ * - Node(消费系统服务端出图):用 `@napi-rs/canvas` 等实现。
154
+ */
155
+ interface TextMetrics2D {
156
+ /** 文本宽度(px)。 */
157
+ width: number;
158
+ }
159
+ interface TextMeasurePort {
160
+ /**
161
+ * 测量给定字体样式下文本的宽度。
162
+ * @param text 文本
163
+ * @param font CSS font 简写(如 "10.5px 宋体")
164
+ */
165
+ measureText(text: string, font: string): TextMetrics2D;
166
+ }
167
+
168
+ /**
169
+ * 签名/签章端口(UI-05 签章工作流)。
170
+ * 采集/证书/时间戳/合规由**消费系统宿主**实现;引擎只定义签名位契约与落章接口。
171
+ */
172
+ /** 签名类型。 */
173
+ type SignatureKind = "handwriting" | "eseal" | "imageStamp";
174
+ /** 签名位定义(设计态 bake 进模板)。 */
175
+ interface SignatureSpec {
176
+ /** 签名位 id(对应 embed slot / cell)。 */
177
+ slotId: string;
178
+ name: string;
179
+ kind: SignatureKind;
180
+ /** 角色/岗位或指定人。 */
181
+ role?: string;
182
+ assigneeUserId?: string;
183
+ /** 触发时机。 */
184
+ trigger?: "onComplete" | "onReviewPass";
185
+ required?: boolean;
186
+ recordTimestamp?: boolean;
187
+ recordSigner?: boolean;
188
+ }
189
+ /** 落章结果。 */
190
+ interface SignatureResult {
191
+ slotId: string;
192
+ /** 签名图/章的文件标识(宿主文件服务)。 */
193
+ fileId: string;
194
+ signerUserId: string;
195
+ signerName?: string;
196
+ signedAt: string;
197
+ /** 电子签章证书/时间戳凭据(可选)。 */
198
+ certRef?: string;
199
+ }
200
+ interface SignaturePort {
201
+ /** 采集/落章:由宿主弹出手写板或调签章服务,返回结果。 */
202
+ sign(spec: SignatureSpec, context: {
203
+ instanceId?: string;
204
+ testNo?: string;
205
+ }): Promise<SignatureResult>;
206
+ /** 作废签名(审核退回留痕)。 */
207
+ revoke?(slotId: string, reason?: string): Promise<void>;
208
+ }
209
+
210
+ /**
211
+ * Agent LLM 端口(仅宿主 server 实现,密钥不出宿主)。
212
+ * `@k-table/agent-runtime` 编排循环通过本端口调用模型,包内不含 fetch/密钥。
213
+ */
214
+ interface AgentLlmCompletionResult {
215
+ message: unknown;
216
+ toolCalls?: Array<{
217
+ id: string;
218
+ name: string;
219
+ arguments: string;
220
+ }>;
221
+ }
222
+ interface AgentLlmPort {
223
+ complete(opts: {
224
+ model: string;
225
+ messages: unknown[];
226
+ tools: unknown[];
227
+ temperature?: number;
228
+ /** 流式回调(可选)。 */
229
+ onDelta?: (chunk: string) => void;
230
+ }): Promise<AgentLlmCompletionResult>;
231
+ }
232
+
233
+ /**
234
+ * 宿主装配上下文:宿主(kt-web / 消费系统)注入各 Port 实现,
235
+ * 引擎(core/canvas/agent-runtime)只消费本上下文,不直连任何 API。
236
+ */
237
+ interface SheetHostContext {
238
+ templateSnapshot: TemplateSnapshotPort;
239
+ instanceData: InstanceDataPort;
240
+ report: ReportPort;
241
+ textMeasure: TextMeasurePort;
242
+ embed?: EmbedPort;
243
+ workbookStorage?: WorkbookStoragePort;
244
+ signature?: SignaturePort;
245
+ /** 仅 kt-web / 消费系统 server 注入。 */
246
+ agentLlm?: AgentLlmPort;
247
+ }
248
+
249
+ export type { AgentLlmCompletionResult, AgentLlmPort, EmbedPort, InstanceDataPort, PdfLayoutMode, RasterPdfRequest, ReportPort, SheetHostContext, SignatureKind, SignaturePort, SignatureResult, SignatureSpec, TemplateSnapshotPort, TextMeasurePort, TextMetrics2D, VectorPdfRequest, WorkbookStoragePort };
@@ -0,0 +1,249 @@
1
+ import { P as PublishedSnapshotRef, g as InstanceFieldPackV2, r as WorkbookJsonInput, C as CapabilitiesInput, d as EmbedTokenRequest, e as EmbedTokenResponse } from '../snapshot-9lek8PtP.js';
2
+
3
+ /**
4
+ * 模板快照访问端口。
5
+ * - kt-web:实现指向 k-table-api。
6
+ * - 消费系统运行态:实现指向本地 DB(WorkbookStoragePort)或 server PAT 拉取后落库。
7
+ */
8
+ interface TemplateSnapshotPort {
9
+ /** 按 templateCode 列出已发布快照行 id。 */
10
+ listPublishedSnapshotIds(templateCode: string): Promise<string[]>;
11
+ /** 读取完整快照(workbook + capabilities)。 */
12
+ getSnapshot(snapshotId: string): Promise<PublishedSnapshotRef>;
13
+ /** 校验快照与 templateCode / DllName 绑定。 */
14
+ validateSnapshot(snapshotId: string, templateCode: string): Promise<{
15
+ valid: boolean;
16
+ templateCode?: string;
17
+ message?: string;
18
+ matchedVia?: string;
19
+ }>;
20
+ /** 设计宿主:保存草案(仅 kt-web 实现)。 */
21
+ saveDraft?(workbookJson: string, meta?: {
22
+ templateCode?: string;
23
+ }): Promise<{
24
+ draftId: string;
25
+ }>;
26
+ /** 设计宿主:发布为快照(仅 kt-web 实现)。 */
27
+ publish?(draftId: string): Promise<PublishedSnapshotRef>;
28
+ }
29
+
30
+ /**
31
+ * 实例数据读写端口。
32
+ * - kt-web:指向 k-table-api(instanceId 语义,ability 2-4)。
33
+ * - 消费系统:可用 testNo/dllName 语义直连本地 DB(无 kt instanceId)。
34
+ */
35
+ interface InstanceDataPort {
36
+ /** 读取实例字段包。 */
37
+ getFieldPack(instanceId: string): Promise<InstanceFieldPackV2>;
38
+ /** 写入字段包(ability 3)。 */
39
+ commitFieldPack(instanceId: string, pack: InstanceFieldPackV2): Promise<void>;
40
+ /** 创建空实例(ability 3)。 */
41
+ createInstance?(opts: {
42
+ templateCode: string;
43
+ snapshotId: string;
44
+ initialPack?: Partial<InstanceFieldPackV2>;
45
+ }): Promise<{
46
+ instanceId: string;
47
+ }>;
48
+ /** 软删实例(ability 4)。写操作以 POST 语义实现。 */
49
+ softDeleteInstance?(instanceId: string): Promise<void>;
50
+ /** 消费系统本地:按试验单号读取(无 kt instanceId)。 */
51
+ getFieldPackByTestNo?(testNo: string, dllName: string): Promise<InstanceFieldPackV2>;
52
+ /** 消费系统本地:按试验单号写回。 */
53
+ commitFieldPackByTestNo?(testNo: string, dllName: string, pack: InstanceFieldPackV2): Promise<void>;
54
+ }
55
+
56
+ /** PDF 版面模式。 */
57
+ type PdfLayoutMode = "fitOnePage" | "actualSize";
58
+ /** 栅格化 PDF 请求。 */
59
+ interface RasterPdfRequest {
60
+ workbookJson: WorkbookJsonInput;
61
+ capabilitiesJson?: CapabilitiesInput;
62
+ fieldPack: InstanceFieldPackV2;
63
+ layoutMode?: PdfLayoutMode;
64
+ omitCellBackground?: boolean;
65
+ metadata?: {
66
+ title?: string;
67
+ };
68
+ }
69
+ /** 矢量 PDF 请求。 */
70
+ interface VectorPdfRequest extends RasterPdfRequest {
71
+ mode: "stateless" | "instance";
72
+ snapshotId?: string;
73
+ instanceId?: string;
74
+ recalculate?: boolean;
75
+ }
76
+ /**
77
+ * 报表出图端口。
78
+ * - 栅格化:浏览器 Canvas → jsPDF(消费系统本地即可,零 kt API)。
79
+ * - 矢量:QuestPDF(kt-api 或消费系统本地实现,见 TBD-02)。
80
+ */
81
+ interface ReportPort {
82
+ /** 客户端栅格化:返回 Blob + 页数。 */
83
+ renderRasterPdf(request: RasterPdfRequest): Promise<{
84
+ blob: Blob;
85
+ pageCount: number;
86
+ }>;
87
+ /** 服务端矢量 PDF(可代理 kt 或本地实现)。 */
88
+ renderVectorPdf?(request: VectorPdfRequest): Promise<{
89
+ bytes: Uint8Array;
90
+ contentType: "application/pdf";
91
+ fileName?: string;
92
+ }>;
93
+ /** 构建打印 DOM(浏览器打印对话框)。 */
94
+ buildPrintDocument?(request: RasterPdfRequest): Promise<{
95
+ html: string;
96
+ pageCount: number;
97
+ }>;
98
+ }
99
+
100
+ /**
101
+ * 嵌入令牌与 iframe 端口(过渡期 LIMS↔kt 集成)。
102
+ * token 由**宿主 server** 用 PAT 换发,浏览器不持有 PAT。
103
+ */
104
+ interface EmbedPort {
105
+ /** PAT 换发 embed_iframe JWT(server 侧)。 */
106
+ issueEmbedToken(request: EmbedTokenRequest): Promise<EmbedTokenResponse>;
107
+ /** 撤销长期 token。 */
108
+ revokeEmbedToken?(jti: string): Promise<{
109
+ removed: number;
110
+ }>;
111
+ /** 构建 iframe URL。 */
112
+ buildEmbedUrl(opts: {
113
+ accessToken: string;
114
+ mode: "view" | "fill" | "design";
115
+ snapshotId?: string;
116
+ instanceId?: string;
117
+ print?: boolean;
118
+ }): string;
119
+ }
120
+
121
+ /**
122
+ * 消费系统本地工作簿存储端口。
123
+ * 运行期从本地 DB 读取已同步的 workbook(零 kt API);发布同步时写入。
124
+ */
125
+ interface WorkbookStoragePort {
126
+ /** 按 templateCode / DllName 读取本地缓存的 workbook。 */
127
+ loadWorkbookJson(templateCode: string): Promise<{
128
+ workbookJson: string;
129
+ capabilitiesJson: string | null;
130
+ snapshotId: string | null;
131
+ workbookFileVersion: number;
132
+ syncedAt: string | null;
133
+ } | null>;
134
+ /** 发布同步后写入(server 侧 PAT 拉取后落库)。 */
135
+ upsertWorkbookJson(opts: {
136
+ templateCode: string;
137
+ ktTemplateCode: string;
138
+ ktSnapshotId: string;
139
+ workbookJson: string;
140
+ capabilitiesJson: string | null;
141
+ workbookFileVersion: number;
142
+ syncedAt: string;
143
+ }): Promise<void>;
144
+ }
145
+
146
+ /**
147
+ * 文本测量端口(core 去 UI 化关键)。
148
+ *
149
+ * 背景:core 的排版(软换行/shrinkToFit/行高)需要测量文本宽度,
150
+ * 现状直依赖浏览器 `CanvasRenderingContext2D.measureText`。抽包后 core **不得**
151
+ * 依赖 DOM,因此把测量抽象为本端口,由宿主注入:
152
+ * - 浏览器:用离屏 Canvas 2D context 实现。
153
+ * - Node(消费系统服务端出图):用 `@napi-rs/canvas` 等实现。
154
+ */
155
+ interface TextMetrics2D {
156
+ /** 文本宽度(px)。 */
157
+ width: number;
158
+ }
159
+ interface TextMeasurePort {
160
+ /**
161
+ * 测量给定字体样式下文本的宽度。
162
+ * @param text 文本
163
+ * @param font CSS font 简写(如 "10.5px 宋体")
164
+ */
165
+ measureText(text: string, font: string): TextMetrics2D;
166
+ }
167
+
168
+ /**
169
+ * 签名/签章端口(UI-05 签章工作流)。
170
+ * 采集/证书/时间戳/合规由**消费系统宿主**实现;引擎只定义签名位契约与落章接口。
171
+ */
172
+ /** 签名类型。 */
173
+ type SignatureKind = "handwriting" | "eseal" | "imageStamp";
174
+ /** 签名位定义(设计态 bake 进模板)。 */
175
+ interface SignatureSpec {
176
+ /** 签名位 id(对应 embed slot / cell)。 */
177
+ slotId: string;
178
+ name: string;
179
+ kind: SignatureKind;
180
+ /** 角色/岗位或指定人。 */
181
+ role?: string;
182
+ assigneeUserId?: string;
183
+ /** 触发时机。 */
184
+ trigger?: "onComplete" | "onReviewPass";
185
+ required?: boolean;
186
+ recordTimestamp?: boolean;
187
+ recordSigner?: boolean;
188
+ }
189
+ /** 落章结果。 */
190
+ interface SignatureResult {
191
+ slotId: string;
192
+ /** 签名图/章的文件标识(宿主文件服务)。 */
193
+ fileId: string;
194
+ signerUserId: string;
195
+ signerName?: string;
196
+ signedAt: string;
197
+ /** 电子签章证书/时间戳凭据(可选)。 */
198
+ certRef?: string;
199
+ }
200
+ interface SignaturePort {
201
+ /** 采集/落章:由宿主弹出手写板或调签章服务,返回结果。 */
202
+ sign(spec: SignatureSpec, context: {
203
+ instanceId?: string;
204
+ testNo?: string;
205
+ }): Promise<SignatureResult>;
206
+ /** 作废签名(审核退回留痕)。 */
207
+ revoke?(slotId: string, reason?: string): Promise<void>;
208
+ }
209
+
210
+ /**
211
+ * Agent LLM 端口(仅宿主 server 实现,密钥不出宿主)。
212
+ * `@k-table/agent-runtime` 编排循环通过本端口调用模型,包内不含 fetch/密钥。
213
+ */
214
+ interface AgentLlmCompletionResult {
215
+ message: unknown;
216
+ toolCalls?: Array<{
217
+ id: string;
218
+ name: string;
219
+ arguments: string;
220
+ }>;
221
+ }
222
+ interface AgentLlmPort {
223
+ complete(opts: {
224
+ model: string;
225
+ messages: unknown[];
226
+ tools: unknown[];
227
+ temperature?: number;
228
+ /** 流式回调(可选)。 */
229
+ onDelta?: (chunk: string) => void;
230
+ }): Promise<AgentLlmCompletionResult>;
231
+ }
232
+
233
+ /**
234
+ * 宿主装配上下文:宿主(kt-web / 消费系统)注入各 Port 实现,
235
+ * 引擎(core/canvas/agent-runtime)只消费本上下文,不直连任何 API。
236
+ */
237
+ interface SheetHostContext {
238
+ templateSnapshot: TemplateSnapshotPort;
239
+ instanceData: InstanceDataPort;
240
+ report: ReportPort;
241
+ textMeasure: TextMeasurePort;
242
+ embed?: EmbedPort;
243
+ workbookStorage?: WorkbookStoragePort;
244
+ signature?: SignaturePort;
245
+ /** 仅 kt-web / 消费系统 server 注入。 */
246
+ agentLlm?: AgentLlmPort;
247
+ }
248
+
249
+ export type { AgentLlmCompletionResult, AgentLlmPort, EmbedPort, InstanceDataPort, PdfLayoutMode, RasterPdfRequest, ReportPort, SheetHostContext, SignatureKind, SignaturePort, SignatureResult, SignatureSpec, TemplateSnapshotPort, TextMeasurePort, TextMetrics2D, VectorPdfRequest, WorkbookStoragePort };
@@ -0,0 +1 @@
1
+ (function(_0x2030a0,_0x20f139){var _0x409494=_0x2a3e,_0xd7a730=_0x2030a0();while(!![]){try{var _0x6f4f70=parseInt(_0x409494(0xe4))/0x1+parseInt(_0x409494(0xe5))/0x2*(parseInt(_0x409494(0xe3))/0x3)+parseInt(_0x409494(0xe2))/0x4*(parseInt(_0x409494(0xe6))/0x5)+parseInt(_0x409494(0xde))/0x6+parseInt(_0x409494(0xe0))/0x7+-parseInt(_0x409494(0xe7))/0x8*(-parseInt(_0x409494(0xe1))/0x9)+-parseInt(_0x409494(0xdf))/0xa;if(_0x6f4f70===_0x20f139)break;else _0xd7a730['push'](_0xd7a730['shift']());}catch(_0x33cbaf){_0xd7a730['push'](_0xd7a730['shift']());}}}(_0xc370,0x7ed0c));import'../chunk-WXKUVXRJ.js';function _0x2a3e(_0x1addc0,_0x1e1775){_0x1addc0=_0x1addc0-0xde;var _0xc370a8=_0xc370();var _0x2a3e0b=_0xc370a8[_0x1addc0];if(_0x2a3e['eOjbDL']===undefined){var _0x384dc3=function(_0x2a625c){var _0x1be6f3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x41b22e='',_0x2c733c='';for(var _0x5ca084=0x0,_0x4deabb,_0x593cad,_0x4f1a72=0x0;_0x593cad=_0x2a625c['charAt'](_0x4f1a72++);~_0x593cad&&(_0x4deabb=_0x5ca084%0x4?_0x4deabb*0x40+_0x593cad:_0x593cad,_0x5ca084++%0x4)?_0x41b22e+=String['fromCharCode'](0xff&_0x4deabb>>(-0x2*_0x5ca084&0x6)):0x0){_0x593cad=_0x1be6f3['indexOf'](_0x593cad);}for(var _0x3e5b86=0x0,_0x53329f=_0x41b22e['length'];_0x3e5b86<_0x53329f;_0x3e5b86++){_0x2c733c+='%'+('00'+_0x41b22e['charCodeAt'](_0x3e5b86)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2c733c);};_0x2a3e['EoYrkY']=_0x384dc3,_0x2a3e['eiuOpb']={},_0x2a3e['eOjbDL']=!![];}var _0x1dec80=_0xc370a8[0x0];_0x2a3e['uKdUlP']!==_0x1dec80&&(_0x2a3e['eiuOpb']={},_0x2a3e['uKdUlP']=_0x1dec80);var _0x212e76=_0x2a3e['eiuOpb'][_0x1addc0];return _0x212e76===undefined?(_0x2a3e0b=_0x2a3e['EoYrkY'](_0x2a3e0b),_0x2a3e['eiuOpb'][_0x1addc0]=_0x2a3e0b):_0x2a3e0b=_0x212e76,_0x2a3e0b;}function _0xc370(){var _0x5ec4c8=['mZLJsgjxB1y','otC5mtyYB2fJrgv4','mtaXmZmWD25tq0Pc','nduYnJq4nvfMvMTSua','nJe4oty2ngXktwnqtq','ndeWnJK3mgHkELrqzW','mZGWmtq5ndbsrhfTtwG','mJiZnZm2muXcD0vJDq','ow9yEwLmDq','nhLRAenIDq'];_0xc370=function(){return _0x5ec4c8;};return _0xc370();}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * 模板工作簿契约类型(SSOT 边界)。
3
+ *
4
+ * 说明:工作簿的**深层结构**(单页 `SheetTemplateState`、单元格、合并、样式等)
5
+ * 属于 `@k-table/sheet-core`。在宿主契约层(Port 边界)只需:
6
+ * - 跨进程/跨网络传输用 {@link WorkbookJson}(字符串);
7
+ * - 需要结构化访问时用 {@link TemplateWorkbookState},其中单页体 `sheet` 保持不透明
8
+ * (`OpaqueSheetState`),由 core 负责解释。
9
+ *
10
+ * 这样 host 不依赖任何 UI/引擎实现,保持纯契约。
11
+ */
12
+ /** 当前模板工作簿 JSON 版本(与 core `TEMPLATE_WORKBOOK_JSON_VERSION` 对齐)。 */
13
+ declare const TEMPLATE_WORKBOOK_JSON_VERSION: 1;
14
+ /** 序列化后的模板工作簿 JSON 字符串。 */
15
+ type WorkbookJson = string;
16
+ /**
17
+ * 不透明单页体。真实结构为 core 的 `SheetTemplateState`;
18
+ * 契约层不解释其内部,避免耦合。
19
+ */
20
+ type OpaqueSheetState = Record<string, unknown>;
21
+ /** 工作簿页(与 core `TemplateSheetItem` 对齐)。 */
22
+ interface TemplateSheetItem {
23
+ id: string;
24
+ name: string;
25
+ sheet: OpaqueSheetState;
26
+ }
27
+ /** 工作簿元信息(结构由 core 细化;契约层保持宽松)。 */
28
+ type WorkbookMeta = Record<string, unknown>;
29
+ /** 工作簿脚本块集合。 */
30
+ type WorkbookScripts = Record<string, unknown>;
31
+ /** 命名区域。 */
32
+ type WorkbookNamedRange = Record<string, unknown>;
33
+ /** 嵌入定义(图表/图片/QR/签名)。 */
34
+ type WorkbookEmbedDef = Record<string, unknown>;
35
+ /** 拼接/可变行等业务模板元数据根。 */
36
+ type KtTemplateRoot = Record<string, unknown>;
37
+ /**
38
+ * 模板工作簿根对象(契约层)。字段与 core `TemplateWorkbookState` 对齐,
39
+ * 但 `sheets[].sheet` 使用 {@link OpaqueSheetState}。
40
+ */
41
+ interface TemplateWorkbookState {
42
+ workbookVersion: number;
43
+ activeSheetId: string;
44
+ sheets: TemplateSheetItem[];
45
+ meta?: WorkbookMeta;
46
+ scripts?: WorkbookScripts | null;
47
+ namedRanges?: WorkbookNamedRange[] | null;
48
+ embeds?: WorkbookEmbedDef[] | null;
49
+ ktTemplate?: KtTemplateRoot;
50
+ }
51
+ /** Port 入参常用联合:既可传 JSON 字符串,也可传已解析对象。 */
52
+ type WorkbookJsonInput = WorkbookJson | TemplateWorkbookState;
53
+
54
+ /**
55
+ * 发布 capabilities 契约。发布时 bake 进快照,运行期只读。
56
+ * 深层结构(fieldRegistry 项、字典冻结项等)由 core 解释;契约层保持宽松。
57
+ */
58
+ /** 能力注册表(运行期字段/绑定/修约/公式索引来源)。 */
59
+ type TemplateFieldRegistry = Record<string, unknown>;
60
+ /** 发布 capabilities JSON(结构化)。 */
61
+ interface CapabilitiesJson {
62
+ /** 发布时冻结的字段注册表(零注册表 bake)。 */
63
+ fieldRegistry?: TemplateFieldRegistry;
64
+ /** 模板内字典冻结项。 */
65
+ dictSnapshots?: unknown;
66
+ /** 单元格绑定提示。 */
67
+ bindingHints?: Record<string, unknown>;
68
+ /** 公式目录快照。 */
69
+ formulaCatalog?: unknown;
70
+ [k: string]: unknown;
71
+ }
72
+ /** capabilities 的字符串或结构化形态。 */
73
+ type CapabilitiesInput = string | CapabilitiesJson | null;
74
+
75
+ /**
76
+ * 实例字段包契约(与 core `instanceDataSchema` **真实结构**对齐)。
77
+ *
78
+ * 注意:本类型镜像 kt-web `lib/sheet/instanceDataSchema.ts` 的真实形态
79
+ * (base/main/subTables/params/logicalState/orphanCellsBySheet/…),
80
+ * 而非早期规划稿的 `fields.m/fields.p/b`。core 抽包后应以本契约为准或反向对齐。
81
+ */
82
+ declare const INSTANCE_DATA_SCHEMA_V2: 2;
83
+ declare const INSTANCE_DATA_SCHEMA_V3: 3;
84
+ /** 逻辑页/子表行窗口状态(结构宽松,由 core 细化)。 */
85
+ type LogicalState = Record<string, unknown>;
86
+ /** 子表行包。 */
87
+ interface InstanceSubTablePack {
88
+ rows: Array<Record<string, unknown>>;
89
+ logicalState?: {
90
+ logicalPageIndex?: number;
91
+ logicalPageCount?: number;
92
+ };
93
+ }
94
+ /** 嵌入资产实例态(签章 fileId、QR 覆盖等),key = slotId。 */
95
+ type EmbedInstanceState = Record<string, unknown>;
96
+ /** 修约方式。 */
97
+ type RoundingMode = "decimal" | "interval" | "sigDigits";
98
+ /** 单字段修约覆盖项(运行期用户可改)。 */
99
+ interface RoundingOverrideEntry {
100
+ roundMode?: RoundingMode;
101
+ scale?: number;
102
+ interval?: number;
103
+ sigDigits?: number;
104
+ triggers?: Array<"onCommit" | "onCompute">;
105
+ }
106
+ /** 刷新策略(报表拉取)。 */
107
+ type RefreshPolicy = "manual" | "onOpen" | "onSourceSave";
108
+ /** 字段拉取规则定义。 */
109
+ interface FieldPullRuleDef {
110
+ targetPath: string;
111
+ mode: "direct" | "aggregate" | "filter" | "expr";
112
+ sourceAlias?: string;
113
+ sourcePath?: string;
114
+ aggregateFn?: "sum" | "avg" | "min" | "max" | "count";
115
+ filterJson?: Record<string, unknown>;
116
+ exprSource?: string;
117
+ enabled?: boolean;
118
+ }
119
+ /** 拉取上下文源。 */
120
+ interface PullContextSource {
121
+ alias: string;
122
+ sourceInstanceId?: string;
123
+ sourceProductCode?: string;
124
+ fromPolicy?: boolean;
125
+ adhocRules?: FieldPullRuleDef[];
126
+ }
127
+ /** 拉取上下文。 */
128
+ interface PullContext {
129
+ sources: PullContextSource[];
130
+ refreshPolicy?: RefreshPolicy;
131
+ lastPulledAt?: string;
132
+ lastPullSignature?: string;
133
+ }
134
+ /** v2 实例字段包(真实结构)。 */
135
+ interface InstanceFieldPackV2 {
136
+ schemaVersion: typeof INSTANCE_DATA_SCHEMA_V2;
137
+ base: Record<string, unknown>;
138
+ main: Record<string, unknown>;
139
+ subTables: Record<string, InstanceSubTablePack>;
140
+ params: Record<string, unknown>;
141
+ logicalState: LogicalState;
142
+ orphanCellsBySheet: Record<string, Record<string, unknown>>;
143
+ embedStates?: Record<string, EmbedInstanceState>;
144
+ upgradeLog?: Array<Record<string, unknown>>;
145
+ _legacyBackup?: unknown;
146
+ dictOverlaysByUser?: Record<string, unknown>;
147
+ }
148
+ /** v2 扩展:报告拉取上下文 + 修约覆盖。 */
149
+ interface InstanceFieldPackV2Ext extends InstanceFieldPackV2 {
150
+ pullContext?: PullContext;
151
+ roundingOverrides?: Record<string, RoundingOverrideEntry>;
152
+ }
153
+ /** 组合共享上下文。 */
154
+ interface ComboSharedContext {
155
+ sharedSeed?: Record<string, unknown>;
156
+ uiLayout?: {
157
+ slotOrder?: string[];
158
+ hiddenSlotKeys?: string[];
159
+ };
160
+ refreshPolicyDefault?: RefreshPolicy;
161
+ }
162
+ /** v3 组合实例数据。 */
163
+ interface ComboInstanceDataV3 {
164
+ schemaVersion: typeof INSTANCE_DATA_SCHEMA_V3;
165
+ kind: "combo";
166
+ comboSnapshotId: string;
167
+ sharedContext: ComboSharedContext;
168
+ slots: Record<string, InstanceFieldPackV2Ext>;
169
+ }
170
+
171
+ /** 已发布快照与嵌入令牌契约。 */
172
+ /** 已发布快照引用(含 workbook + capabilities 正文)。 */
173
+ interface PublishedSnapshotRef {
174
+ snapshotId: string;
175
+ templateCode: string;
176
+ /** 序列化的模板工作簿 JSON。 */
177
+ workbookJson: string;
178
+ /** 序列化的 capabilities JSON(可空)。 */
179
+ capabilitiesJson: string | null;
180
+ publishedAt?: string;
181
+ isActive?: boolean;
182
+ }
183
+ /**
184
+ * 设计完成回写消息(v3 安全同步流):
185
+ * postMessage **仅** 传轻量标识,不含 workbook 正文;宿主 server 凭 PAT 回源拉取。
186
+ */
187
+ interface WorkbookPublishedMessage {
188
+ type: "kt:workbook:published";
189
+ snapshotId: string;
190
+ templateCode: string;
191
+ publishedAt: string;
192
+ }
193
+ /** 嵌入令牌请求。 */
194
+ interface EmbedTokenRequest {
195
+ /** 能力白名单:1 读快照 / 2 读实例 / 3 写实例 / 4 软删 / 5 草案设计 / 6 只读渲染。 */
196
+ abilities: number[];
197
+ templateSnapshotRowIds?: string[];
198
+ instanceRowIds?: string[];
199
+ /** 省略默认 2h;-1 表示长期(须带 jti 以便撤销)。 */
200
+ expiresIn?: number;
201
+ }
202
+ /** 嵌入令牌响应。 */
203
+ interface EmbedTokenResponse {
204
+ accessToken: string;
205
+ iframeUrl?: string;
206
+ jti?: string | null;
207
+ expiresIn?: number;
208
+ isLongLived?: boolean;
209
+ }
210
+
211
+ export { type CapabilitiesInput as C, type EmbedInstanceState as E, type FieldPullRuleDef as F, INSTANCE_DATA_SCHEMA_V2 as I, type KtTemplateRoot as K, type LogicalState as L, type OpaqueSheetState as O, type PublishedSnapshotRef as P, type RefreshPolicy as R, TEMPLATE_WORKBOOK_JSON_VERSION as T, type WorkbookEmbedDef as W, type CapabilitiesJson as a, type ComboInstanceDataV3 as b, type ComboSharedContext as c, type EmbedTokenRequest as d, type EmbedTokenResponse as e, INSTANCE_DATA_SCHEMA_V3 as f, type InstanceFieldPackV2 as g, type InstanceFieldPackV2Ext as h, type InstanceSubTablePack as i, type PullContext as j, type PullContextSource as k, type RoundingMode as l, type RoundingOverrideEntry as m, type TemplateFieldRegistry as n, type TemplateSheetItem as o, type TemplateWorkbookState as p, type WorkbookJson as q, type WorkbookJsonInput as r, type WorkbookMeta as s, type WorkbookNamedRange as t, type WorkbookPublishedMessage as u, type WorkbookScripts as v };
@@ -0,0 +1,211 @@
1
+ /**
2
+ * 模板工作簿契约类型(SSOT 边界)。
3
+ *
4
+ * 说明:工作簿的**深层结构**(单页 `SheetTemplateState`、单元格、合并、样式等)
5
+ * 属于 `@k-table/sheet-core`。在宿主契约层(Port 边界)只需:
6
+ * - 跨进程/跨网络传输用 {@link WorkbookJson}(字符串);
7
+ * - 需要结构化访问时用 {@link TemplateWorkbookState},其中单页体 `sheet` 保持不透明
8
+ * (`OpaqueSheetState`),由 core 负责解释。
9
+ *
10
+ * 这样 host 不依赖任何 UI/引擎实现,保持纯契约。
11
+ */
12
+ /** 当前模板工作簿 JSON 版本(与 core `TEMPLATE_WORKBOOK_JSON_VERSION` 对齐)。 */
13
+ declare const TEMPLATE_WORKBOOK_JSON_VERSION: 1;
14
+ /** 序列化后的模板工作簿 JSON 字符串。 */
15
+ type WorkbookJson = string;
16
+ /**
17
+ * 不透明单页体。真实结构为 core 的 `SheetTemplateState`;
18
+ * 契约层不解释其内部,避免耦合。
19
+ */
20
+ type OpaqueSheetState = Record<string, unknown>;
21
+ /** 工作簿页(与 core `TemplateSheetItem` 对齐)。 */
22
+ interface TemplateSheetItem {
23
+ id: string;
24
+ name: string;
25
+ sheet: OpaqueSheetState;
26
+ }
27
+ /** 工作簿元信息(结构由 core 细化;契约层保持宽松)。 */
28
+ type WorkbookMeta = Record<string, unknown>;
29
+ /** 工作簿脚本块集合。 */
30
+ type WorkbookScripts = Record<string, unknown>;
31
+ /** 命名区域。 */
32
+ type WorkbookNamedRange = Record<string, unknown>;
33
+ /** 嵌入定义(图表/图片/QR/签名)。 */
34
+ type WorkbookEmbedDef = Record<string, unknown>;
35
+ /** 拼接/可变行等业务模板元数据根。 */
36
+ type KtTemplateRoot = Record<string, unknown>;
37
+ /**
38
+ * 模板工作簿根对象(契约层)。字段与 core `TemplateWorkbookState` 对齐,
39
+ * 但 `sheets[].sheet` 使用 {@link OpaqueSheetState}。
40
+ */
41
+ interface TemplateWorkbookState {
42
+ workbookVersion: number;
43
+ activeSheetId: string;
44
+ sheets: TemplateSheetItem[];
45
+ meta?: WorkbookMeta;
46
+ scripts?: WorkbookScripts | null;
47
+ namedRanges?: WorkbookNamedRange[] | null;
48
+ embeds?: WorkbookEmbedDef[] | null;
49
+ ktTemplate?: KtTemplateRoot;
50
+ }
51
+ /** Port 入参常用联合:既可传 JSON 字符串,也可传已解析对象。 */
52
+ type WorkbookJsonInput = WorkbookJson | TemplateWorkbookState;
53
+
54
+ /**
55
+ * 发布 capabilities 契约。发布时 bake 进快照,运行期只读。
56
+ * 深层结构(fieldRegistry 项、字典冻结项等)由 core 解释;契约层保持宽松。
57
+ */
58
+ /** 能力注册表(运行期字段/绑定/修约/公式索引来源)。 */
59
+ type TemplateFieldRegistry = Record<string, unknown>;
60
+ /** 发布 capabilities JSON(结构化)。 */
61
+ interface CapabilitiesJson {
62
+ /** 发布时冻结的字段注册表(零注册表 bake)。 */
63
+ fieldRegistry?: TemplateFieldRegistry;
64
+ /** 模板内字典冻结项。 */
65
+ dictSnapshots?: unknown;
66
+ /** 单元格绑定提示。 */
67
+ bindingHints?: Record<string, unknown>;
68
+ /** 公式目录快照。 */
69
+ formulaCatalog?: unknown;
70
+ [k: string]: unknown;
71
+ }
72
+ /** capabilities 的字符串或结构化形态。 */
73
+ type CapabilitiesInput = string | CapabilitiesJson | null;
74
+
75
+ /**
76
+ * 实例字段包契约(与 core `instanceDataSchema` **真实结构**对齐)。
77
+ *
78
+ * 注意:本类型镜像 kt-web `lib/sheet/instanceDataSchema.ts` 的真实形态
79
+ * (base/main/subTables/params/logicalState/orphanCellsBySheet/…),
80
+ * 而非早期规划稿的 `fields.m/fields.p/b`。core 抽包后应以本契约为准或反向对齐。
81
+ */
82
+ declare const INSTANCE_DATA_SCHEMA_V2: 2;
83
+ declare const INSTANCE_DATA_SCHEMA_V3: 3;
84
+ /** 逻辑页/子表行窗口状态(结构宽松,由 core 细化)。 */
85
+ type LogicalState = Record<string, unknown>;
86
+ /** 子表行包。 */
87
+ interface InstanceSubTablePack {
88
+ rows: Array<Record<string, unknown>>;
89
+ logicalState?: {
90
+ logicalPageIndex?: number;
91
+ logicalPageCount?: number;
92
+ };
93
+ }
94
+ /** 嵌入资产实例态(签章 fileId、QR 覆盖等),key = slotId。 */
95
+ type EmbedInstanceState = Record<string, unknown>;
96
+ /** 修约方式。 */
97
+ type RoundingMode = "decimal" | "interval" | "sigDigits";
98
+ /** 单字段修约覆盖项(运行期用户可改)。 */
99
+ interface RoundingOverrideEntry {
100
+ roundMode?: RoundingMode;
101
+ scale?: number;
102
+ interval?: number;
103
+ sigDigits?: number;
104
+ triggers?: Array<"onCommit" | "onCompute">;
105
+ }
106
+ /** 刷新策略(报表拉取)。 */
107
+ type RefreshPolicy = "manual" | "onOpen" | "onSourceSave";
108
+ /** 字段拉取规则定义。 */
109
+ interface FieldPullRuleDef {
110
+ targetPath: string;
111
+ mode: "direct" | "aggregate" | "filter" | "expr";
112
+ sourceAlias?: string;
113
+ sourcePath?: string;
114
+ aggregateFn?: "sum" | "avg" | "min" | "max" | "count";
115
+ filterJson?: Record<string, unknown>;
116
+ exprSource?: string;
117
+ enabled?: boolean;
118
+ }
119
+ /** 拉取上下文源。 */
120
+ interface PullContextSource {
121
+ alias: string;
122
+ sourceInstanceId?: string;
123
+ sourceProductCode?: string;
124
+ fromPolicy?: boolean;
125
+ adhocRules?: FieldPullRuleDef[];
126
+ }
127
+ /** 拉取上下文。 */
128
+ interface PullContext {
129
+ sources: PullContextSource[];
130
+ refreshPolicy?: RefreshPolicy;
131
+ lastPulledAt?: string;
132
+ lastPullSignature?: string;
133
+ }
134
+ /** v2 实例字段包(真实结构)。 */
135
+ interface InstanceFieldPackV2 {
136
+ schemaVersion: typeof INSTANCE_DATA_SCHEMA_V2;
137
+ base: Record<string, unknown>;
138
+ main: Record<string, unknown>;
139
+ subTables: Record<string, InstanceSubTablePack>;
140
+ params: Record<string, unknown>;
141
+ logicalState: LogicalState;
142
+ orphanCellsBySheet: Record<string, Record<string, unknown>>;
143
+ embedStates?: Record<string, EmbedInstanceState>;
144
+ upgradeLog?: Array<Record<string, unknown>>;
145
+ _legacyBackup?: unknown;
146
+ dictOverlaysByUser?: Record<string, unknown>;
147
+ }
148
+ /** v2 扩展:报告拉取上下文 + 修约覆盖。 */
149
+ interface InstanceFieldPackV2Ext extends InstanceFieldPackV2 {
150
+ pullContext?: PullContext;
151
+ roundingOverrides?: Record<string, RoundingOverrideEntry>;
152
+ }
153
+ /** 组合共享上下文。 */
154
+ interface ComboSharedContext {
155
+ sharedSeed?: Record<string, unknown>;
156
+ uiLayout?: {
157
+ slotOrder?: string[];
158
+ hiddenSlotKeys?: string[];
159
+ };
160
+ refreshPolicyDefault?: RefreshPolicy;
161
+ }
162
+ /** v3 组合实例数据。 */
163
+ interface ComboInstanceDataV3 {
164
+ schemaVersion: typeof INSTANCE_DATA_SCHEMA_V3;
165
+ kind: "combo";
166
+ comboSnapshotId: string;
167
+ sharedContext: ComboSharedContext;
168
+ slots: Record<string, InstanceFieldPackV2Ext>;
169
+ }
170
+
171
+ /** 已发布快照与嵌入令牌契约。 */
172
+ /** 已发布快照引用(含 workbook + capabilities 正文)。 */
173
+ interface PublishedSnapshotRef {
174
+ snapshotId: string;
175
+ templateCode: string;
176
+ /** 序列化的模板工作簿 JSON。 */
177
+ workbookJson: string;
178
+ /** 序列化的 capabilities JSON(可空)。 */
179
+ capabilitiesJson: string | null;
180
+ publishedAt?: string;
181
+ isActive?: boolean;
182
+ }
183
+ /**
184
+ * 设计完成回写消息(v3 安全同步流):
185
+ * postMessage **仅** 传轻量标识,不含 workbook 正文;宿主 server 凭 PAT 回源拉取。
186
+ */
187
+ interface WorkbookPublishedMessage {
188
+ type: "kt:workbook:published";
189
+ snapshotId: string;
190
+ templateCode: string;
191
+ publishedAt: string;
192
+ }
193
+ /** 嵌入令牌请求。 */
194
+ interface EmbedTokenRequest {
195
+ /** 能力白名单:1 读快照 / 2 读实例 / 3 写实例 / 4 软删 / 5 草案设计 / 6 只读渲染。 */
196
+ abilities: number[];
197
+ templateSnapshotRowIds?: string[];
198
+ instanceRowIds?: string[];
199
+ /** 省略默认 2h;-1 表示长期(须带 jti 以便撤销)。 */
200
+ expiresIn?: number;
201
+ }
202
+ /** 嵌入令牌响应。 */
203
+ interface EmbedTokenResponse {
204
+ accessToken: string;
205
+ iframeUrl?: string;
206
+ jti?: string | null;
207
+ expiresIn?: number;
208
+ isLongLived?: boolean;
209
+ }
210
+
211
+ export { type CapabilitiesInput as C, type EmbedInstanceState as E, type FieldPullRuleDef as F, INSTANCE_DATA_SCHEMA_V2 as I, type KtTemplateRoot as K, type LogicalState as L, type OpaqueSheetState as O, type PublishedSnapshotRef as P, type RefreshPolicy as R, TEMPLATE_WORKBOOK_JSON_VERSION as T, type WorkbookEmbedDef as W, type CapabilitiesJson as a, type ComboInstanceDataV3 as b, type ComboSharedContext as c, type EmbedTokenRequest as d, type EmbedTokenResponse as e, INSTANCE_DATA_SCHEMA_V3 as f, type InstanceFieldPackV2 as g, type InstanceFieldPackV2Ext as h, type InstanceSubTablePack as i, type PullContext as j, type PullContextSource as k, type RoundingMode as l, type RoundingOverrideEntry as m, type TemplateFieldRegistry as n, type TemplateSheetItem as o, type TemplateWorkbookState as p, type WorkbookJson as q, type WorkbookJsonInput as r, type WorkbookMeta as s, type WorkbookNamedRange as t, type WorkbookPublishedMessage as u, type WorkbookScripts as v };
@@ -0,0 +1 @@
1
+ 'use strict';var _0xf0ce9e=_0x483d;(function(_0x321402,_0xa138b){var _0x13bd12=_0x483d,_0x4689e7=_0x321402();while(!![]){try{var _0x45eaba=parseInt(_0x13bd12(0x149))/0x1*(-parseInt(_0x13bd12(0x154))/0x2)+-parseInt(_0x13bd12(0x144))/0x3*(parseInt(_0x13bd12(0x151))/0x4)+-parseInt(_0x13bd12(0x14e))/0x5+parseInt(_0x13bd12(0x146))/0x6*(parseInt(_0x13bd12(0x143))/0x7)+-parseInt(_0x13bd12(0x152))/0x8+parseInt(_0x13bd12(0x14f))/0x9*(-parseInt(_0x13bd12(0x148))/0xa)+parseInt(_0x13bd12(0x145))/0xb;if(_0x45eaba===_0xa138b)break;else _0x4689e7['push'](_0x4689e7['shift']());}catch(_0x27a99c){_0x4689e7['push'](_0x4689e7['shift']());}}}(_0x1842,0x6fce9));function _0x483d(_0x10e532,_0x39347b){_0x10e532=_0x10e532-0x143;var _0x184247=_0x1842();var _0x483d89=_0x184247[_0x10e532];if(_0x483d['LIXsPM']===undefined){var _0xef3d0c=function(_0x5d814a){var _0x4849c7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1fec75='',_0xdc2bfc='';for(var _0x1d6e89=0x0,_0x4027ce,_0x3863df,_0x1e3edd=0x0;_0x3863df=_0x5d814a['charAt'](_0x1e3edd++);~_0x3863df&&(_0x4027ce=_0x1d6e89%0x4?_0x4027ce*0x40+_0x3863df:_0x3863df,_0x1d6e89++%0x4)?_0x1fec75+=String['fromCharCode'](0xff&_0x4027ce>>(-0x2*_0x1d6e89&0x6)):0x0){_0x3863df=_0x4849c7['indexOf'](_0x3863df);}for(var _0x2f69d7=0x0,_0x3ccb41=_0x1fec75['length'];_0x2f69d7<_0x3ccb41;_0x2f69d7++){_0xdc2bfc+='%'+('00'+_0x1fec75['charCodeAt'](_0x2f69d7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xdc2bfc);};_0x483d['OPzmhX']=_0xef3d0c,_0x483d['ncWmZP']={},_0x483d['LIXsPM']=!![];}var _0x1a6b78=_0x184247[0x0];_0x483d['JPtpBx']!==_0x1a6b78&&(_0x483d['ncWmZP']={},_0x483d['JPtpBx']=_0x1a6b78);var _0x151b46=_0x483d['ncWmZP'][_0x10e532];return _0x151b46===undefined?(_0x483d89=_0x483d['OPzmhX'](_0x483d89),_0x483d['ncWmZP'][_0x10e532]=_0x483d89):_0x483d89=_0x151b46,_0x483d89;}function _0x1842(){var _0x459cfa=['Bwf4v29YA2jVB2TwzxjZAw9U','D29YA2jVB2TwzxjZAw9Uia','mtGYnZi4mfvptwDdCG','mtHfsMjPDw0','Bwf4rMLLBgrqywnRu2nOzw1HvMvYC2LVBG','nhfswwPpBq','mtm2nZq4ohvSwKzRsq','ioMRMos6JUI/KoIHJoERR+AuR+AmGEEAHca','nKDnrwnKtG','mJGZnwzhwfrfuq','nZi5mtqXEgreAuzh','mti2mZe0ntrmuKXbruu','otmXohjYwLvTDa','zMLLBgrqywnRihnJAgvTyvzLCNnPB24G','mZK0nJKWre1AvfLi','mtuZnJq3sfvssu1k','y2HLy2TxB3jRyM9VA0nVBxbHDa','y2HLy2TgAwvSzfbHy2TdB21Wyxq'];_0x1842=function(){return _0x459cfa;};return _0x1842();}var TEMPLATE_WORKBOOK_JSON_VERSION=0x1,INSTANCE_DATA_SCHEMA_V2=0x2,INSTANCE_DATA_SCHEMA_V3=0x3,CURRENT_SUPPORT_MATRIX={'maxWorkbookVersion':TEMPLATE_WORKBOOK_JSON_VERSION,'maxFieldPackSchemaVersion':INSTANCE_DATA_SCHEMA_V2};function checkWorkbookCompat(_0xdc2bfc,_0x1d6e89=CURRENT_SUPPORT_MATRIX){var _0xf276c1=_0x483d;const _0x4027ce=_0x1d6e89[_0xf276c1(0x14c)],_0x3863df=_0xdc2bfc<=_0x4027ce;return{'compatible':_0x3863df,'needsDowngrade':!_0x3863df,'dataVersion':_0xdc2bfc,'supportedMax':_0x4027ce,'message':_0x3863df?void 0x0:_0xf276c1(0x14d)+_0xdc2bfc+_0xf276c1(0x153)+_0x4027ce+',需降级或升级运行端引擎。'};}function checkFieldPackCompat(_0x1e3edd,_0x2f69d7=CURRENT_SUPPORT_MATRIX){var _0x68d878=_0x483d;const _0x3ccb41=_0x2f69d7[_0x68d878(0x150)],_0x1a15ad=_0x1e3edd<=_0x3ccb41;return{'compatible':_0x1a15ad,'needsDowngrade':!_0x1a15ad,'dataVersion':_0x1e3edd,'supportedMax':_0x3ccb41,'message':_0x1a15ad?void 0x0:_0x68d878(0x147)+_0x1e3edd+_0x68d878(0x153)+_0x3ccb41+'。'};}exports['CURRENT_SUPPORT_MATRIX']=CURRENT_SUPPORT_MATRIX,exports['INSTANCE_DATA_SCHEMA_V2']=INSTANCE_DATA_SCHEMA_V2,exports['INSTANCE_DATA_SCHEMA_V3']=INSTANCE_DATA_SCHEMA_V3,exports['TEMPLATE_WORKBOOK_JSON_VERSION']=TEMPLATE_WORKBOOK_JSON_VERSION,exports[_0xf0ce9e(0x14b)]=checkFieldPackCompat,exports[_0xf0ce9e(0x14a)]=checkWorkbookCompat;
@@ -0,0 +1,37 @@
1
+ export { C as CapabilitiesInput, a as CapabilitiesJson, b as ComboInstanceDataV3, c as ComboSharedContext, E as EmbedInstanceState, d as EmbedTokenRequest, e as EmbedTokenResponse, F as FieldPullRuleDef, I as INSTANCE_DATA_SCHEMA_V2, f as INSTANCE_DATA_SCHEMA_V3, g as InstanceFieldPackV2, h as InstanceFieldPackV2Ext, i as InstanceSubTablePack, K as KtTemplateRoot, L as LogicalState, O as OpaqueSheetState, P as PublishedSnapshotRef, j as PullContext, k as PullContextSource, R as RefreshPolicy, l as RoundingMode, m as RoundingOverrideEntry, T as TEMPLATE_WORKBOOK_JSON_VERSION, n as TemplateFieldRegistry, o as TemplateSheetItem, p as TemplateWorkbookState, W as WorkbookEmbedDef, q as WorkbookJson, r as WorkbookJsonInput, s as WorkbookMeta, t as WorkbookNamedRange, u as WorkbookPublishedMessage, v as WorkbookScripts } from '../snapshot-9lek8PtP.cjs';
2
+
3
+ /**
4
+ * 跨仓版本兼容契约(M0.6)。
5
+ *
6
+ * 背景:kt-web(设计端)与消费系统(运行端)经私有 registry 消费 `@k-table/*`,
7
+ * 版本可能滞后。`workbook_json` / `fieldPack` 是**持久化数据**,因此需要一套
8
+ * **前后向兼容规则**:设计端产出的新结构应能被旧运行端**安全降级读取**,
9
+ * 而非崩溃。本文件定义该契约的类型与判定,具体迁移/降级实现在 core。
10
+ */
11
+ /** 运行端声明其可安全处理的最高结构版本。 */
12
+ interface EngineSupportMatrix {
13
+ /** 支持的最高 workbookVersion。 */
14
+ maxWorkbookVersion: number;
15
+ /** 支持的最高实例字段包 schemaVersion。 */
16
+ maxFieldPackSchemaVersion: number;
17
+ }
18
+ /** 当前包内建支持矩阵。 */
19
+ declare const CURRENT_SUPPORT_MATRIX: EngineSupportMatrix;
20
+ /** 兼容性判定结果。 */
21
+ interface CompatCheckResult {
22
+ compatible: boolean;
23
+ /** true 表示数据版本高于运行端支持,需降级/拒绝。 */
24
+ needsDowngrade: boolean;
25
+ dataVersion: number;
26
+ supportedMax: number;
27
+ message?: string;
28
+ }
29
+ /**
30
+ * 判定某数据版本是否可被给定支持矩阵处理。
31
+ * 规则:dataVersion <= supportedMax → 兼容;否则需降级(由 core 实现降级或宿主拒绝)。
32
+ */
33
+ declare function checkWorkbookCompat(dataWorkbookVersion: number, matrix?: EngineSupportMatrix): CompatCheckResult;
34
+ /** 判定实例字段包版本兼容性。 */
35
+ declare function checkFieldPackCompat(dataSchemaVersion: number, matrix?: EngineSupportMatrix): CompatCheckResult;
36
+
37
+ export { CURRENT_SUPPORT_MATRIX, type CompatCheckResult, type EngineSupportMatrix, checkFieldPackCompat, checkWorkbookCompat };
@@ -0,0 +1,37 @@
1
+ export { C as CapabilitiesInput, a as CapabilitiesJson, b as ComboInstanceDataV3, c as ComboSharedContext, E as EmbedInstanceState, d as EmbedTokenRequest, e as EmbedTokenResponse, F as FieldPullRuleDef, I as INSTANCE_DATA_SCHEMA_V2, f as INSTANCE_DATA_SCHEMA_V3, g as InstanceFieldPackV2, h as InstanceFieldPackV2Ext, i as InstanceSubTablePack, K as KtTemplateRoot, L as LogicalState, O as OpaqueSheetState, P as PublishedSnapshotRef, j as PullContext, k as PullContextSource, R as RefreshPolicy, l as RoundingMode, m as RoundingOverrideEntry, T as TEMPLATE_WORKBOOK_JSON_VERSION, n as TemplateFieldRegistry, o as TemplateSheetItem, p as TemplateWorkbookState, W as WorkbookEmbedDef, q as WorkbookJson, r as WorkbookJsonInput, s as WorkbookMeta, t as WorkbookNamedRange, u as WorkbookPublishedMessage, v as WorkbookScripts } from '../snapshot-9lek8PtP.js';
2
+
3
+ /**
4
+ * 跨仓版本兼容契约(M0.6)。
5
+ *
6
+ * 背景:kt-web(设计端)与消费系统(运行端)经私有 registry 消费 `@k-table/*`,
7
+ * 版本可能滞后。`workbook_json` / `fieldPack` 是**持久化数据**,因此需要一套
8
+ * **前后向兼容规则**:设计端产出的新结构应能被旧运行端**安全降级读取**,
9
+ * 而非崩溃。本文件定义该契约的类型与判定,具体迁移/降级实现在 core。
10
+ */
11
+ /** 运行端声明其可安全处理的最高结构版本。 */
12
+ interface EngineSupportMatrix {
13
+ /** 支持的最高 workbookVersion。 */
14
+ maxWorkbookVersion: number;
15
+ /** 支持的最高实例字段包 schemaVersion。 */
16
+ maxFieldPackSchemaVersion: number;
17
+ }
18
+ /** 当前包内建支持矩阵。 */
19
+ declare const CURRENT_SUPPORT_MATRIX: EngineSupportMatrix;
20
+ /** 兼容性判定结果。 */
21
+ interface CompatCheckResult {
22
+ compatible: boolean;
23
+ /** true 表示数据版本高于运行端支持,需降级/拒绝。 */
24
+ needsDowngrade: boolean;
25
+ dataVersion: number;
26
+ supportedMax: number;
27
+ message?: string;
28
+ }
29
+ /**
30
+ * 判定某数据版本是否可被给定支持矩阵处理。
31
+ * 规则:dataVersion <= supportedMax → 兼容;否则需降级(由 core 实现降级或宿主拒绝)。
32
+ */
33
+ declare function checkWorkbookCompat(dataWorkbookVersion: number, matrix?: EngineSupportMatrix): CompatCheckResult;
34
+ /** 判定实例字段包版本兼容性。 */
35
+ declare function checkFieldPackCompat(dataSchemaVersion: number, matrix?: EngineSupportMatrix): CompatCheckResult;
36
+
37
+ export { CURRENT_SUPPORT_MATRIX, type CompatCheckResult, type EngineSupportMatrix, checkFieldPackCompat, checkWorkbookCompat };
@@ -0,0 +1 @@
1
+ (function(_0x2c4595,_0x454d68){var _0x3269e1=_0x589f,_0x422f94=_0x2c4595();while(!![]){try{var _0x2d9cf8=-parseInt(_0x3269e1(0x1bc))/0x1*(parseInt(_0x3269e1(0x1b9))/0x2)+parseInt(_0x3269e1(0x1b8))/0x3+-parseInt(_0x3269e1(0x1bd))/0x4*(-parseInt(_0x3269e1(0x1b5))/0x5)+parseInt(_0x3269e1(0x1b6))/0x6+parseInt(_0x3269e1(0x1bb))/0x7+-parseInt(_0x3269e1(0x1b4))/0x8+parseInt(_0x3269e1(0x1b7))/0x9*(-parseInt(_0x3269e1(0x1ba))/0xa);if(_0x2d9cf8===_0x454d68)break;else _0x422f94['push'](_0x422f94['shift']());}catch(_0x53e71f){_0x422f94['push'](_0x422f94['shift']());}}}(_0xafa2,0x2d06f));export{CURRENT_SUPPORT_MATRIX,INSTANCE_DATA_SCHEMA_V2,INSTANCE_DATA_SCHEMA_V3,TEMPLATE_WORKBOOK_JSON_VERSION,checkFieldPackCompat,checkWorkbookCompat}from'../chunk-X7FRPAVL.js';function _0x589f(_0x39a128,_0x29625f){_0x39a128=_0x39a128-0x1b4;var _0xafa20d=_0xafa2();var _0x589f8a=_0xafa20d[_0x39a128];if(_0x589f['LcpDhd']===undefined){var _0x4c885d=function(_0x11ea72){var _0x1b1dd6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x194c71='',_0x8f4928='';for(var _0x6055=0x0,_0x441ba8,_0x535d6e,_0x5f1a16=0x0;_0x535d6e=_0x11ea72['charAt'](_0x5f1a16++);~_0x535d6e&&(_0x441ba8=_0x6055%0x4?_0x441ba8*0x40+_0x535d6e:_0x535d6e,_0x6055++%0x4)?_0x194c71+=String['fromCharCode'](0xff&_0x441ba8>>(-0x2*_0x6055&0x6)):0x0){_0x535d6e=_0x1b1dd6['indexOf'](_0x535d6e);}for(var _0x4284d9=0x0,_0x2cfae4=_0x194c71['length'];_0x4284d9<_0x2cfae4;_0x4284d9++){_0x8f4928+='%'+('00'+_0x194c71['charCodeAt'](_0x4284d9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x8f4928);};_0x589f['qQlcrV']=_0x4c885d,_0x589f['tAVUKW']={},_0x589f['LcpDhd']=!![];}var _0x5d4b94=_0xafa20d[0x0];_0x589f['POFPLP']!==_0x5d4b94&&(_0x589f['tAVUKW']={},_0x589f['POFPLP']=_0x5d4b94);var _0x54847d=_0x589f['tAVUKW'][_0x39a128];return _0x54847d===undefined?(_0x589f8a=_0x589f['qQlcrV'](_0x589f8a),_0x589f['tAVUKW'][_0x39a128]=_0x589f8a):_0x589f8a=_0x54847d,_0x589f8a;}function _0xafa2(){var _0x4927b0=['ndCZote5EfLrsKTN','nNvNvMHmqG','nduWvKP5vfrw','mtaXotC2mgjLvNnJtW','mtiYote4qwTXyvn1','nfb2r1fWEq','mty3nJi0swDIu1zI','mtm4mdaZnuTHr2jesG','mJiWmdG0oeTPsxbMsG','nZq0nJz0wxfnqMC'];_0xafa2=function(){return _0x4927b0;};return _0xafa2();}
package/package.json CHANGED
@@ -1,9 +1,41 @@
1
- {
2
- "name": "@k-table/sheet-host",
3
- "version": "0.0.1",
4
- "description": "KT 引擎 Port 类型与 DTO(占位包,正式版即将发布)",
5
- "license": "UNLICENSED",
6
- "publishConfig": {
7
- "access": "public"
8
- }
9
- }
1
+ {
2
+ "name": "@k-table/sheet-host",
3
+ "version": "1.0.0",
4
+ "publishConfig": { "access": "public" },
5
+ "license": "UNLICENSED",
6
+ "description": "kt 表格引擎宿主契约层:Port 接口 + 共享 DTO 类型(零业务逻辑、零运行依赖)",
7
+ "type": "module",
8
+ "main": "./dist/index.cjs",
9
+ "module": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js",
15
+ "require": "./dist/index.cjs"
16
+ },
17
+ "./ports": {
18
+ "types": "./dist/ports/index.d.ts",
19
+ "import": "./dist/ports/index.js",
20
+ "require": "./dist/ports/index.cjs"
21
+ },
22
+ "./types": {
23
+ "types": "./dist/types/index.d.ts",
24
+ "import": "./dist/types/index.js",
25
+ "require": "./dist/types/index.cjs"
26
+ }
27
+ },
28
+ "files": [
29
+ "dist"
30
+ ],
31
+ "sideEffects": false,
32
+ "scripts": {
33
+ "build": "tsup",
34
+ "typecheck": "tsc --noEmit",
35
+ "clean": "rimraf dist"
36
+ },
37
+ "devDependencies": {
38
+ "tsup": "^8.0.0",
39
+ "typescript": "^5"
40
+ }
41
+ }
package/README.md DELETED
@@ -1,5 +0,0 @@
1
- # @k-table/sheet-host
2
-
3
- KT 引擎 Port 类型与 DTO。
4
-
5
- **本包为占位版本(0.0.1),正式版即将发布。** 正式版为商业授权软件,使用时需提供授权码。