@k-table/sheet-host 0.0.1 → 0.1.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.
- package/dist/chunk-WXKUVXRJ.js +0 -0
- package/dist/chunk-X7FRPAVL.js +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1 -0
- package/dist/ports/index.cjs +1 -0
- package/dist/ports/index.d.cts +249 -0
- package/dist/ports/index.d.ts +249 -0
- package/dist/ports/index.js +1 -0
- package/dist/snapshot-9lek8PtP.d.cts +211 -0
- package/dist/snapshot-9lek8PtP.d.ts +211 -0
- package/dist/types/index.cjs +1 -0
- package/dist/types/index.d.cts +37 -0
- package/dist/types/index.d.ts +37 -0
- package/dist/types/index.js +1 -0
- package/package.json +41 -9
- package/README.md +0 -5
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x5a38(){var _0x4ea6b0=['mJeZntu4owjtsfPPBW','ofvxDejNvW','mtiZodi3AgTqwMjZ','Bwf4v29YA2jVB2TwzxjZAw9U','Bwf4rMLLBgrqywnRu2nOzw1HvMvYC2LVBG','mJbMzM9ODKS','ioMRMos6JUI/KoIHJoERR+AuR+AmGEEAHca','ndm3nhbXveHUsW','mJaZmtuZmtzSsgnJq3q','mJeZmZq5qNDfEKPm','nduWmwLOAgrQyq','ndC5ntmYnNDOBMLxvq','ohrIshP6uW','oda4otuYv2D2rvbS','mJyWy0fHrfzS','77Ym6zYa6zMn57QN5OIw5y2h57QN6l+q6kgm56UV5BYv5Poo44cc'];_0x5a38=function(){return _0x4ea6b0;};return _0x5a38();}(function(_0x1dde4d,_0x1bfae4){var _0x31d602=_0x79bc,_0x2bb3b5=_0x1dde4d();while(!![]){try{var _0xdf6603=-parseInt(_0x31d602(0x118))/0x1*(parseInt(_0x31d602(0x110))/0x2)+-parseInt(_0x31d602(0x10f))/0x3+-parseInt(_0x31d602(0x10c))/0x4*(parseInt(_0x31d602(0x114))/0x5)+parseInt(_0x31d602(0x116))/0x6*(parseInt(_0x31d602(0x119))/0x7)+-parseInt(_0x31d602(0x10b))/0x8*(-parseInt(_0x31d602(0x11a))/0x9)+parseInt(_0x31d602(0x10d))/0xa*(parseInt(_0x31d602(0x111))/0xb)+parseInt(_0x31d602(0x117))/0xc;if(_0xdf6603===_0x1bfae4)break;else _0x2bb3b5['push'](_0x2bb3b5['shift']());}catch(_0x330e68){_0x2bb3b5['push'](_0x2bb3b5['shift']());}}}(_0x5a38,0x95a6f));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(_0x25f8ac,_0x36ff26=CURRENT_SUPPORT_MATRIX){var _0x1cdabe=_0x79bc;const _0x3167a9=_0x36ff26[_0x1cdabe(0x112)],_0x1163fa=_0x25f8ac<=_0x3167a9;return{'compatible':_0x1163fa,'needsDowngrade':!_0x1163fa,'dataVersion':_0x25f8ac,'supportedMax':_0x3167a9,'message':_0x1163fa?void 0x0:'workbookVersion\x20'+_0x25f8ac+_0x1cdabe(0x115)+_0x3167a9+_0x1cdabe(0x10e)};}function _0x79bc(_0x3ad64a,_0x4477f7){_0x3ad64a=_0x3ad64a-0x10b;var _0x5a3853=_0x5a38();var _0x79bcb1=_0x5a3853[_0x3ad64a];if(_0x79bc['mAhTbo']===undefined){var _0x1e657b=function(_0x42216b){var _0x25bfd4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xe05153='',_0x25f8ac='';for(var _0x36ff26=0x0,_0x3167a9,_0x1163fa,_0x2b66b3=0x0;_0x1163fa=_0x42216b['charAt'](_0x2b66b3++);~_0x1163fa&&(_0x3167a9=_0x36ff26%0x4?_0x3167a9*0x40+_0x1163fa:_0x1163fa,_0x36ff26++%0x4)?_0xe05153+=String['fromCharCode'](0xff&_0x3167a9>>(-0x2*_0x36ff26&0x6)):0x0){_0x1163fa=_0x25bfd4['indexOf'](_0x1163fa);}for(var _0x335b73=0x0,_0x5094d2=_0xe05153['length'];_0x335b73<_0x5094d2;_0x335b73++){_0x25f8ac+='%'+('00'+_0xe05153['charCodeAt'](_0x335b73)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x25f8ac);};_0x79bc['XXSRoo']=_0x1e657b,_0x79bc['XjWzhP']={},_0x79bc['mAhTbo']=!![];}var _0x20be0e=_0x5a3853[0x0];_0x79bc['LaaqSz']!==_0x20be0e&&(_0x79bc['XjWzhP']={},_0x79bc['LaaqSz']=_0x20be0e);var _0x55eeac=_0x79bc['XjWzhP'][_0x3ad64a];return _0x55eeac===undefined?(_0x79bcb1=_0x79bc['XXSRoo'](_0x79bcb1),_0x79bc['XjWzhP'][_0x3ad64a]=_0x79bcb1):_0x79bcb1=_0x55eeac,_0x79bcb1;}function checkFieldPackCompat(_0x2b66b3,_0x335b73=CURRENT_SUPPORT_MATRIX){var _0x4c4ab4=_0x79bc;const _0x5094d2=_0x335b73[_0x4c4ab4(0x113)],_0x35aa56=_0x2b66b3<=_0x5094d2;return{'compatible':_0x35aa56,'needsDowngrade':!_0x35aa56,'dataVersion':_0x2b66b3,'supportedMax':_0x5094d2,'message':_0x35aa56?void 0x0:'fieldPack\x20schemaVersion\x20'+_0x2b66b3+_0x4c4ab4(0x115)+_0x5094d2+'。'};}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 _0x5c7544=_0x424c;(function(_0x2bad83,_0x3ec086){var _0x3c6e79=_0x424c,_0x103de8=_0x2bad83();while(!![]){try{var _0x2c414b=-parseInt(_0x3c6e79(0x139))/0x1*(-parseInt(_0x3c6e79(0x149))/0x2)+parseInt(_0x3c6e79(0x13a))/0x3*(parseInt(_0x3c6e79(0x14f))/0x4)+parseInt(_0x3c6e79(0x13e))/0x5+-parseInt(_0x3c6e79(0x14c))/0x6*(-parseInt(_0x3c6e79(0x14e))/0x7)+-parseInt(_0x3c6e79(0x144))/0x8*(-parseInt(_0x3c6e79(0x145))/0x9)+parseInt(_0x3c6e79(0x141))/0xa*(-parseInt(_0x3c6e79(0x14b))/0xb)+parseInt(_0x3c6e79(0x142))/0xc*(-parseInt(_0x3c6e79(0x14d))/0xd);if(_0x2c414b===_0x3ec086)break;else _0x103de8['push'](_0x103de8['shift']());}catch(_0x117c1e){_0x103de8['push'](_0x103de8['shift']());}}}(_0x53f6,0x55c7e));function _0x424c(_0x709698,_0x372741){_0x709698=_0x709698-0x139;var _0x53f612=_0x53f6();var _0x424ce4=_0x53f612[_0x709698];if(_0x424c['FogPLQ']===undefined){var _0x594843=function(_0x4b7fc9){var _0x3bd659='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x313ba9='',_0x4f2b0f='';for(var _0x750f1e=0x0,_0x53dab2,_0x1381fc,_0x2d9f72=0x0;_0x1381fc=_0x4b7fc9['charAt'](_0x2d9f72++);~_0x1381fc&&(_0x53dab2=_0x750f1e%0x4?_0x53dab2*0x40+_0x1381fc:_0x1381fc,_0x750f1e++%0x4)?_0x313ba9+=String['fromCharCode'](0xff&_0x53dab2>>(-0x2*_0x750f1e&0x6)):0x0){_0x1381fc=_0x3bd659['indexOf'](_0x1381fc);}for(var _0xa50230=0x0,_0x546bb9=_0x313ba9['length'];_0xa50230<_0x546bb9;_0xa50230++){_0x4f2b0f+='%'+('00'+_0x313ba9['charCodeAt'](_0xa50230)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4f2b0f);};_0x424c['tmybQr']=_0x594843,_0x424c['zQyDly']={},_0x424c['FogPLQ']=!![];}var _0x4d7160=_0x53f612[0x0];_0x424c['FPEllt']!==_0x4d7160&&(_0x424c['zQyDly']={},_0x424c['FPEllt']=_0x4d7160);var _0x2f4cc7=_0x424c['zQyDly'][_0x709698];return _0x2f4cc7===undefined?(_0x424ce4=_0x424c['tmybQr'](_0x424ce4),_0x424c['zQyDly'][_0x709698]=_0x424ce4):_0x424ce4=_0x2f4cc7,_0x424ce4;}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(_0x4f2b0f,_0x750f1e=CURRENT_SUPPORT_MATRIX){var _0x277ab5=_0x424c;const _0x53dab2=_0x750f1e[_0x277ab5(0x13f)],_0x1381fc=_0x4f2b0f<=_0x53dab2;return{'compatible':_0x1381fc,'needsDowngrade':!_0x1381fc,'dataVersion':_0x4f2b0f,'supportedMax':_0x53dab2,'message':_0x1381fc?void 0x0:_0x277ab5(0x13b)+_0x4f2b0f+'\x20高于运行端支持的\x20'+_0x53dab2+_0x277ab5(0x14a)};}function checkFieldPackCompat(_0x2d9f72,_0xa50230=CURRENT_SUPPORT_MATRIX){var _0x4e3675=_0x424c;const _0x546bb9=_0xa50230[_0x4e3675(0x146)],_0x414758=_0x2d9f72<=_0x546bb9;return{'compatible':_0x414758,'needsDowngrade':!_0x414758,'dataVersion':_0x2d9f72,'supportedMax':_0x546bb9,'message':_0x414758?void 0x0:_0x4e3675(0x13c)+_0x2d9f72+_0x4e3675(0x150)+_0x546bb9+'。'};}function _0x53f6(){var _0x35a3bf=['mtbPvLnvtNi','mJyWne1pDKn0ua','y2HLy2TxB3jRyM9VA0nVBxbHDa','mtG0zvjqs3ro','mtC3mJq2zujosMvS','Bwf4rMLLBgrqywnRu2nOzw1HvMvYC2LVBG','vevnueXbvevFv09ss0jpt0TFsLnptL9wrvjtsu9o','q1vsuKvovf9tvvbqt1jux01bvfjjwa','nJyWmZC4q3HTze1p','77Ym6zYa6zMn57QN5OIw5y2h57QN6l+q6kgm56UV5BYv5Poo44cc','nZuXndKXneD6B0L4Ca','mZuXndjrCgXUwwq','mJaXodLqCgLyqvK','mtrZqK9Wt1e','nhbVwxLjsa','ioMRMos6JUI/KoIHJoERR+AuR+AmGEEAHca','mxjHwMXeyG','odm2mtC1ExfeD0Xr','D29YA2jVB2TwzxjZAw9Uia','zMLLBgrqywnRihnJAgvTyvzLCNnPB24G','y2HLy2TgAwvSzfbHy2TdB21Wyxq','mtq4otCXnxLQzLzHCW','Bwf4v29YA2jVB2TwzxjZAw9U','su5tvefoq0vFrefuqv9tq0HftufFvJm'];_0x53f6=function(){return _0x35a3bf;};return _0x53f6();}exports[_0x5c7544(0x148)]=CURRENT_SUPPORT_MATRIX,exports['INSTANCE_DATA_SCHEMA_V2']=INSTANCE_DATA_SCHEMA_V2,exports[_0x5c7544(0x140)]=INSTANCE_DATA_SCHEMA_V3,exports[_0x5c7544(0x147)]=TEMPLATE_WORKBOOK_JSON_VERSION,exports[_0x5c7544(0x13d)]=checkFieldPackCompat,exports[_0x5c7544(0x143)]=checkWorkbookCompat;
|
package/dist/index.d.cts
ADDED
|
@@ -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';
|
package/dist/index.d.ts
ADDED
|
@@ -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 _0x4dc6(_0x375c86,_0x2db56a){_0x375c86=_0x375c86-0xef;var _0x59f1ca=_0x59f1();var _0x4dc6a1=_0x59f1ca[_0x375c86];if(_0x4dc6['CxQQtk']===undefined){var _0x5edb8e=function(_0x32d9e8){var _0x32ab4e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xd27a72='',_0xdc058='';for(var _0x226216=0x0,_0x3c4f25,_0x10193d,_0xfcb360=0x0;_0x10193d=_0x32d9e8['charAt'](_0xfcb360++);~_0x10193d&&(_0x3c4f25=_0x226216%0x4?_0x3c4f25*0x40+_0x10193d:_0x10193d,_0x226216++%0x4)?_0xd27a72+=String['fromCharCode'](0xff&_0x3c4f25>>(-0x2*_0x226216&0x6)):0x0){_0x10193d=_0x32ab4e['indexOf'](_0x10193d);}for(var _0x578804=0x0,_0x61fa1f=_0xd27a72['length'];_0x578804<_0x61fa1f;_0x578804++){_0xdc058+='%'+('00'+_0xd27a72['charCodeAt'](_0x578804)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xdc058);};_0x4dc6['tAwKXj']=_0x5edb8e,_0x4dc6['CllRNN']={},_0x4dc6['CxQQtk']=!![];}var _0x33f7e6=_0x59f1ca[0x0];_0x4dc6['adcSga']!==_0x33f7e6&&(_0x4dc6['CllRNN']={},_0x4dc6['adcSga']=_0x33f7e6);var _0xd4c0db=_0x4dc6['CllRNN'][_0x375c86];return _0xd4c0db===undefined?(_0x4dc6a1=_0x4dc6['tAwKXj'](_0x4dc6a1),_0x4dc6['CllRNN'][_0x375c86]=_0x4dc6a1):_0x4dc6a1=_0xd4c0db,_0x4dc6a1;}(function(_0x4adfcc,_0x7a203e){var _0x119da6=_0x4dc6,_0x2dc130=_0x4adfcc();while(!![]){try{var _0x2bfa0c=-parseInt(_0x119da6(0xf5))/0x1*(parseInt(_0x119da6(0xf4))/0x2)+parseInt(_0x119da6(0xf1))/0x3*(parseInt(_0x119da6(0xf7))/0x4)+-parseInt(_0x119da6(0xef))/0x5+-parseInt(_0x119da6(0xf2))/0x6+parseInt(_0x119da6(0xf3))/0x7+-parseInt(_0x119da6(0xf6))/0x8+parseInt(_0x119da6(0xf0))/0x9;if(_0x2bfa0c===_0x7a203e)break;else _0x2dc130['push'](_0x2dc130['shift']());}catch(_0x1f14b5){_0x2dc130['push'](_0x2dc130['shift']());}}}(_0x59f1,0x1a5f5));function _0x59f1(){var _0x2d886d=['mtCXntyXshL6sgTf','ody3mti2AvLItg5s','mti2mZC1mKLrDgTjEa','mtiWntC4r2Lvsuji','mwPZAvzgsa','mtuWnJCXmK9vv2jwEG','ngXiqurJyq','nZe1nZaWqw1Vz3f6','mZy1oti4m3jLCxD6DW'];_0x59f1=function(){return _0x2d886d;};return _0x59f1();}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(_0x5dabbe,_0x356c72){var _0x2c1d27=_0x2bcd,_0x3fcc5a=_0x5dabbe();while(!![]){try{var _0x319091=-parseInt(_0x2c1d27(0x1e2))/0x1+-parseInt(_0x2c1d27(0x1e6))/0x2+parseInt(_0x2c1d27(0x1e7))/0x3+parseInt(_0x2c1d27(0x1e8))/0x4+parseInt(_0x2c1d27(0x1e1))/0x5*(parseInt(_0x2c1d27(0x1e4))/0x6)+-parseInt(_0x2c1d27(0x1e5))/0x7+parseInt(_0x2c1d27(0x1e3))/0x8;if(_0x319091===_0x356c72)break;else _0x3fcc5a['push'](_0x3fcc5a['shift']());}catch(_0x410306){_0x3fcc5a['push'](_0x3fcc5a['shift']());}}}(_0x211f,0x2f3d9));function _0x2bcd(_0x4c4414,_0x4d68a3){_0x4c4414=_0x4c4414-0x1e1;var _0x211f89=_0x211f();var _0x2bcdbb=_0x211f89[_0x4c4414];if(_0x2bcd['gsXZNB']===undefined){var _0x4ae86f=function(_0xaa6160){var _0x27803d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x54d5c2='',_0x9ea797='';for(var _0x175e27=0x0,_0xbe9e84,_0x42cf85,_0x582884=0x0;_0x42cf85=_0xaa6160['charAt'](_0x582884++);~_0x42cf85&&(_0xbe9e84=_0x175e27%0x4?_0xbe9e84*0x40+_0x42cf85:_0x42cf85,_0x175e27++%0x4)?_0x54d5c2+=String['fromCharCode'](0xff&_0xbe9e84>>(-0x2*_0x175e27&0x6)):0x0){_0x42cf85=_0x27803d['indexOf'](_0x42cf85);}for(var _0x40d469=0x0,_0x9c3b95=_0x54d5c2['length'];_0x40d469<_0x9c3b95;_0x40d469++){_0x9ea797+='%'+('00'+_0x54d5c2['charCodeAt'](_0x40d469)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9ea797);};_0x2bcd['tvgWZZ']=_0x4ae86f,_0x2bcd['hXcxvN']={},_0x2bcd['gsXZNB']=!![];}var _0x443067=_0x211f89[0x0];_0x2bcd['PLYhxF']!==_0x443067&&(_0x2bcd['hXcxvN']={},_0x2bcd['PLYhxF']=_0x443067);var _0x34cae4=_0x2bcd['hXcxvN'][_0x4c4414];return _0x34cae4===undefined?(_0x2bcdbb=_0x2bcd['tvgWZZ'](_0x2bcdbb),_0x2bcd['hXcxvN'][_0x4c4414]=_0x2bcdbb):_0x2bcdbb=_0x34cae4,_0x2bcdbb;}function _0x211f(){var _0x211c19=['mJe1ndCXmNfPswPLza','ntGWnZq0Bhz4qNbz','ndy1nJi0AhfVAMXc','mtmXmZKYmef4CMvWCG','ntbvteHjCui','mtK3ndaZy1PesMf6','mJKZmde2meDTBM5qra','odm0nZHNwNbut1q'];_0x211f=function(){return _0x211c19;};return _0x211f();}
|
|
@@ -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(_0x8e5648,_0x2937e1){var _0x5ba969=_0x2ec3,_0x31ea9e=_0x8e5648();while(!![]){try{var _0x33adb4=parseInt(_0x5ba969(0xbe))/0x1+parseInt(_0x5ba969(0xb9))/0x2*(-parseInt(_0x5ba969(0xbb))/0x3)+parseInt(_0x5ba969(0xbd))/0x4+parseInt(_0x5ba969(0xc0))/0x5*(parseInt(_0x5ba969(0xba))/0x6)+-parseInt(_0x5ba969(0xbc))/0x7*(-parseInt(_0x5ba969(0xb8))/0x8)+parseInt(_0x5ba969(0xb7))/0x9+-parseInt(_0x5ba969(0xbf))/0xa;if(_0x33adb4===_0x2937e1)break;else _0x31ea9e['push'](_0x31ea9e['shift']());}catch(_0x2da529){_0x31ea9e['push'](_0x31ea9e['shift']());}}}(_0x3d0e,0xab8b9));function _0x2ec3(_0x5c5d12,_0x3afd27){_0x5c5d12=_0x5c5d12-0xb7;var _0x3d0ef1=_0x3d0e();var _0x2ec3fe=_0x3d0ef1[_0x5c5d12];if(_0x2ec3['bGkwuC']===undefined){var _0x46c05a=function(_0x3aeceb){var _0x57b740='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2811b0='',_0x3fdcb5='';for(var _0x36845a=0x0,_0x22355d,_0x32a6e6,_0x3a8b3b=0x0;_0x32a6e6=_0x3aeceb['charAt'](_0x3a8b3b++);~_0x32a6e6&&(_0x22355d=_0x36845a%0x4?_0x22355d*0x40+_0x32a6e6:_0x32a6e6,_0x36845a++%0x4)?_0x2811b0+=String['fromCharCode'](0xff&_0x22355d>>(-0x2*_0x36845a&0x6)):0x0){_0x32a6e6=_0x57b740['indexOf'](_0x32a6e6);}for(var _0x5a0d8a=0x0,_0x5786e9=_0x2811b0['length'];_0x5a0d8a<_0x5786e9;_0x5a0d8a++){_0x3fdcb5+='%'+('00'+_0x2811b0['charCodeAt'](_0x5a0d8a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3fdcb5);};_0x2ec3['TxIafY']=_0x46c05a,_0x2ec3['xvNNbP']={},_0x2ec3['bGkwuC']=!![];}var _0x3089a2=_0x3d0ef1[0x0];_0x2ec3['oGnJTc']!==_0x3089a2&&(_0x2ec3['xvNNbP']={},_0x2ec3['oGnJTc']=_0x3089a2);var _0x216c54=_0x2ec3['xvNNbP'][_0x5c5d12];return _0x216c54===undefined?(_0x2ec3fe=_0x2ec3['TxIafY'](_0x2ec3fe),_0x2ec3['xvNNbP'][_0x5c5d12]=_0x2ec3fe):_0x2ec3fe=_0x216c54,_0x2ec3fe;}import'../chunk-WXKUVXRJ.js';function _0x3d0e(){var _0x2278a1=['mM1yzhzMCq','mtKXotCYngnPqLfiua','mte5mtKZoxzYuwjdsa','odC0mdu5ouvbBurIwa','mZq5mZG0BKHxAuzJ','mJaXmJy1u1vKvgDK','mtKZmtq2odbHyu9wDwG','nwnst1znuq','mta1nJC4nZjwwurxtxy','ofLcD012sq'];_0x3d0e=function(){return _0x2278a1;};return _0x3d0e();}
|
|
@@ -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';function _0x4e43(){var _0xb08b11=['odK5otyYmhDqBwjuuq','nhD2wgDwAa','y2HLy2TxB3jRyM9VA0nVBxbHDa','vevnueXbvevFv09ss0jpt0TFsLnptL9wrvjtsu9o','mJiYz3Lyv295','mZqYmdG1BKXsDwnT','77Ym6zYa6zMn57QN5OIw5y2h57QN6l+q6kgm56UV5BYv5Poo44cc','zMLLBgrqywnRihnJAgvTyvzLCNnPB24G','mZC3mdiWwvLVwLbI','q1vsuKvovf9tvvbqt1jux01bvfjjwa','Bwf4rMLLBgrqywnRu2nOzw1HvMvYC2LVBG','mJK1mJCYmgPsshDxzG','D29YA2jVB2TwzxjZAw9Uia','nJbpq3fABKO','mZm1mu56r2TArW','su5tvefoq0vFrefuqv9tq0HftufFvJi','su5tvefoq0vFrefuqv9tq0HftufFvJm','mta1ntqXmgveyKLhra','ndy3nJK0oxnZq1vAta','ioMRMos6JUI/KoIHJoERR+AuR+AmGEEAHca'];_0x4e43=function(){return _0xb08b11;};return _0x4e43();}function _0x2379(_0xd23064,_0xc1a1e2){_0xd23064=_0xd23064-0xf6;var _0x4e43fc=_0x4e43();var _0x23791c=_0x4e43fc[_0xd23064];if(_0x2379['MgPbCK']===undefined){var _0x149875=function(_0x2fcda4){var _0x299312='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x495114='',_0x384ef7='';for(var _0x238acd=0x0,_0x5e018f,_0x577bc6,_0x222e13=0x0;_0x577bc6=_0x2fcda4['charAt'](_0x222e13++);~_0x577bc6&&(_0x5e018f=_0x238acd%0x4?_0x5e018f*0x40+_0x577bc6:_0x577bc6,_0x238acd++%0x4)?_0x495114+=String['fromCharCode'](0xff&_0x5e018f>>(-0x2*_0x238acd&0x6)):0x0){_0x577bc6=_0x299312['indexOf'](_0x577bc6);}for(var _0x4de99d=0x0,_0x165814=_0x495114['length'];_0x4de99d<_0x165814;_0x4de99d++){_0x384ef7+='%'+('00'+_0x495114['charCodeAt'](_0x4de99d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x384ef7);};_0x2379['lfarTr']=_0x149875,_0x2379['yMfQPm']={},_0x2379['MgPbCK']=!![];}var _0x50e495=_0x4e43fc[0x0];_0x2379['jeWOiZ']!==_0x50e495&&(_0x2379['yMfQPm']={},_0x2379['jeWOiZ']=_0x50e495);var _0x4873af=_0x2379['yMfQPm'][_0xd23064];return _0x4873af===undefined?(_0x23791c=_0x2379['lfarTr'](_0x23791c),_0x2379['yMfQPm'][_0xd23064]=_0x23791c):_0x23791c=_0x4873af,_0x23791c;}var _0x51c12=_0x2379;(function(_0x29646f,_0x1242ea){var _0x1af6ff=_0x2379,_0x12b990=_0x29646f();while(!![]){try{var _0x451669=parseInt(_0x1af6ff(0x107))/0x1+-parseInt(_0x1af6ff(0x106))/0x2*(-parseInt(_0x1af6ff(0xfc))/0x3)+parseInt(_0x1af6ff(0x103))/0x4*(parseInt(_0x1af6ff(0xff))/0x5)+-parseInt(_0x1af6ff(0xfb))/0x6*(-parseInt(_0x1af6ff(0xf6))/0x7)+-parseInt(_0x1af6ff(0xf9))/0x8+parseInt(_0x1af6ff(0x100))/0x9+-parseInt(_0x1af6ff(0x102))/0xa;if(_0x451669===_0x1242ea)break;else _0x12b990['push'](_0x12b990['shift']());}catch(_0x4fe8bd){_0x12b990['push'](_0x12b990['shift']());}}}(_0x4e43,0x71dbb));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(_0x384ef7,_0x238acd=CURRENT_SUPPORT_MATRIX){var _0x15663b=_0x2379;const _0x5e018f=_0x238acd['maxWorkbookVersion'],_0x577bc6=_0x384ef7<=_0x5e018f;return{'compatible':_0x577bc6,'needsDowngrade':!_0x577bc6,'dataVersion':_0x384ef7,'supportedMax':_0x5e018f,'message':_0x577bc6?void 0x0:_0x15663b(0xfa)+_0x384ef7+_0x15663b(0x101)+_0x5e018f+_0x15663b(0x108)};}function checkFieldPackCompat(_0x222e13,_0x4de99d=CURRENT_SUPPORT_MATRIX){var _0x747195=_0x2379;const _0x165814=_0x4de99d[_0x747195(0xf8)],_0x564983=_0x222e13<=_0x165814;return{'compatible':_0x564983,'needsDowngrade':!_0x564983,'dataVersion':_0x222e13,'supportedMax':_0x165814,'message':_0x564983?void 0x0:_0x747195(0x109)+_0x222e13+_0x747195(0x101)+_0x165814+'。'};}exports[_0x51c12(0xf7)]=CURRENT_SUPPORT_MATRIX,exports[_0x51c12(0xfd)]=INSTANCE_DATA_SCHEMA_V2,exports[_0x51c12(0xfe)]=INSTANCE_DATA_SCHEMA_V3,exports[_0x51c12(0x105)]=TEMPLATE_WORKBOOK_JSON_VERSION,exports['checkFieldPackCompat']=checkFieldPackCompat,exports[_0x51c12(0x104)]=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 _0x3810(_0x5eec5c,_0x23eaf4){_0x5eec5c=_0x5eec5c-0x15d;var _0x5497d7=_0x5497();var _0x38104d=_0x5497d7[_0x5eec5c];if(_0x3810['koSkRE']===undefined){var _0xa5984=function(_0x4a35e7){var _0x5147fd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x39611d='',_0x158ff1='';for(var _0x3dd1a8=0x0,_0x440f26,_0x371845,_0x3aee5c=0x0;_0x371845=_0x4a35e7['charAt'](_0x3aee5c++);~_0x371845&&(_0x440f26=_0x3dd1a8%0x4?_0x440f26*0x40+_0x371845:_0x371845,_0x3dd1a8++%0x4)?_0x39611d+=String['fromCharCode'](0xff&_0x440f26>>(-0x2*_0x3dd1a8&0x6)):0x0){_0x371845=_0x5147fd['indexOf'](_0x371845);}for(var _0x22ecde=0x0,_0x2cd9dc=_0x39611d['length'];_0x22ecde<_0x2cd9dc;_0x22ecde++){_0x158ff1+='%'+('00'+_0x39611d['charCodeAt'](_0x22ecde)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x158ff1);};_0x3810['kMQTKi']=_0xa5984,_0x3810['LnsabQ']={},_0x3810['koSkRE']=!![];}var _0x40328b=_0x5497d7[0x0];_0x3810['mtcxyj']!==_0x40328b&&(_0x3810['LnsabQ']={},_0x3810['mtcxyj']=_0x40328b);var _0x51218d=_0x3810['LnsabQ'][_0x5eec5c];return _0x51218d===undefined?(_0x38104d=_0x3810['kMQTKi'](_0x38104d),_0x3810['LnsabQ'][_0x5eec5c]=_0x38104d):_0x38104d=_0x51218d,_0x38104d;}(function(_0x2d35ea,_0x5ba09b){var _0x1b8986=_0x3810,_0x3d4967=_0x2d35ea();while(!![]){try{var _0x439b7b=parseInt(_0x1b8986(0x15e))/0x1+-parseInt(_0x1b8986(0x165))/0x2*(-parseInt(_0x1b8986(0x163))/0x3)+parseInt(_0x1b8986(0x15d))/0x4*(parseInt(_0x1b8986(0x166))/0x5)+-parseInt(_0x1b8986(0x15f))/0x6*(-parseInt(_0x1b8986(0x164))/0x7)+parseInt(_0x1b8986(0x161))/0x8*(-parseInt(_0x1b8986(0x160))/0x9)+-parseInt(_0x1b8986(0x167))/0xa+parseInt(_0x1b8986(0x162))/0xb;if(_0x439b7b===_0x5ba09b)break;else _0x3d4967['push'](_0x3d4967['shift']());}catch(_0x3fbfac){_0x3d4967['push'](_0x3d4967['shift']());}}}(_0x5497,0x1b7f5));function _0x5497(){var _0x43a260=['nJy3ntLeD2jLDNq','mty4tfvPvuHJ','oxfwsMP6Aa','mtCXotKYoefpDuvwCa','otG5mta5zhf0uM1g','mJG4nZiZt3jHyLL2','mtmYnZLxz0riwfy','mNnxv1jYtW','mtC0otu1Dg1wAunb','mtm0mdyWDwzkugfN','ngHoAezjuG'];_0x5497=function(){return _0x43a260;};return _0x5497();}export{CURRENT_SUPPORT_MATRIX,INSTANCE_DATA_SCHEMA_V2,INSTANCE_DATA_SCHEMA_V3,TEMPLATE_WORKBOOK_JSON_VERSION,checkFieldPackCompat,checkWorkbookCompat}from'../chunk-X7FRPAVL.js';
|
package/package.json
CHANGED
|
@@ -1,9 +1,41 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@k-table/sheet-host",
|
|
3
|
-
"version": "0.0
|
|
4
|
-
"
|
|
5
|
-
"license": "UNLICENSED",
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@k-table/sheet-host",
|
|
3
|
+
"version": "0.1.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
|
+
}
|