@lcap/nasl 3.7.3-beta.1 → 3.8.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mocharc.js +0 -1
- package/out/automate/engine/utils.js +6 -1
- package/out/automate/engine/utils.js.map +1 -1
- package/out/bak/translator.js +37 -0
- package/out/bak/translator.js.map +1 -1
- package/out/breakpoint/shared/utils.d.ts +1 -0
- package/out/breakpoint/shared/utils.js +1 -1
- package/out/breakpoint/shared/utils.js.map +1 -1
- package/out/common/BaseNode.d.ts +11 -0
- package/out/common/BaseNode.js +101 -5
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/Annotatable__.d.ts +109 -0
- package/out/concepts/Annotatable__.js +161 -0
- package/out/concepts/Annotatable__.js.map +1 -0
- package/out/concepts/AnnotationProperty__.d.ts +48 -0
- package/out/concepts/AnnotationProperty__.js +74 -0
- package/out/concepts/AnnotationProperty__.js.map +1 -0
- package/out/concepts/Annotation__.d.ts +128 -0
- package/out/concepts/Annotation__.js +248 -0
- package/out/concepts/Annotation__.js.map +1 -0
- package/out/concepts/App__.d.ts +14 -26
- package/out/concepts/App__.js +50 -20
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/ApplyAnnotation__.d.ts +87 -0
- package/out/concepts/ApplyAnnotation__.js +140 -0
- package/out/concepts/ApplyAnnotation__.js.map +1 -0
- package/out/concepts/Argument__.d.ts +19 -0
- package/out/concepts/Argument__.js +126 -0
- package/out/concepts/Argument__.js.map +1 -1
- package/out/concepts/AssigneeV2__.d.ts +169 -0
- package/out/concepts/AssigneeV2__.js +176 -1
- package/out/concepts/AssigneeV2__.js.map +1 -1
- package/out/concepts/AuthLogicForCallInterface__.js +1 -1
- package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
- package/out/concepts/AuthLogic__.js +1 -1
- package/out/concepts/AuthLogic__.js.map +1 -1
- package/out/concepts/BooleanLiteral__.d.ts +1 -0
- package/out/concepts/BooleanLiteral__.js +9 -0
- package/out/concepts/BooleanLiteral__.js.map +1 -1
- package/out/concepts/BusinessLogic__.js +1 -1
- package/out/concepts/BusinessLogic__.js.map +1 -1
- package/out/concepts/CallFunction__.js +1 -1
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallLogic__.d.ts +15 -0
- package/out/concepts/CallLogic__.js +149 -17
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/ConnectorLogic__.js +1 -1
- package/out/concepts/ConnectorLogic__.js.map +1 -1
- package/out/concepts/DatabaseTypeAnnotation__.d.ts +0 -2
- package/out/concepts/DatabaseTypeAnnotation__.js +0 -20
- package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
- package/out/concepts/DepartmentManagerV2__.d.ts +29 -0
- package/out/concepts/DepartmentManagerV2__.js +56 -0
- package/out/concepts/DepartmentManagerV2__.js.map +1 -0
- package/out/concepts/DepartmentV2__.d.ts +33 -0
- package/out/concepts/DepartmentV2__.js +63 -0
- package/out/concepts/DepartmentV2__.js.map +1 -0
- package/out/concepts/DirectManagerV2__.d.ts +25 -0
- package/out/concepts/DirectManagerV2__.js +53 -0
- package/out/concepts/DirectManagerV2__.js.map +1 -0
- package/out/concepts/End__.js +9 -1
- package/out/concepts/End__.js.map +1 -1
- package/out/concepts/EntityProperty__.js +0 -2
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.d.ts +2 -2
- package/out/concepts/Entity__.js +4 -7
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/EnumItem__.d.ts +1 -12
- package/out/concepts/EnumItem__.js +17 -49
- package/out/concepts/EnumItem__.js.map +1 -1
- package/out/concepts/EnumSelectSetter__.d.ts +4 -0
- package/out/concepts/EnumSelectSetter__.js +7 -0
- package/out/concepts/EnumSelectSetter__.js.map +1 -1
- package/out/concepts/Enum__.js +1 -4
- package/out/concepts/Enum__.js.map +1 -1
- package/out/concepts/ForEachStatement__.js +1 -1
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/FrontendLibrary__.d.ts +52 -48
- package/out/concepts/FrontendLibrary__.js +45 -36
- package/out/concepts/FrontendLibrary__.js.map +1 -1
- package/out/concepts/FrontendType__.d.ts +4 -0
- package/out/concepts/FrontendType__.js +7 -0
- package/out/concepts/FrontendType__.js.map +1 -1
- package/out/concepts/Frontend__.d.ts +2 -0
- package/out/concepts/Frontend__.js +21 -2
- package/out/concepts/Frontend__.js.map +1 -1
- package/out/concepts/HistoryProcessV2__.js +4 -1
- package/out/concepts/HistoryProcessV2__.js.map +1 -1
- package/out/concepts/I18nInfo__.d.ts +0 -1
- package/out/concepts/I18nInfo__.js +0 -7
- package/out/concepts/I18nInfo__.js.map +1 -1
- package/out/concepts/Identifier__.d.ts +2 -0
- package/out/concepts/Identifier__.js +31 -0
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/IfStatement__.js +2 -2
- package/out/concepts/IfStatement__.js.map +1 -1
- package/out/concepts/Interface__.js +1 -4
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/LogicItem__.d.ts +1 -1
- package/out/concepts/LogicItem__.js.map +1 -1
- package/out/concepts/Logic__.d.ts +16 -1
- package/out/concepts/Logic__.js +133 -15
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/ManagerV2__.d.ts +34 -0
- package/out/concepts/ManagerV2__.js +61 -0
- package/out/concepts/ManagerV2__.js.map +1 -0
- package/out/concepts/MatchCase__.d.ts +2 -2
- package/out/concepts/MatchCase__.js +7 -7
- package/out/concepts/MatchCase__.js.map +1 -1
- package/out/concepts/MemberExpression__.js +1 -0
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/Module__.d.ts +88 -0
- package/out/concepts/Module__.js +85 -0
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/OperatePermissionV2__.d.ts +1 -1
- package/out/concepts/OperatePermissionV2__.js.map +1 -1
- package/out/concepts/Param__.d.ts +4 -0
- package/out/concepts/Param__.js +13 -21
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/ProcessElementV2__.d.ts +6 -1
- package/out/concepts/ProcessElementV2__.js +20 -0
- package/out/concepts/ProcessElementV2__.js.map +1 -1
- package/out/concepts/ProcessElement__.d.ts +7 -0
- package/out/concepts/ProcessElement__.js +47 -0
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/ProcessV2__.d.ts +1 -34
- package/out/concepts/ProcessV2__.js +3 -70
- package/out/concepts/ProcessV2__.js.map +1 -1
- package/out/concepts/QueryFromExpression__.js +2 -2
- package/out/concepts/QueryFromExpression__.js.map +1 -1
- package/out/concepts/QueryJoinExpression__.js +2 -2
- package/out/concepts/QueryJoinExpression__.js.map +1 -1
- package/out/concepts/StaticString__.d.ts +0 -4
- package/out/concepts/StaticString__.js +0 -11
- package/out/concepts/StaticString__.js.map +1 -1
- package/out/concepts/StructureProperty__.d.ts +1 -0
- package/out/concepts/StructureProperty__.js +14 -5
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/Structure__.d.ts +4 -0
- package/out/concepts/Structure__.js +6 -9
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/SubLogic__.d.ts +418 -0
- package/out/concepts/SubLogic__.js +992 -0
- package/out/concepts/SubLogic__.js.map +1 -0
- package/out/concepts/Theme__.d.ts +9 -0
- package/out/concepts/Theme__.js +10 -0
- package/out/concepts/Theme__.js.map +1 -1
- package/out/concepts/Transactional__.d.ts +0 -1
- package/out/concepts/Transactional__.js +0 -7
- package/out/concepts/Transactional__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.js +18 -0
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/TypeParam__.d.ts +1 -0
- package/out/concepts/TypeParam__.js.map +1 -1
- package/out/concepts/ValidationRule__.d.ts +6 -1
- package/out/concepts/ValidationRule__.js +6 -1
- package/out/concepts/ValidationRule__.js.map +1 -1
- package/out/concepts/ViewElement__.d.ts +8 -2
- package/out/concepts/ViewElement__.js +213 -32
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +10 -2
- package/out/concepts/View__.js +129 -17
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.processV2.d.ts +2 -0
- package/out/concepts/basics/stdlib/nasl.processV2.js +50 -4
- package/out/concepts/basics/stdlib/nasl.processV2.js.map +1 -1
- package/out/concepts/basics/types/index.d.ts +1 -1
- package/out/concepts/basics/types/index.js +2 -1
- package/out/concepts/basics/types/index.js.map +1 -1
- package/out/concepts/index__.d.ts +9 -0
- package/out/concepts/index__.js +9 -0
- package/out/concepts/index__.js.map +1 -1
- package/out/concepts/utils/asserts.d.ts +409 -0
- package/out/concepts/utils/asserts.js +564 -14
- package/out/concepts/utils/asserts.js.map +1 -1
- package/out/concepts/utils/types.d.ts +33 -2
- package/out/generator/genBundleFiles.d.ts +13 -9
- package/out/generator/genBundleFiles.js +383 -63
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/genMetaData.js +2 -0
- package/out/generator/genMetaData.js.map +1 -1
- package/out/generator/release-body/body.js +1 -0
- package/out/generator/release-body/body.js.map +1 -1
- package/out/generator/release-body/utils.d.ts +15 -7
- package/out/generator/release-body/utils.js +50 -7
- package/out/generator/release-body/utils.js.map +1 -1
- package/out/natural/genNaturalTS.js +2 -4
- package/out/natural/genNaturalTS.js.map +1 -1
- package/out/natural/getContext/index.js +0 -2
- package/out/natural/getContext/index.js.map +1 -1
- package/out/natural/transformTS2UI.js.map +1 -1
- package/out/natural/transformTSCode.d.ts +1 -1
- package/out/natural/transformTSCode.js.map +1 -1
- package/out/server/extendBaseNode.js +9 -0
- package/out/server/extendBaseNode.js.map +1 -1
- package/out/server/getLogics.js +10 -6
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.js +6 -0
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/server/getProcessesV2.d.ts +3 -2
- package/out/server/getProcessesV2.js +15 -6
- package/out/server/getProcessesV2.js.map +1 -1
- package/out/server/naslServer.d.ts +5 -1
- package/out/server/naslServer.js +120 -30
- package/out/server/naslServer.js.map +1 -1
- package/out/server/translator.js +4 -0
- package/out/server/translator.js.map +1 -1
- package/out/service/storage/init.d.ts +2 -1
- package/out/service/storage/init.js +28 -71
- package/out/service/storage/init.js.map +1 -1
- package/out/templator/genCreateBlock.d.ts +6 -2
- package/out/templator/genCreateBlock.js +25 -8
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.d.ts +22 -0
- package/out/templator/genCurdEditMultipleKeyBlock.js +60 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.d.ts +13 -3
- package/out/templator/genCurdMultipleKeyBlock.js +29 -23
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genGetBlock.d.ts +1 -1
- package/out/templator/genGetBlock.js +3 -2
- package/out/templator/genGetBlock.js.map +1 -1
- package/out/templator/genListViewBlock.d.ts +1 -1
- package/out/templator/genListViewBlock.js +3 -2
- package/out/templator/genListViewBlock.js.map +1 -1
- package/out/templator/genSelectBlock.d.ts +1 -1
- package/out/templator/genSelectBlock.js +3 -2
- package/out/templator/genSelectBlock.js.map +1 -1
- package/out/templator/genTableBlock.d.ts +9 -4
- package/out/templator/genTableBlock.js +31 -17
- package/out/templator/genTableBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.d.ts +2 -2
- package/out/templator/genUpdateBlock.js +11 -11
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/translator/types.d.ts +0 -4
- package/out/translator/utils.d.ts +0 -1
- package/out/translator/utils.js +1 -6
- package/out/translator/utils.js.map +1 -1
- package/out/utils/delay/index.d.ts +0 -0
- package/out/utils/delay/index.js +1 -0
- package/out/utils/delay/index.js.map +1 -0
- package/out/utils/env.d.ts +0 -4
- package/out/utils/env.js +3 -6
- package/out/utils/env.js.map +1 -1
- package/out/utils/index.d.ts +3 -2
- package/out/utils/index.js +18 -14
- package/out/utils/index.js.map +1 -1
- package/out/utils/time-slicing/controller.js.map +1 -1
- package/out/utils/types.d.ts +0 -17
- package/package.json +27 -20
- package/sandbox/stdlib/extension.component.ts +29 -0
- package/sandbox/stdlib/nasl.process.ts +17 -0
- package/sandbox/stdlib/nasl.processV2.ts +10 -5
- package/sandbox/stdlib/nasl.util.ts +3 -1
- package/src/automate/engine/utils.js +7 -2
- package/src/bak/translator.js +42 -1
- package/src/breakpoint/shared/utils.ts +2 -1
- package/src/common/BaseNode.ts +117 -5
- package/src/concepts/Annotatable__.ts +263 -0
- package/src/concepts/AnnotationProperty__.ts +102 -0
- package/src/concepts/Annotation__.ts +344 -0
- package/src/concepts/App__.ts +917 -26
- package/src/concepts/ApplyAnnotation__.ts +198 -0
- package/src/concepts/Argument__.ts +145 -1
- package/src/concepts/AssigneeV2__.ts +387 -1
- package/src/concepts/AuthLogicForCallInterface__.ts +1 -1
- package/src/concepts/AuthLogic__.ts +1 -1
- package/src/concepts/BooleanLiteral__.ts +9 -1
- package/src/concepts/BusinessLogic__.ts +1 -1
- package/src/concepts/CallFunction__.ts +1 -1
- package/src/concepts/CallLogic__.ts +153 -16
- package/src/concepts/ConnectorLogic__.ts +1 -1
- package/src/concepts/DatabaseTypeAnnotation__.ts +0 -11
- package/src/concepts/DepartmentManagerV2__.ts +70 -0
- package/src/concepts/DepartmentV2__.ts +75 -0
- package/src/concepts/DirectManagerV2__.ts +65 -0
- package/src/concepts/End__.ts +10 -1
- package/src/concepts/EntityProperty__.ts +0 -5
- package/src/concepts/Entity__.ts +5 -9
- package/src/concepts/EnumItem__.ts +16 -65
- package/src/concepts/EnumSelectSetter__.ts +6 -0
- package/src/concepts/Enum__.ts +1 -6
- package/src/concepts/ForEachStatement__.ts +1 -1
- package/src/concepts/FrontendLibrary__.ts +88 -80
- package/src/concepts/FrontendType__.ts +6 -0
- package/src/concepts/Frontend__.ts +26 -3
- package/src/concepts/HistoryProcessV2__.ts +5 -0
- package/src/concepts/I18nInfo__.ts +0 -5
- package/src/concepts/Identifier__.ts +32 -0
- package/src/concepts/IfStatement__.ts +2 -2
- package/src/concepts/Interface__.ts +1 -6
- package/src/concepts/LogicItem__.ts +1 -0
- package/src/concepts/Logic__.ts +140 -17
- package/src/concepts/ManagerV2__.ts +78 -0
- package/src/concepts/MatchCase__.ts +9 -8
- package/src/concepts/MemberExpression__.ts +1 -0
- package/src/concepts/Module__.ts +194 -0
- package/src/concepts/OperatePermissionV2__.ts +1 -1
- package/src/concepts/Param__.ts +17 -20
- package/src/concepts/ProcessElementV2__.ts +23 -0
- package/src/concepts/ProcessElement__.ts +18 -0
- package/src/concepts/ProcessV2__.ts +4 -70
- package/src/concepts/QueryFromExpression__.ts +2 -2
- package/src/concepts/QueryJoinExpression__.ts +2 -2
- package/src/concepts/StaticString__.ts +0 -13
- package/src/concepts/StructureProperty__.ts +16 -7
- package/src/concepts/Structure__.ts +10 -11
- package/src/concepts/SubLogic__.ts +1516 -0
- package/src/concepts/Theme__.ts +9 -0
- package/src/concepts/Transactional__.ts +0 -5
- package/src/concepts/TriggerLauncher__.ts +1 -1
- package/src/concepts/TypeAnnotation__.ts +17 -0
- package/src/concepts/TypeParam__.ts +3 -0
- package/src/concepts/ValidationRule__.ts +6 -1
- package/src/concepts/ViewElement__.ts +224 -34
- package/src/concepts/View__.ts +135 -22
- package/src/concepts/basics/stdlib/nasl.processV2.ts +56 -3
- package/src/concepts/basics/types/index.ts +1 -1
- package/src/concepts/index__.ts +9 -0
- package/src/concepts/utils/asserts.ts +595 -0
- package/src/concepts/utils/types.ts +53 -0
- package/src/generator/genBundleFiles.ts +408 -68
- package/src/generator/genMetaData.ts +3 -0
- package/src/generator/release-body/body.ts +1 -0
- package/src/generator/release-body/utils.ts +159 -55
- package/src/natural/genNaturalTS.ts +3 -5
- package/src/natural/getContext/index.ts +0 -2
- package/src/natural/transformTS2UI.ts +5 -2
- package/src/natural/transformTSCode.ts +2 -2
- package/src/server/extendBaseNode.ts +11 -2
- package/src/server/getLogics.ts +9 -7
- package/src/server/getMemberIdentifier.ts +7 -0
- package/src/server/getProcessesV2.ts +16 -6
- package/src/server/naslServer.ts +133 -30
- package/src/server/translator.ts +4 -0
- package/src/service/storage/init.ts +52 -97
- package/src/templator/genCreateBlock.ts +35 -14
- package/src/templator/genCurdEditMultipleKeyBlock.ts +65 -1
- package/src/templator/genCurdMultipleKeyBlock.ts +42 -23
- package/src/templator/genGetBlock.ts +4 -3
- package/src/templator/genListViewBlock.ts +3 -3
- package/src/templator/genSelectBlock.ts +4 -2
- package/src/templator/genTableBlock.ts +32 -17
- package/src/templator/genUpdateBlock.ts +21 -18
- package/src/translator/types.ts +0 -4
- package/src/translator/utils.ts +0 -6
- package/src/utils/delay/index.ts +0 -0
- package/src/utils/env.ts +4 -5
- package/src/utils/index.ts +16 -4
- package/src/utils/time-slicing/controller.ts +1 -0
- package/src/utils/types.ts +0 -20
- package/test/concepts/validation-rule/__snapshots__/toEmbeddedTS.spec.ts.snap +2 -1
- package/ts-worker/bundle.js +1 -1
- package/ts-worker/src/index.js +1 -0
- package/out/utils/language-cache/constant.d.ts +0 -18
- package/out/utils/language-cache/constant.js +0 -35
- package/out/utils/language-cache/constant.js.map +0 -1
- package/out/utils/language-cache/index.d.ts +0 -2
- package/out/utils/language-cache/index.js +0 -19
- package/out/utils/language-cache/index.js.map +0 -1
- package/out/utils/language-cache/nasl.d.ts +0 -10
- package/out/utils/language-cache/nasl.js +0 -98
- package/out/utils/language-cache/nasl.js.map +0 -1
- package/out/utils/language-cache/types.d.ts +0 -44
- package/out/utils/language-cache/types.js +0 -4
- package/out/utils/language-cache/types.js.map +0 -1
- package/src/utils/language-cache/constant.ts +0 -37
- package/src/utils/language-cache/index.ts +0 -2
- package/src/utils/language-cache/nasl.ts +0 -83
- package/src/utils/language-cache/types.ts +0 -48
package/ts-worker/src/index.js
CHANGED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/** 数据库名称 */
|
|
2
|
-
export declare const DbName = "language-cache";
|
|
3
|
-
/**
|
|
4
|
-
* 缓存时长
|
|
5
|
-
*
|
|
6
|
-
* @description 3 天时间
|
|
7
|
-
*/
|
|
8
|
-
export declare const NaslCacheLimit: number;
|
|
9
|
-
/** 数据库储存表 */
|
|
10
|
-
export declare enum StoreName {
|
|
11
|
-
Nasl = "Nasl"
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* 标签页 ID
|
|
15
|
-
*
|
|
16
|
-
* @description 应用初始化时通过 sessionStorage 获取,Tab 页刷新时不会变化,tab 页关闭后消失
|
|
17
|
-
*/
|
|
18
|
-
export declare const tabId: number;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tabId = exports.StoreName = exports.NaslCacheLimit = exports.DbName = void 0;
|
|
4
|
-
const env_1 = require("../env");
|
|
5
|
-
/** 数据库名称 */
|
|
6
|
-
exports.DbName = 'language-cache';
|
|
7
|
-
/**
|
|
8
|
-
* 缓存时长
|
|
9
|
-
*
|
|
10
|
-
* @description 3 天时间
|
|
11
|
-
*/
|
|
12
|
-
exports.NaslCacheLimit = 3 * 24 * 60 * 60 * 1000;
|
|
13
|
-
/** 数据库储存表 */
|
|
14
|
-
var StoreName;
|
|
15
|
-
(function (StoreName) {
|
|
16
|
-
StoreName["Nasl"] = "Nasl";
|
|
17
|
-
})(StoreName = exports.StoreName || (exports.StoreName = {}));
|
|
18
|
-
/**
|
|
19
|
-
* 标签页 ID
|
|
20
|
-
*
|
|
21
|
-
* @description 应用初始化时通过 sessionStorage 获取,Tab 页刷新时不会变化,tab 页关闭后消失
|
|
22
|
-
*/
|
|
23
|
-
exports.tabId = (() => {
|
|
24
|
-
if (!env_1.isBrowser) {
|
|
25
|
-
return 0;
|
|
26
|
-
}
|
|
27
|
-
const tabId = sessionStorage.getItem('tabId');
|
|
28
|
-
if (tabId) {
|
|
29
|
-
return Number(tabId);
|
|
30
|
-
}
|
|
31
|
-
const newId = Date.now();
|
|
32
|
-
sessionStorage.setItem('tabId', String(newId));
|
|
33
|
-
return newId;
|
|
34
|
-
})();
|
|
35
|
-
//# sourceMappingURL=constant.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../../src/utils/language-cache/constant.ts"],"names":[],"mappings":";;;AAAA,gCAAmC;AAEnC,YAAY;AACC,QAAA,MAAM,GAAG,gBAAgB,CAAC;AAEvC;;;;GAIG;AACU,QAAA,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtD,aAAa;AACb,IAAY,SAEX;AAFD,WAAY,SAAS;IACnB,0BAAa,CAAA;AACf,CAAC,EAFW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAEpB;AAED;;;;GAIG;AACU,QAAA,KAAK,GAAG,CAAC,GAAG,EAAE;IACzB,IAAI,CAAC,eAAS,EAAE;QACd,OAAO,CAAC,CAAC;KACV;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C,IAAI,KAAK,EAAE;QACT,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;KACtB;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./nasl"), exports);
|
|
18
|
-
__exportStar(require("./types"), exports);
|
|
19
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/language-cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,0CAAwB"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { NaslCacheData, NaslCacheUpdateData } from './types';
|
|
2
|
-
export declare function canUseNaslCache(appId: string, globalChangedTime: number): Promise<boolean>;
|
|
3
|
-
/**
|
|
4
|
-
* 取出缓存
|
|
5
|
-
*
|
|
6
|
-
* @description 只是取出缓存,并不校验缓存的有效性
|
|
7
|
-
*/
|
|
8
|
-
export declare function getNaslCacheWithoutCheck(appId: string): Promise<NaslCacheData>;
|
|
9
|
-
export declare function clearCache(appId: string): Promise<void>;
|
|
10
|
-
export declare function updateNaslCache(appId: string, data: NaslCacheUpdateData): Promise<void>;
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.updateNaslCache = exports.clearCache = exports.getNaslCacheWithoutCheck = exports.canUseNaslCache = void 0;
|
|
27
|
-
const env_1 = require("../env");
|
|
28
|
-
const constant_1 = require("./constant");
|
|
29
|
-
/** 缓存数据库 */
|
|
30
|
-
const database = env_1.isNode
|
|
31
|
-
? undefined
|
|
32
|
-
: Promise.resolve().then(() => __importStar(require('idb'))).then((idb) => idb.openDB(constant_1.DbName, 1, {
|
|
33
|
-
upgrade(db) {
|
|
34
|
-
db.createObjectStore(constant_1.StoreName.Nasl);
|
|
35
|
-
},
|
|
36
|
-
blocked(currentVersion, blockedVersion, event) {
|
|
37
|
-
// TODO: 超出容量限制
|
|
38
|
-
},
|
|
39
|
-
}));
|
|
40
|
-
async function canUseNaslCache(appId, globalChangedTime) {
|
|
41
|
-
const data = await getNaslCacheWithoutCheck(appId);
|
|
42
|
-
const now = Date.now();
|
|
43
|
-
if (!data || data.forceUpdate || ((now - data.createdTime) > constant_1.NaslCacheLimit)) {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
// 缓存等于服务端,则表示可以使用缓存
|
|
47
|
-
return data.updatedTime === globalChangedTime;
|
|
48
|
-
}
|
|
49
|
-
exports.canUseNaslCache = canUseNaslCache;
|
|
50
|
-
/**
|
|
51
|
-
* 取出缓存
|
|
52
|
-
*
|
|
53
|
-
* @description 只是取出缓存,并不校验缓存的有效性
|
|
54
|
-
*/
|
|
55
|
-
async function getNaslCacheWithoutCheck(appId) {
|
|
56
|
-
if (env_1.isNode) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
const db = await database;
|
|
60
|
-
const data = await db.get(constant_1.StoreName.Nasl, appId);
|
|
61
|
-
return data;
|
|
62
|
-
}
|
|
63
|
-
exports.getNaslCacheWithoutCheck = getNaslCacheWithoutCheck;
|
|
64
|
-
async function clearCache(appId) {
|
|
65
|
-
if (env_1.isNode) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
const db = await database;
|
|
69
|
-
await db.delete(constant_1.StoreName.Nasl, appId);
|
|
70
|
-
}
|
|
71
|
-
exports.clearCache = clearCache;
|
|
72
|
-
async function updateNaslCache(appId, data) {
|
|
73
|
-
if (env_1.isNode) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
const db = await database;
|
|
77
|
-
const cache = await db.get(constant_1.StoreName.Nasl, appId);
|
|
78
|
-
// 数据库中数据为新的,不更新缓存
|
|
79
|
-
if (cache && (data.globalChangedTime <= cache.updatedTime)) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
const newData = {
|
|
83
|
-
id: appId,
|
|
84
|
-
tabId: constant_1.tabId,
|
|
85
|
-
data: data.getData(),
|
|
86
|
-
updatedTime: data.globalChangedTime,
|
|
87
|
-
forceUpdate: cache
|
|
88
|
-
? (cache.forceUpdate ||
|
|
89
|
-
data.preGlobalChangedTime !== cache.updatedTime ||
|
|
90
|
-
constant_1.tabId !== cache.tabId)
|
|
91
|
-
: false,
|
|
92
|
-
createdTime: cache?.createdTime ?? Date.now(),
|
|
93
|
-
};
|
|
94
|
-
// await db.delete(StoreName.Nasl, appId);
|
|
95
|
-
await db.put(constant_1.StoreName.Nasl, newData, appId);
|
|
96
|
-
}
|
|
97
|
-
exports.updateNaslCache = updateNaslCache;
|
|
98
|
-
//# sourceMappingURL=nasl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nasl.js","sourceRoot":"","sources":["../../../src/utils/language-cache/nasl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gCAAgC;AAChC,yCAAsE;AAGtE,YAAY;AACZ,MAAM,QAAQ,GAAG,YAAM;IACrB,CAAC,CAAC,SAAS;IACX,CAAC,CAAC,kDAAO,KAAK,IAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAmB,iBAAM,EAAE,CAAC,EAAE;QAClE,OAAO,CAAC,EAAE;YACR,EAAE,CAAC,iBAAiB,CAAC,oBAAS,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK;YAC3C,eAAe;QACjB,CAAC;KACF,CAAC,CAAC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,KAAa,EAAE,iBAAyB;IAC5E,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,yBAAc,CAAC,EAAE;QAC5E,OAAO,KAAK,CAAC;KACd;IAED,oBAAoB;IACpB,OAAO,IAAI,CAAC,WAAW,KAAK,iBAAiB,CAAC;AAChD,CAAC;AAVD,0CAUC;AAED;;;;GAIG;AACI,KAAK,UAAU,wBAAwB,CAAC,KAAa;IAC1D,IAAI,YAAM,EAAE;QACV,OAAO;KACR;IAED,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC;IAC1B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,oBAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC;AARD,4DAQC;AAEM,KAAK,UAAU,UAAU,CAAC,KAAa;IAC5C,IAAI,YAAM,EAAE;QACV,OAAO;KACR;IAED,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC;IAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,oBAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC;AAPD,gCAOC;AAEM,KAAK,UAAU,eAAe,CAAC,KAAa,EAAE,IAAyB;IAC5E,IAAI,YAAM,EAAE;QACV,OAAO;KACR;IAED,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC;IAC1B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,oBAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAElD,kBAAkB;IAClB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;QAC1D,OAAO;KACR;IAED,MAAM,OAAO,GAAkB;QAC7B,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,gBAAK;QACZ,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;QACpB,WAAW,EAAE,IAAI,CAAC,iBAAiB;QACnC,WAAW,EAAE,KAAK;YAChB,CAAC,CAAC,CACA,KAAK,CAAC,WAAW;gBACjB,IAAI,CAAC,oBAAoB,KAAK,KAAK,CAAC,WAAW;gBAC/C,gBAAK,KAAK,KAAK,CAAC,KAAK,CACtB;YACD,CAAC,CAAC,KAAK;QACT,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE;KAC9C,CAAC;IAEF,0CAA0C;IAC1C,MAAM,EAAE,CAAC,GAAG,CAAC,oBAAS,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AA9BD,0CA8BC"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { DBSchema } from 'idb';
|
|
2
|
-
import { StoreName } from './constant';
|
|
3
|
-
export declare type NaslData = object;
|
|
4
|
-
export interface NaslCacheData {
|
|
5
|
-
/** 应用编号 appId */
|
|
6
|
-
id: string;
|
|
7
|
-
/** 开始缓存的时间 */
|
|
8
|
-
createdTime: number;
|
|
9
|
-
/**
|
|
10
|
-
* 变更时间
|
|
11
|
-
*
|
|
12
|
-
* @description 后端为空时,默认为当前时间
|
|
13
|
-
*/
|
|
14
|
-
updatedTime: number;
|
|
15
|
-
/**
|
|
16
|
-
* 强制弃用缓存标志位
|
|
17
|
-
*
|
|
18
|
-
* 在某些特殊情况下,比如 A、B 两个人,A 先改了页面 PageA,然后 B 改了页面 PageB,再然后 A 又修改了页面 PageA。
|
|
19
|
-
* 此时 A 的电脑上标志位是最新的,所以他刷新页面是会走缓存,而不会走后端。
|
|
20
|
-
* 此时两个后端的 Nasl 已经不同,但是因为两个人改的是不同的页面,所以继续走缓存也没关系。
|
|
21
|
-
* 当 A 进入 B 页面的时候,后端会判定产生互锁,让 A 强制刷新页面,此时 A 的标志位是最新的,所以 A 即便刷新页面也会走缓存,
|
|
22
|
-
* 所以这里就需要另外的标志位来让 A 强制不走缓存。
|
|
23
|
-
*/
|
|
24
|
-
forceUpdate: boolean;
|
|
25
|
-
/**
|
|
26
|
-
* 当前标签页编号
|
|
27
|
-
*/
|
|
28
|
-
tabId: number;
|
|
29
|
-
/** 应用 Nasl 数据 */
|
|
30
|
-
data: NaslData;
|
|
31
|
-
}
|
|
32
|
-
export interface NaslCacheUpdateData {
|
|
33
|
-
preGlobalChangedTime: number;
|
|
34
|
-
globalChangedTime: number;
|
|
35
|
-
getData: () => NaslData;
|
|
36
|
-
}
|
|
37
|
-
export interface LanguageDatabase extends DBSchema {
|
|
38
|
-
/** Nasl 缓存数据库 */
|
|
39
|
-
[StoreName.Nasl]: {
|
|
40
|
-
/** AppId 为键名 */
|
|
41
|
-
key: string;
|
|
42
|
-
value: NaslCacheData;
|
|
43
|
-
};
|
|
44
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/language-cache/types.ts"],"names":[],"mappings":";;AACA,yCAAuC"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { isBrowser } from '../env';
|
|
2
|
-
|
|
3
|
-
/** 数据库名称 */
|
|
4
|
-
export const DbName = 'language-cache';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* 缓存时长
|
|
8
|
-
*
|
|
9
|
-
* @description 3 天时间
|
|
10
|
-
*/
|
|
11
|
-
export const NaslCacheLimit = 3 * 24 * 60 * 60 * 1000;
|
|
12
|
-
|
|
13
|
-
/** 数据库储存表 */
|
|
14
|
-
export enum StoreName {
|
|
15
|
-
Nasl = 'Nasl',
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* 标签页 ID
|
|
20
|
-
*
|
|
21
|
-
* @description 应用初始化时通过 sessionStorage 获取,Tab 页刷新时不会变化,tab 页关闭后消失
|
|
22
|
-
*/
|
|
23
|
-
export const tabId = (() => {
|
|
24
|
-
if (!isBrowser) {
|
|
25
|
-
return 0;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const tabId = sessionStorage.getItem('tabId');
|
|
29
|
-
|
|
30
|
-
if (tabId) {
|
|
31
|
-
return Number(tabId);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const newId = Date.now();
|
|
35
|
-
sessionStorage.setItem('tabId', String(newId));
|
|
36
|
-
return newId;
|
|
37
|
-
})();
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { isNode } from '../env';
|
|
2
|
-
import { StoreName, DbName, NaslCacheLimit, tabId } from './constant';
|
|
3
|
-
import { LanguageDatabase, NaslCacheData, NaslCacheUpdateData } from './types';
|
|
4
|
-
|
|
5
|
-
/** 缓存数据库 */
|
|
6
|
-
const database = isNode
|
|
7
|
-
? undefined
|
|
8
|
-
: import('idb').then((idb) => idb.openDB<LanguageDatabase>(DbName, 1, {
|
|
9
|
-
upgrade(db) {
|
|
10
|
-
db.createObjectStore(StoreName.Nasl);
|
|
11
|
-
},
|
|
12
|
-
blocked(currentVersion, blockedVersion, event) {
|
|
13
|
-
// TODO: 超出容量限制
|
|
14
|
-
},
|
|
15
|
-
}));
|
|
16
|
-
|
|
17
|
-
export async function canUseNaslCache(appId: string, globalChangedTime: number) {
|
|
18
|
-
const data = await getNaslCacheWithoutCheck(appId);
|
|
19
|
-
const now = Date.now();
|
|
20
|
-
|
|
21
|
-
if (!data || data.forceUpdate || ((now - data.createdTime) > NaslCacheLimit)) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// 缓存等于服务端,则表示可以使用缓存
|
|
26
|
-
return data.updatedTime === globalChangedTime;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* 取出缓存
|
|
31
|
-
*
|
|
32
|
-
* @description 只是取出缓存,并不校验缓存的有效性
|
|
33
|
-
*/
|
|
34
|
-
export async function getNaslCacheWithoutCheck(appId: string) {
|
|
35
|
-
if (isNode) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const db = await database;
|
|
40
|
-
const data = await db.get(StoreName.Nasl, appId);
|
|
41
|
-
return data;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export async function clearCache(appId: string) {
|
|
45
|
-
if (isNode) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const db = await database;
|
|
50
|
-
await db.delete(StoreName.Nasl, appId);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export async function updateNaslCache(appId: string, data: NaslCacheUpdateData) {
|
|
54
|
-
if (isNode) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const db = await database;
|
|
59
|
-
const cache = await db.get(StoreName.Nasl, appId);
|
|
60
|
-
|
|
61
|
-
// 数据库中数据为新的,不更新缓存
|
|
62
|
-
if (cache && (data.globalChangedTime <= cache.updatedTime)) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const newData: NaslCacheData = {
|
|
67
|
-
id: appId,
|
|
68
|
-
tabId: tabId,
|
|
69
|
-
data: data.getData(),
|
|
70
|
-
updatedTime: data.globalChangedTime,
|
|
71
|
-
forceUpdate: cache
|
|
72
|
-
? (
|
|
73
|
-
cache.forceUpdate ||
|
|
74
|
-
data.preGlobalChangedTime !== cache.updatedTime ||
|
|
75
|
-
tabId !== cache.tabId
|
|
76
|
-
)
|
|
77
|
-
: false,
|
|
78
|
-
createdTime: cache?.createdTime ?? Date.now(),
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
// await db.delete(StoreName.Nasl, appId);
|
|
82
|
-
await db.put(StoreName.Nasl, newData, appId);
|
|
83
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { DBSchema } from 'idb';
|
|
2
|
-
import { StoreName } from './constant';
|
|
3
|
-
|
|
4
|
-
export type NaslData = object;
|
|
5
|
-
|
|
6
|
-
export interface NaslCacheData {
|
|
7
|
-
/** 应用编号 appId */
|
|
8
|
-
id: string;
|
|
9
|
-
/** 开始缓存的时间 */
|
|
10
|
-
createdTime: number;
|
|
11
|
-
/**
|
|
12
|
-
* 变更时间
|
|
13
|
-
*
|
|
14
|
-
* @description 后端为空时,默认为当前时间
|
|
15
|
-
*/
|
|
16
|
-
updatedTime: number;
|
|
17
|
-
/**
|
|
18
|
-
* 强制弃用缓存标志位
|
|
19
|
-
*
|
|
20
|
-
* 在某些特殊情况下,比如 A、B 两个人,A 先改了页面 PageA,然后 B 改了页面 PageB,再然后 A 又修改了页面 PageA。
|
|
21
|
-
* 此时 A 的电脑上标志位是最新的,所以他刷新页面是会走缓存,而不会走后端。
|
|
22
|
-
* 此时两个后端的 Nasl 已经不同,但是因为两个人改的是不同的页面,所以继续走缓存也没关系。
|
|
23
|
-
* 当 A 进入 B 页面的时候,后端会判定产生互锁,让 A 强制刷新页面,此时 A 的标志位是最新的,所以 A 即便刷新页面也会走缓存,
|
|
24
|
-
* 所以这里就需要另外的标志位来让 A 强制不走缓存。
|
|
25
|
-
*/
|
|
26
|
-
forceUpdate: boolean;
|
|
27
|
-
/**
|
|
28
|
-
* 当前标签页编号
|
|
29
|
-
*/
|
|
30
|
-
tabId: number;
|
|
31
|
-
/** 应用 Nasl 数据 */
|
|
32
|
-
data: NaslData;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export interface NaslCacheUpdateData {
|
|
36
|
-
preGlobalChangedTime: number;
|
|
37
|
-
globalChangedTime: number;
|
|
38
|
-
getData: () => NaslData;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface LanguageDatabase extends DBSchema {
|
|
42
|
-
/** Nasl 缓存数据库 */
|
|
43
|
-
[StoreName.Nasl]: {
|
|
44
|
-
/** AppId 为键名 */
|
|
45
|
-
key: string;
|
|
46
|
-
value: NaslCacheData;
|
|
47
|
-
};
|
|
48
|
-
}
|