diff --git a/defaults/meta3d-commonlib/lib/es6_global/src/structure/NullableSt.bs.js b/defaults/meta3d-commonlib/lib/es6_global/src/structure/NullableSt.bs.js index 9e44d85b4..90eb079cb 100644 --- a/defaults/meta3d-commonlib/lib/es6_global/src/structure/NullableSt.bs.js +++ b/defaults/meta3d-commonlib/lib/es6_global/src/structure/NullableSt.bs.js @@ -26,6 +26,10 @@ function isNullable(prim) { return prim == null; } +function getEmpty(param) { + +} + var map = Js_null_undefined.bind; export { @@ -35,5 +39,6 @@ export { map , bind , isNullable , + getEmpty , } /* No side effect */ diff --git a/defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js b/defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js index 43cbed62c..82987b2e9 100644 --- a/defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js +++ b/defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js @@ -26,6 +26,10 @@ function isNullable(prim) { return prim == null; } +function getEmpty(param) { + +} + var map = Js_null_undefined.bind; exports.getExn = getExn; @@ -34,4 +38,5 @@ exports.getWithDefault = getWithDefault; exports.map = map; exports.bind = bind; exports.isNullable = isNullable; +exports.getEmpty = getEmpty; /* No side effect */ diff --git a/defaults/meta3d-commonlib/src/structure/NullableSt.res b/defaults/meta3d-commonlib/src/structure/NullableSt.res index 101973699..0ba3597f7 100755 --- a/defaults/meta3d-commonlib/src/structure/NullableSt.res +++ b/defaults/meta3d-commonlib/src/structure/NullableSt.res @@ -20,3 +20,5 @@ let bind = (nullableData, func) => { } let isNullable = Js.Nullable.isNullable + +let getEmpty = () => Js.Nullable.undefined diff --git a/defaults/meta3d/lib/es6_global/src/app_and_package/AppManager.bs.js b/defaults/meta3d/lib/es6_global/src/app_and_package/AppManager.bs.js index c71f96fd0..8fdbae3bd 100644 --- a/defaults/meta3d/lib/es6_global/src/app_and_package/AppManager.bs.js +++ b/defaults/meta3d/lib/es6_global/src/app_and_package/AppManager.bs.js @@ -36,17 +36,17 @@ function _flatten(arr) { return ArraySt$Meta3dCommonlib.reduceOneParam(arr, Js_array.concat, []); } -function generate(allContributeFileData, allPackageBinaryFiles, allPackageBinaryFileDataStoredInApp, configData, startPackageProtocolName) { +function generate(allContributeFileData, allPackageBinaryFiles, allPackageBinaryFileDataStoredInApp, selectedElements, configData, startPackageProtocolName) { var encoder = new TextEncoder(); - return BinaryFileOperator$Meta3d.generate(ArraySt$Meta3dCommonlib.push(ArraySt$Meta3dCommonlib.push(ArraySt$Meta3dCommonlib.push(ManagerUtils$Meta3d.mergeAllPackageBinaryFiles(ManagerUtils$Meta3d.generate([ - [], - allContributeFileData - ]))(allPackageBinaryFiles), new Uint8Array(BinaryFileOperator$Meta3d.generate(_flatten(ArraySt$Meta3dCommonlib.map(allPackageBinaryFileDataStoredInApp, (function (param) { - return [ - TextEncoder$Meta3d.encodeUint8Array(JSON.stringify(param[0]), encoder), - new Uint8Array(param[1]) - ]; - })))))), TextEncoder$Meta3d.encodeUint8Array(JSON.stringify(NullableSt$Meta3dCommonlib.getWithDefault(configData, [])), encoder)), TextEncoder$Meta3d.encodeUint8Array(startPackageProtocolName, encoder))); + return BinaryFileOperator$Meta3d.generate(ArraySt$Meta3dCommonlib.push(ArraySt$Meta3dCommonlib.push(ArraySt$Meta3dCommonlib.push(ArraySt$Meta3dCommonlib.push(ManagerUtils$Meta3d.mergeAllPackageBinaryFiles(ManagerUtils$Meta3d.generate([ + [], + allContributeFileData + ]))(allPackageBinaryFiles), new Uint8Array(BinaryFileOperator$Meta3d.generate(_flatten(ArraySt$Meta3dCommonlib.map(allPackageBinaryFileDataStoredInApp, (function (param) { + return [ + TextEncoder$Meta3d.encodeUint8Array(JSON.stringify(param[0]), encoder), + new Uint8Array(param[1]) + ]; + })))))), TextEncoder$Meta3d.encodeUint8Array(JSON.stringify(selectedElements), encoder)), TextEncoder$Meta3d.encodeUint8Array(JSON.stringify(NullableSt$Meta3dCommonlib.getWithDefault(configData, [])), encoder)), TextEncoder$Meta3d.encodeUint8Array(startPackageProtocolName, encoder))); } function getExtensionFuncDataStr(extensionFuncData) { @@ -77,7 +77,7 @@ function _parseAllPackageUint8StoredInApp(allPackageUint8StoredInApp) { RE_EXN_ID: "Match_failure", _1: [ "AppManager.res", - 174, + 178, 32 ], Error: new Error() @@ -111,19 +111,19 @@ function _decodeConfigData(configData) { return JSON.parse(FileUtils$Meta3d.removeAlignedEmptyChars(TextDecoder$Meta3d.decodeUint8Array(configData, decoder))); } -function _decodeStartPackageProtocolName(startPackageProtocolName) { +function _decode(data) { var decoder = new TextDecoder("utf-8"); - return TextDecoder$Meta3d.decodeUint8Array(startPackageProtocolName, decoder); + return TextDecoder$Meta3d.decodeUint8Array(data, decoder); } function load(appBinaryFile) { var match = BinaryFileOperator$Meta3d.load(appBinaryFile); - if (match.length !== 6) { + if (match.length !== 7) { throw { RE_EXN_ID: "Match_failure", _1: [ "AppManager.res", - 225, + 227, 6 ], Error: new Error() @@ -133,8 +133,8 @@ function load(appBinaryFile) { var allContributeUint8 = match[1]; var allPackageUint8NotStoredInApp = match[2]; var allPackageUint8StoredInApp = match[3]; - var configData = match[4]; - var startPackageProtocolName = match[5]; + var configData = match[5]; + var startPackageProtocolName = match[6]; var match$1 = ManagerUtils$Meta3d.load([ allExtensionUint8, allContributeUint8, @@ -144,7 +144,7 @@ function load(appBinaryFile) { var state = _loadAllPackageUint8StoredInApp(match$1[0], allPackageUint8StoredInApp); return [ state, - _decodeStartPackageProtocolName(startPackageProtocolName), + _decode(startPackageProtocolName), _decodeConfigData(configData) ]; } @@ -155,12 +155,12 @@ function start(param) { function getAllDataOfApp(appBinaryFile) { var match = BinaryFileOperator$Meta3d.load(appBinaryFile); - if (match.length !== 6) { + if (match.length !== 7) { throw { RE_EXN_ID: "Match_failure", _1: [ "AppManager.res", - 287, + 296, 6 ], Error: new Error() @@ -170,7 +170,8 @@ function getAllDataOfApp(appBinaryFile) { var allContributeUint8 = match[1]; var allPackageUint8NotStoredInApp = match[2]; var allPackageUint8StoredInApp = match[3]; - var configData = match[4]; + var selectedElementsUint8 = match[4]; + var configData = match[5]; return [ _parseAllPackageUint8StoredInApp(allPackageUint8StoredInApp), ManagerUtils$Meta3d.parse3([ @@ -178,7 +179,8 @@ function getAllDataOfApp(appBinaryFile) { allContributeUint8, allPackageUint8NotStoredInApp ]), - _decodeConfigData(configData) + _decodeConfigData(configData), + JSON.parse(_decode(selectedElementsUint8)) ]; } @@ -194,7 +196,7 @@ export { _parseAllPackageUint8StoredInApp , _loadAllPackageUint8StoredInApp , _decodeConfigData , - _decodeStartPackageProtocolName , + _decode , load , start , getAllDataOfApp , diff --git a/defaults/meta3d/lib/js/src/app_and_package/AppManager.bs.js b/defaults/meta3d/lib/js/src/app_and_package/AppManager.bs.js index b80fe2f6f..162549038 100644 --- a/defaults/meta3d/lib/js/src/app_and_package/AppManager.bs.js +++ b/defaults/meta3d/lib/js/src/app_and_package/AppManager.bs.js @@ -36,17 +36,17 @@ function _flatten(arr) { return ArraySt$Meta3dCommonlib.reduceOneParam(arr, Js_array.concat, []); } -function generate(allContributeFileData, allPackageBinaryFiles, allPackageBinaryFileDataStoredInApp, configData, startPackageProtocolName) { +function generate(allContributeFileData, allPackageBinaryFiles, allPackageBinaryFileDataStoredInApp, selectedElements, configData, startPackageProtocolName) { var encoder = new TextEncoder(); - return BinaryFileOperator$Meta3d.generate(ArraySt$Meta3dCommonlib.push(ArraySt$Meta3dCommonlib.push(ArraySt$Meta3dCommonlib.push(ManagerUtils$Meta3d.mergeAllPackageBinaryFiles(ManagerUtils$Meta3d.generate([ - [], - allContributeFileData - ]))(allPackageBinaryFiles), new Uint8Array(BinaryFileOperator$Meta3d.generate(_flatten(ArraySt$Meta3dCommonlib.map(allPackageBinaryFileDataStoredInApp, (function (param) { - return [ - TextEncoder$Meta3d.encodeUint8Array(JSON.stringify(param[0]), encoder), - new Uint8Array(param[1]) - ]; - })))))), TextEncoder$Meta3d.encodeUint8Array(JSON.stringify(NullableSt$Meta3dCommonlib.getWithDefault(configData, [])), encoder)), TextEncoder$Meta3d.encodeUint8Array(startPackageProtocolName, encoder))); + return BinaryFileOperator$Meta3d.generate(ArraySt$Meta3dCommonlib.push(ArraySt$Meta3dCommonlib.push(ArraySt$Meta3dCommonlib.push(ArraySt$Meta3dCommonlib.push(ManagerUtils$Meta3d.mergeAllPackageBinaryFiles(ManagerUtils$Meta3d.generate([ + [], + allContributeFileData + ]))(allPackageBinaryFiles), new Uint8Array(BinaryFileOperator$Meta3d.generate(_flatten(ArraySt$Meta3dCommonlib.map(allPackageBinaryFileDataStoredInApp, (function (param) { + return [ + TextEncoder$Meta3d.encodeUint8Array(JSON.stringify(param[0]), encoder), + new Uint8Array(param[1]) + ]; + })))))), TextEncoder$Meta3d.encodeUint8Array(JSON.stringify(selectedElements), encoder)), TextEncoder$Meta3d.encodeUint8Array(JSON.stringify(NullableSt$Meta3dCommonlib.getWithDefault(configData, [])), encoder)), TextEncoder$Meta3d.encodeUint8Array(startPackageProtocolName, encoder))); } function getExtensionFuncDataStr(extensionFuncData) { @@ -77,7 +77,7 @@ function _parseAllPackageUint8StoredInApp(allPackageUint8StoredInApp) { RE_EXN_ID: "Match_failure", _1: [ "AppManager.res", - 174, + 178, 32 ], Error: new Error() @@ -111,19 +111,19 @@ function _decodeConfigData(configData) { return JSON.parse(FileUtils$Meta3d.removeAlignedEmptyChars(TextDecoder$Meta3d.decodeUint8Array(configData, decoder))); } -function _decodeStartPackageProtocolName(startPackageProtocolName) { +function _decode(data) { var decoder = new TextDecoder("utf-8"); - return TextDecoder$Meta3d.decodeUint8Array(startPackageProtocolName, decoder); + return TextDecoder$Meta3d.decodeUint8Array(data, decoder); } function load(appBinaryFile) { var match = BinaryFileOperator$Meta3d.load(appBinaryFile); - if (match.length !== 6) { + if (match.length !== 7) { throw { RE_EXN_ID: "Match_failure", _1: [ "AppManager.res", - 225, + 227, 6 ], Error: new Error() @@ -133,8 +133,8 @@ function load(appBinaryFile) { var allContributeUint8 = match[1]; var allPackageUint8NotStoredInApp = match[2]; var allPackageUint8StoredInApp = match[3]; - var configData = match[4]; - var startPackageProtocolName = match[5]; + var configData = match[5]; + var startPackageProtocolName = match[6]; var match$1 = ManagerUtils$Meta3d.load([ allExtensionUint8, allContributeUint8, @@ -144,7 +144,7 @@ function load(appBinaryFile) { var state = _loadAllPackageUint8StoredInApp(match$1[0], allPackageUint8StoredInApp); return [ state, - _decodeStartPackageProtocolName(startPackageProtocolName), + _decode(startPackageProtocolName), _decodeConfigData(configData) ]; } @@ -155,12 +155,12 @@ function start(param) { function getAllDataOfApp(appBinaryFile) { var match = BinaryFileOperator$Meta3d.load(appBinaryFile); - if (match.length !== 6) { + if (match.length !== 7) { throw { RE_EXN_ID: "Match_failure", _1: [ "AppManager.res", - 287, + 296, 6 ], Error: new Error() @@ -170,7 +170,8 @@ function getAllDataOfApp(appBinaryFile) { var allContributeUint8 = match[1]; var allPackageUint8NotStoredInApp = match[2]; var allPackageUint8StoredInApp = match[3]; - var configData = match[4]; + var selectedElementsUint8 = match[4]; + var configData = match[5]; return [ _parseAllPackageUint8StoredInApp(allPackageUint8StoredInApp), ManagerUtils$Meta3d.parse3([ @@ -178,7 +179,8 @@ function getAllDataOfApp(appBinaryFile) { allContributeUint8, allPackageUint8NotStoredInApp ]), - _decodeConfigData(configData) + _decodeConfigData(configData), + JSON.parse(_decode(selectedElementsUint8)) ]; } @@ -193,7 +195,7 @@ exports.execGetContributeFunc = execGetContributeFunc; exports._parseAllPackageUint8StoredInApp = _parseAllPackageUint8StoredInApp; exports._loadAllPackageUint8StoredInApp = _loadAllPackageUint8StoredInApp; exports._decodeConfigData = _decodeConfigData; -exports._decodeStartPackageProtocolName = _decodeStartPackageProtocolName; +exports._decode = _decode; exports.load = load; exports.start = start; exports.getAllDataOfApp = getAllDataOfApp; diff --git a/defaults/meta3d/src/Main.d.ts b/defaults/meta3d/src/Main.d.ts index 7fb6d1892..06aa9c134 100755 --- a/defaults/meta3d/src/Main.d.ts +++ b/defaults/meta3d/src/Main.d.ts @@ -4,7 +4,7 @@ import { extensionProtocolName, getExtensionService, getExtensionLife, state, ap import { actionName, supportedEventName, } from "meta3d-type/src/contribute/UIControlProtocolConfigType" import { needConfigData } from "meta3d-type/src/package/StartPackageProtocolConfigType" import { extensionFileData, contributeFileData, extensionPackageData, contributePackageData, extensionFuncData, contributeFuncData } from "./file/ExtensionFileType" -import { extensionPackageData as extensionPackageDataApp, contributePackageData as contributePackageDataApp, packageData } from "./app_and_package/AppAndPackageFileType" +import { extensionPackageData as extensionPackageDataApp, contributePackageData as contributePackageDataApp, packageData, selectedElements } from "./app_and_package/AppAndPackageFileType" import { nullable } from "meta3d-commonlib-ts/src/nullable" export function prepare(): state @@ -90,6 +90,7 @@ export function generateApp( allContributeFileData: Array<[contributePackageDataApp, contributeFuncData]>, allPackageBinaryFiles: allPackageBinaryFiles, allPackageBinaryFileDataStoredInApp: Array<[packageProtocolName, ArrayBuffer]>, + selectedElements: selectedElements, configData: nullable, startPackageProtocolName: string ): ArrayBuffer @@ -125,11 +126,13 @@ export function getAllDataOfPackage( ] ] -export function getAllExtensionAndContributeFileDataOfApp( +export function getAllDataOfApp( appBinaryFile: ArrayBuffer ): [ Array<[extensionPackageDataApp, extensionFuncData]>, - Array<[contributePackageDataApp, contributeFuncData]> + Array<[contributePackageDataApp, contributeFuncData]>, + Array, + selectedElements ] export function startApp( diff --git a/defaults/meta3d/src/app_and_package/AppAndPackageFileType.res b/defaults/meta3d/src/app_and_package/AppAndPackageFileType.res index b5112c28c..14727f86f 100755 --- a/defaults/meta3d/src/app_and_package/AppAndPackageFileType.res +++ b/defaults/meta3d/src/app_and_package/AppAndPackageFileType.res @@ -128,3 +128,5 @@ type packageData = ( packageName, entryExtensionProtocolConfigStr, ) + +type selectedElements diff --git a/defaults/meta3d/src/app_and_package/AppAndPackageFileType.ts b/defaults/meta3d/src/app_and_package/AppAndPackageFileType.ts index c545c8500..c27060178 100755 --- a/defaults/meta3d/src/app_and_package/AppAndPackageFileType.ts +++ b/defaults/meta3d/src/app_and_package/AppAndPackageFileType.ts @@ -60,4 +60,6 @@ type packageName = string type packageVersion = version -export type packageData = [packageProtocol, entryExtensionName, packageVersion, packageName, entryExtensionProtocolConfigStr] \ No newline at end of file +export type packageData = [packageProtocol, entryExtensionName, packageVersion, packageName, entryExtensionProtocolConfigStr] + +export type selectedElements = any \ No newline at end of file diff --git a/defaults/meta3d/src/app_and_package/AppManager.res b/defaults/meta3d/src/app_and_package/AppManager.res index 65e1b73a1..131fbca97 100755 --- a/defaults/meta3d/src/app_and_package/AppManager.res +++ b/defaults/meta3d/src/app_and_package/AppManager.res @@ -108,6 +108,7 @@ let generate = ( allContributeFileData, allPackageBinaryFiles, allPackageBinaryFileDataStoredInApp: array<(packageData, Js.Typed_array.ArrayBuffer.t)>, + selectedElements: selectedElements, configData: Js.Nullable.t, startPackageProtocolName, ) => { @@ -127,6 +128,9 @@ let generate = ( ->BinaryFileOperator.generate ->Uint8Array.fromBuffer, ) + ->Meta3dCommonlib.ArraySt.push( + TextEncoder.encodeUint8Array(selectedElements->Obj.magic->Js.Json.stringify, encoder), + ) ->Meta3dCommonlib.ArraySt.push( TextEncoder.encodeUint8Array( configData @@ -207,13 +211,10 @@ let _decodeConfigData = configData => { ->Obj.magic } -let _decodeStartPackageProtocolName = startPackageProtocolName => { +let _decode = data => { let decoder = TextDecoder.newTextDecoder("utf-8") - TextDecoder.decodeUint8Array(startPackageProtocolName, decoder) - // ->FileUtils.removeAlignedEmptyChars - // ->Js.Json.parseExn - ->Obj.magic + TextDecoder.decodeUint8Array(data, decoder)->Obj.magic } let load = (appBinaryFile: ArrayBuffer.t): ( @@ -221,12 +222,14 @@ let load = (appBinaryFile: ArrayBuffer.t): ( // array, string, Meta3dType.Index.startConfigData, + // selectedElements, ) => { let [ allExtensionUint8, allContributeUint8, allPackageUint8NotStoredInApp, allPackageUint8StoredInApp, + selectedElementsUint8, configData, startPackageProtocolName, ] = BinaryFileOperator.load(appBinaryFile) @@ -240,7 +243,12 @@ let load = (appBinaryFile: ArrayBuffer.t): ( let state = state->_loadAllPackageUint8StoredInApp(allPackageUint8StoredInApp) - (state, _decodeStartPackageProtocolName(startPackageProtocolName), _decodeConfigData(configData)) + ( + state, + _decode(startPackageProtocolName), + _decodeConfigData(configData), + // _decode(selectedElementsUint8), + ) } // let _getStartExtensionProtocolName = ( @@ -283,12 +291,14 @@ let getAllDataOfApp = (appBinaryFile: ArrayBuffer.t): ( array, ), Meta3dType.Index.startConfigData, + selectedElements, ) => { let [ allExtensionUint8, allContributeUint8, allPackageUint8NotStoredInApp, allPackageUint8StoredInApp, + selectedElementsUint8, configData, _, ] = BinaryFileOperator.load(appBinaryFile) @@ -297,5 +307,6 @@ let getAllDataOfApp = (appBinaryFile: ArrayBuffer.t): ( _parseAllPackageUint8StoredInApp(allPackageUint8StoredInApp), [allExtensionUint8, allContributeUint8, allPackageUint8NotStoredInApp]->ManagerUtils.parse3, _decodeConfigData(configData), + _decode(selectedElementsUint8)->Js.Json.parseExn->Obj.magic, ) } diff --git a/defaults/meta3d/test/features/app_manager.feature b/defaults/meta3d/test/features/app_manager.feature index 4b797ef02..fc4c8357f 100755 --- a/defaults/meta3d/test/features/app_manager.feature +++ b/defaults/meta3d/test/features/app_manager.feature @@ -158,7 +158,7 @@ Feature: App Manager And generate one contribute as c1 # And load e1, c1 and convert as l1 And load c1 and convert as l1 - And generate app with p1, l1 as a1 + And generate app with p1, l1 and selectedElements as a1 When get all data of a1 # Then should return parsed p1, parsed e1, parsed c1 - Then should return parsed p1, parsed c1 + Then should return parsed p1, parsed c1, selectedElements diff --git a/defaults/meta3d/test/step-definitions/app_manager.steps.res b/defaults/meta3d/test/step-definitions/app_manager.steps.res index cfd239ba0..ef0cf7aad 100755 --- a/defaults/meta3d/test/step-definitions/app_manager.steps.res +++ b/defaults/meta3d/test/step-definitions/app_manager.steps.res @@ -1124,6 +1124,7 @@ defineFeature(feature, test => { c1.contents, [p1.contents], [], + AppManagerTool.buildSelectedElements(), configData.contents->Obj.magic->Meta3dCommonlib.NullableSt.return, startPackageProtocolName.contents, )->Main.loadApp @@ -1410,6 +1411,7 @@ defineFeature(feature, test => { p1.contents, ), ], + AppManagerTool.buildSelectedElements(), Js.Nullable.null, "", )->Main.loadApp @@ -1434,6 +1436,7 @@ defineFeature(feature, test => { let e1 = ref(Obj.magic(1)) let c1 = ref(Obj.magic(1)) let a1 = ref(Obj.magic(1)) + let selectedElements = ref(Obj.magic(1)) let l1 = ref(Obj.magic(1)) let result = ref(Obj.magic(1)) let e1Name = "e1" @@ -1473,8 +1476,10 @@ defineFeature(feature, test => { ) \"and"( - "generate app with p1, l1 as a1", + "generate app with p1, l1 and selectedElements as a1", () => { + selectedElements := AppManagerTool.buildSelectedElements(~data1=2, ()) + a1 := Main.generateApp( l1.contents, @@ -1485,6 +1490,7 @@ defineFeature(feature, test => { p1.contents, ), ], + selectedElements.contents, Js.Nullable.null, "", ) @@ -1499,15 +1505,16 @@ defineFeature(feature, test => { ) then( - "should return parsed p1, parsed c1", + "should return parsed p1, parsed c1, selectedElements", () => { - let ([parsedP1], ([], [parsedC1], _), _) = result.contents + let ([parsedP1], ([], [parsedC1], _), _, selectedElements_) = result.contents let ((p1Protocol, _, _, _, _), _) = parsedP1 // let (e1PackageData, _) = parsedE1 let (c1PackageData, _) = parsedC1 - (p1Protocol.name, c1PackageData.name)->expect == (p1ProtocolName, c1Name) + (p1Protocol.name, c1PackageData.name, selectedElements_)->expect == + (p1ProtocolName, c1Name, selectedElements.contents) }, ) }) diff --git a/defaults/meta3d/test/tool/AppManagerTool.res b/defaults/meta3d/test/tool/AppManagerTool.res index 4db2b5d80..5a50e717d 100755 --- a/defaults/meta3d/test/tool/AppManagerTool.res +++ b/defaults/meta3d/test/tool/AppManagerTool.res @@ -61,3 +61,7 @@ let buildPackageData = ( packageProtocolConfigStr, ) } + +let buildSelectedElements = (~data1=1, ()): AppAndPackageFileType.selectedElements => { + [data1]->Obj.magic +} diff --git a/doc/0.21.0.org b/doc/0.21.0.org index 0b24fabac..7600b561b 100755 --- a/doc/0.21.0.org +++ b/doc/0.21.0.org @@ -556,15 +556,47 @@ TODO add 发布的页面 TODO store elementMR data as a binary file TODO remove execOrder TODO select multiple -TODO remove it from Contribute Market +TODO remove same name but different version +# TODO ap assemble space: add Elements, SelectedElements +TODO update ElementVisual: + TODO just merge their Selected UI Controls +# TODO select all: add select all elements +# TODO Contribute Market not show element contribute protocol +TODO remove element contribute protocol -TODO just merge their Selected UI Controls +TODO pass compile + +TODO pass bdd test + +TODO pass run test: + publish app with two elements + import app + fix load, start app + fix publish app + add selectedElements + selectedContributes add generated element contribute + # fix register element in editor whole + fix import app + getAllDataOfApp + + compile + bdd test + run test + # need deselect element contribute after import old app + switch from element to ap: loss ui control inspector data + import app->publish app->run app: error: already register element contribute + + + +TODO commit + + TODO dependency check: check their used ui controls should be selected @@ -578,6 +610,13 @@ TODO because element contribute dependent on uiControlInput and Action, if not h TODO give warn message(list them) + + + +TODO autograpde: update selected element assemble data + + + *** TODO feat: action, uiControlInput add input textarea so that can get content by select or input @@ -635,6 +674,13 @@ TODO move two textures to UI Control Inspector->Config TODO run test:publish->engine render + + +*** TODO element space: fix: remove scene view, not update visual! + + + + *** TODO fix: start package in ap assemble space->enter Index: should unstart package @@ -774,20 +820,5 @@ TODO remove extension-> isStart -* TODO 构建三个示例场景 - -1.Engine + Example use Engine package -2.Editor -3.Scene use Editor to build and publish - - -** TODO build one big scene with glbs as showcase - -3D场景漫游 - -** TODO pass run test:publish -TODO update engine package - - * TODO specific->imageBase64: show preview diff --git a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.compiler.log b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.compiler.log index cdba5b402..50fcea080 100644 --- a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.compiler.log +++ b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.compiler.log @@ -1,2 +1,2 @@ -#Start(1700192106684) -#Done(1700192106734) +#Start(1700299236301) +#Done(1700299236351) diff --git a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.ninja_log b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.ninja_log index 9e8306e93..e6b320155 100644 --- a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.ninja_log +++ b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.ninja_log @@ -1,8 +1,8 @@ # ninja log v6 -0 19 1700192106702268356 src/service/ServiceType.ast 785165cefc5839bb -1 20 1700192106702460809 Meta3dEditorWholeProtocol.cmi 27dde7c45547adb8 -19 28 1700192106711932032 src/service/ServiceType.d 702d225c4edca7ca -28 50 1700192106733051342 src/service/ServiceType-Meta3dEditorWholeProtocol.cmj 324f37c2ee6fbbdd -28 50 1700192106733051342 src/service/ServiceType-Meta3dEditorWholeProtocol.cmi 324f37c2ee6fbbdd -28 50 1700192106733051342 ../es6_global/src/service/ServiceType.bs.js 324f37c2ee6fbbdd -28 50 1700192106733051342 ../js/src/service/ServiceType.bs.js 324f37c2ee6fbbdd +0 16 1700299236317477589 src/service/ServiceType.ast 785165cefc5839bb +0 17 1700299236317755918 Meta3dEditorWholeProtocol.cmi 27dde7c45547adb8 +16 24 1700299236326367308 src/service/ServiceType.d 702d225c4edca7ca +24 49 1700299236350951539 src/service/ServiceType-Meta3dEditorWholeProtocol.cmj 4aa447cfd885460e +24 49 1700299236350951539 src/service/ServiceType-Meta3dEditorWholeProtocol.cmi 4aa447cfd885460e +24 49 1700299236350951539 ../es6_global/src/service/ServiceType.bs.js 4aa447cfd885460e +24 49 1700299236350951539 ../js/src/service/ServiceType.bs.js 4aa447cfd885460e diff --git a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/src/service/ServiceType-Meta3dEditorWholeProtocol.cmt b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/src/service/ServiceType-Meta3dEditorWholeProtocol.cmt index 14a6dbfc6..3627d6031 100644 Binary files a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/src/service/ServiceType-Meta3dEditorWholeProtocol.cmt and b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/src/service/ServiceType-Meta3dEditorWholeProtocol.cmt differ diff --git a/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/.gitignore b/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/.gitignore deleted file mode 100755 index 27f6619fb..000000000 --- a/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -.DS_Store -.merlin -.idea/ -.vscode/ -jest_0/ -reference/ -node_modules/ -mine/ - -coverage - -dist/ - -npm-debug - -.bsb.lock - -yarn.lock - diff --git a/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/gulpfile.js b/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/gulpfile.js deleted file mode 100755 index 97d4eec4c..000000000 --- a/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/gulpfile.js +++ /dev/null @@ -1,23 +0,0 @@ -var gulp = require("gulp"); -var path = require("path"); -var publish = require("meta3d-tool-publish-protocol") - -gulp.task("publish_local_env", function (done) { - publish.publishContributeProtocol( - "local", - path.join(__dirname, "package.json"), - path.join(__dirname, "icon.png") - ).then(() => { - done() - }) -}); - -gulp.task("publish_production_env", function (done) { - publish.publishContributeProtocol( - "production", - path.join(__dirname, "package.json"), - path.join(__dirname, "icon.png") - ).then(() => { - done() - }) -}); diff --git a/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/icon.png b/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/icon.png deleted file mode 100755 index 828c6d76a..000000000 Binary files a/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/icon.png and /dev/null differ diff --git a/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/package.json b/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/package.json deleted file mode 100755 index 53fcba02e..000000000 --- a/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "meta3d-element-assemble-element-protocol", - "version": "0.20.0", - "displayName": "element assemble element protocol", - "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", - "author": "Meta3D", - "main": "src/Index.ts", - "license": "", - "scripts": { - "watch": "tsc -w -noEmit", - "meta3d:publish_dev": "tsc && gulp publish_local_env", - "meta3d:publish_pro": "tsc && gulp publish_production_env" - }, - "keywords": [], - "devDependencies": { - "gulp": "^4.0.2", - "typescript": "^4.2.3" - } -} diff --git a/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/src/Index.ts b/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/src/Index.ts deleted file mode 100755 index ae1c82fcf..000000000 --- a/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/src/Index.ts +++ /dev/null @@ -1,3 +0,0 @@ -// export const elementName = "UIViewElement" - -export type elementState = any diff --git a/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/tsconfig.json b/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/tsconfig.json deleted file mode 100755 index 4cef8266c..000000000 --- a/packages/editor-whole/ui/protocols/contribute_protocols/meta3d-element-assemble-element-protocol/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "target": "ES6", - "module": "ES6", - "moduleResolution": "node", - "sourceMap": true, - "resolveJsonModule": true, - "esModuleInterop": true, - "jsx": "react", - "noEmit": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "lib": [ - "DOM", - "ESNext", - ], - "types": [], - "strict": true - }, - "include": [ - "./src" - ] -} \ No newline at end of file diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/AssembleSpace.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/AssembleSpace.res index 109f5c3f3..a5e576b87 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/AssembleSpace.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/AssembleSpace.res @@ -41,6 +41,7 @@ let make = ( ~selectedPackagesFromMarket: selectedPackagesFromMarket, ~selectedExtensionsFromMarket: selectedExtensionsFromMarket, ~selectedContributesFromMarket: selectedContributesFromMarket, + ~selectedElementsFromMarket: selectedElementsFromMarket, ) => { let dispatch = service.react.useDispatch() @@ -89,8 +90,9 @@ let make = ( selectedExtensionsFromMarket selectedContributesFromMarket selectedPackagesFromMarket + // selectedElementsFromMarket /> - | Element => + | Element => | Package => { - dispatch(FrontendUtils.AssembleSpaceStoreType.ResetWhenSwitch) + let resetAllAssemble = dispatchForAssembleSpaceStore => { + dispatchForAssembleSpaceStore(FrontendUtils.AssembleSpaceStoreType.ResetWhenSwitch) } } @@ -15,11 +15,15 @@ let make = ( ~selectedPackagesFromMarket: selectedPackagesFromMarket, ~selectedExtensionsFromMarket: selectedExtensionsFromMarket, ~selectedContributesFromMarket: selectedContributesFromMarket, + // ~selectedElementsFromMarket: selectedElementsFromMarket, ) => { - let dispatch = service.react.useDispatch() + let dispatchForAssembleSpaceStore = service.react.useDispatch() + // let dispatchForApAssembleStore = FrontendUtils.ReduxUtils.ApAssemble.useDispatch(service.react.useDispatch) service.react.useEffectOnce(() => { - Method.resetAllAssemble(dispatch) + Method.resetAllAssemble(dispatchForAssembleSpaceStore) + + // dispatchForApAssembleStore(FrontendUtils.ApAssembleStoreType.SelectAllElements(selectedElementsFromMarket)) ((), None) }) diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/ap_assemble/publish/components/Publish.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/ap_assemble/publish/components/Publish.res index 53f2e4bc0..60f8f6ece 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/ap_assemble/publish/components/Publish.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/ap_assemble/publish/components/Publish.res @@ -3,10 +3,9 @@ open FrontendUtils.Antd open FrontendUtils.AssembleSpaceType module Method = { - let _isSelectedNothing = (selectedPackages, selectedExtensions, selectedContributes) => { + let _isSelectedNothing = (selectedPackages, selectedContributes) => { selectedPackages->Meta3dCommonlib.ArraySt.length == 0 && - selectedExtensions->Meta3dCommonlib.ArraySt.length == 0 && - selectedContributes->Meta3dCommonlib.ArraySt.length == 0 + selectedContributes->Meta3dCommonlib.ListSt.length == 0 } let getStartPackageNeedConfigData = ( @@ -53,34 +52,99 @@ module Method = { )) } + let _buildSelectedElements = (selectedUIControls, selectedUIControlInspectorData) => { + let rec _buildUIControls = (selectedUIControls, selectedUIControlInspectorData) => { + selectedUIControls + ->Meta3dCommonlib.ListSt.mapi(( + index, + {id, displayName, children}: FrontendUtils.ElementAssembleStoreType.uiControl, + ) => { + let uiControlInspectorData: FrontendUtils.ElementAssembleStoreType.uiControlInspectorData = + selectedUIControlInspectorData + ->Meta3dCommonlib.ListSt.nth(index) + ->Meta3dCommonlib.OptionSt.getExn + + ( + { + displayName, + rect: uiControlInspectorData.rect, + isDraw: uiControlInspectorData.isDraw, + input: uiControlInspectorData.input->Meta3dCommonlib.OptionSt.toNullable, + event: uiControlInspectorData.event, + specific: uiControlInspectorData.specific, + children: _buildUIControls(children, uiControlInspectorData.children), + }: FrontendUtils.BackendCloudbaseType.uiControl + ) + }) + ->Meta3dCommonlib.ListSt.toArray + } + + list{ + ( + { + elementName: ElementContributeUtils.getElementContributeName(), + elementVersion: ElementVisualUtils.getElementContributeVersion(), + inspectorData: { + uiControls: _buildUIControls(selectedUIControls, selectedUIControlInspectorData), + }, + }: FrontendUtils.BackendCloudbaseType.elementAssembleData + ), + } + } + + let _addGeneratedElementContribute = ( + service, + selectedContributes, + account, + selectedUIControls, + selectedUIControlInspectorData, + ) => { + selectedContributes->Meta3dCommonlib.ListSt.push( + ElementVisualUtils.generateElementContribute( + service, + account, + ElementContributeUtils.buildElementContributeFileStr( + service, + selectedUIControls, + selectedUIControlInspectorData, + ), + ), + ) + } + let onFinish = ( service, (setUploadProgress, setIsUploadBegin, setVisible), ( account, selectedPackages, - selectedExtensions, selectedContributes, canvasData: FrontendUtils.ElementAssembleStoreType.canvasData, apInspectorData, storedPackageIdsInApp, isChangeSelectedPackagesByDebug, + selectedUIControls, + selectedUIControlInspectorData, ), values, ): Js.Promise.t => { let appName = values["appName"] let appDescription = values["appDescription"] + let account = account->Meta3dCommonlib.OptionSt.getExn + + let selectedElements = _buildSelectedElements( + selectedUIControls, + selectedUIControlInspectorData, + ) + let (selectedPackages, allPackagesStoredInApp) = AppUtils.splitPackages( selectedPackages, storedPackageIdsInApp, ) - let selectedExtensions = selectedExtensions->Meta3dCommonlib.ListSt.toArray - let selectedContributes = selectedContributes->Meta3dCommonlib.ListSt.toArray - - _isSelectedNothing(selectedPackages, selectedExtensions, selectedContributes) + _isSelectedNothing(selectedPackages, selectedContributes) ? { - service.console.error(. {j`请至少选择一个扩展或者贡献`}, None) + service.console.error(. {j`请至少选择一个`}, None) ()->Js.Promise.resolve } @@ -94,6 +158,17 @@ module Method = { ()->Js.Promise.resolve } : { + let selectedContributes = + selectedContributes + ->_addGeneratedElementContribute( + service, + _, + account, + selectedUIControls, + selectedUIControlInspectorData, + ) + ->Meta3dCommonlib.ListSt.toArray + getStartPackageNeedConfigData( service, selectedPackages->Meta3dCommonlib.ListSt.fromArray, @@ -102,8 +177,8 @@ module Method = { let appBinaryFile = AppUtils.generateApp( service, (selectedPackages, allPackagesStoredInApp), - selectedExtensions, selectedContributes, + selectedElements, ( ( { @@ -121,7 +196,7 @@ module Method = { progress => setUploadProgress(_ => progress), appBinaryFile, appName, - account->Meta3dCommonlib.OptionSt.getExn, + account, appDescription, ) ->Meta3dBsMostDefault.Most.drain @@ -157,24 +232,24 @@ module Method = { ) => { let { selectedPackages, - selectedExtensions, selectedContributes, apInspectorData, isPassDependencyGraphCheck, storedPackageIdsInApp, isChangeSelectedPackagesByDebug, } = apAssembleState - let {canvasData} = elementAssembleState + let {canvasData, selectedUIControls, selectedUIControlInspectorData} = elementAssembleState ( ( selectedPackages, - selectedExtensions, selectedContributes, apInspectorData, isPassDependencyGraphCheck, storedPackageIdsInApp, isChangeSelectedPackagesByDebug, + selectedUIControls, + selectedUIControlInspectorData, ), canvasData, ) @@ -186,12 +261,13 @@ let make = (~service: service, ~account: option) => { let ( ( selectedPackages, - selectedExtensions, selectedContributes, apInspectorData, isPassDependencyGraphCheck, storedPackageIdsInApp, isChangeSelectedPackagesByDebug, + selectedUIControls, + selectedUIControlInspectorData, ), canvasData, ) = service.react.useSelector(. Method.useSelector) @@ -240,12 +316,13 @@ let make = (~service: service, ~account: option) => { ( account, selectedPackages, - selectedExtensions, selectedContributes, canvasData, apInspectorData, storedPackageIdsInApp, isChangeSelectedPackagesByDebug, + selectedUIControls, + selectedUIControlInspectorData, ), event->Obj.magic, )->ignore diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/ap_assemble/store/ApAssembleStore.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/ap_assemble/store/ApAssembleStore.res index 9ed5db5ad..7b33e0a01 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/ap_assemble/store/ApAssembleStore.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/ap_assemble/store/ApAssembleStore.res @@ -5,6 +5,7 @@ let _createState = () => { selectedPackages: list{}, selectedExtensions: list{}, selectedContributes: list{}, + // selectedElements: list{}, inspectorCurrentExtensionId: None, inspectorCurrentContributeId: None, inspectorCurrentPackageId: None, @@ -281,6 +282,10 @@ let reducer = (state, action) => { ...state, storedPackageIdsInApp: state.storedPackageIdsInApp->Meta3dCommonlib.ListSt.concat(ids), } + // | SelectAllElements(elements) => { + // ...state, + // selectedElements: elements, + // } } } diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/components/ElementAssemble.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/components/ElementAssemble.res index 8137b3506..12cf0c20c 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/components/ElementAssemble.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/components/ElementAssemble.res @@ -9,7 +9,7 @@ module Method = { } @react.component -let make = (~service: service, ~account, ) => { +let make = (~service: service, ~account, ~selectedElementsFromMarket) => { let dispatch = service.react.useDispatch() service.react.useEffectOnce(() => { @@ -39,7 +39,7 @@ let make = (~service: service, ~account, ) => { - + // diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/element_visual/components/ElementVisual.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/element_visual/components/ElementVisual.res index b15f765e8..d12119e69 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/element_visual/components/ElementVisual.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/element_visual/components/ElementVisual.res @@ -114,18 +114,16 @@ module Method = { ->ignore } - let _generateApp = ( - service, - ((selectPackages, allPackagesStoredInApp), selectedExtensions, selectedContributes), - ) => { + let _generateApp = (service, ((selectPackages, allPackagesStoredInApp), selectedContributes)) => { // visualExtension, AppUtils.generateApp( service, (selectPackages, allPackagesStoredInApp), // selectedExtensions->Meta3dCommonlib.ArraySt.push(visualExtension), - selectedExtensions, + // selectedExtensions, selectedContributes, + list{}, Js.Nullable.null, ) } @@ -133,7 +131,7 @@ module Method = { let startApp = ( service, loopFrameID: React.ref>, - (selectedPackages, selectedExtensions, selectedContributes, storedPackageIdsInApp), + (selectedPackages, selectedContributes, storedPackageIdsInApp), // visualExtension, {isDebug} as apInspectorData: FrontendUtils.ApAssembleStoreType.apInspectorData, ) => { @@ -142,7 +140,7 @@ module Method = { service, ( AppUtils.splitPackages(selectedPackages, storedPackageIdsInApp), - selectedExtensions->Meta3dCommonlib.ListSt.toArray, + // selectedExtensions->Meta3dCommonlib.ListSt.toArray, selectedContributes->Meta3dCommonlib.ListSt.toArray, ), // visualExtension, @@ -174,124 +172,131 @@ module Method = { }, _) } - let isLoaded = elementAssembleData => { - switch elementAssembleData { - | Loading => false - | _ => true - } - } + // let isLoaded = elementAssembleData => { + // switch elementAssembleData { + // | Loading => false + // | _ => true + // } + // } - let _getElementContributeName = () => "meta3d-element-assemble-element" + // let _getElementContributeName = () => "meta3d-element-assemble-element" - let _getElementContributeVersion = () => FrontendUtils.VersionConfig.getPlatformVersion() + // let getElementContributeVersion = () => FrontendUtils.VersionConfig.getPlatformVersion() - let buildElementContributeFileStr = ( - service, - selectedUIControls, - selectedUIControlInspectorData, - ) => - // elementStateFields, + let buildElementContributeFileStr = ElementContributeUtils.buildElementContributeFileStr + // let buildElementContributeFileStr = ( + // service, + // selectedUIControls, + // selectedUIControlInspectorData, + // ) => + // // elementStateFields, - ElementContributeUtils.buildElementContributeFileStr( - service, - _getElementContributeName(), - selectedUIControls, - selectedUIControlInspectorData, - // elementStateFields, - ) + // ElementContributeUtils.buildElementContributeFileStr( + // service, + // _getElementContributeName(), + // selectedUIControls, + // selectedUIControlInspectorData, + // // elementStateFields, + // ) - let _buildContribute = (version, data): FrontendUtils.ApAssembleStoreType.contribute => { - id: "", - version, - protocolIconBase64: "", - protocolConfigStr: None, - // newName: name->Some, - data, - } + // let _buildContribute = (version, data): FrontendUtils.ApAssembleStoreType.contribute => { + // id: "", + // version, + // protocolIconBase64: "", + // protocolConfigStr: None, + // // newName: name->Some, + // data, + // } - let _generateElementContribute = ( - service, - protocolName, - protocolVersion, - elementName, - elementVersion, - account, - displayName, - repoLink, - description, - fileStr, - ) => { - ElementVisualUtils.generateElementContributeBinaryFile( - service, - elementName, - elementVersion, - account, - protocolName, - protocolVersion, - displayName, - repoLink, - description, - fileStr, - ) - ->service.meta3d.loadContribute(. _) - ->_buildContribute(elementVersion, _) - } + // let _generateElementContribute = ( + // service, + // protocolName, + // protocolVersion, + // elementName, + // elementVersion, + // account, + // displayName, + // repoLink, + // description, + // fileStr, + // ) => { + // ElementVisualUtils.generateElementContributeBinaryFile( + // service, + // elementName, + // elementVersion, + // account, + // protocolName, + // protocolVersion, + // displayName, + // repoLink, + // description, + // fileStr, + // ) + // ->service.meta3d.loadContribute(. _) + // ->_buildContribute(elementVersion, _) + // } - let generateElementContributeData = (service, account, fileStr) => { - _generateElementContribute( - service, - ElementContributeUtils.getElementContributeProtocolName(), - ElementContributeUtils.getElementContributeProtocolVersion(), - _getElementContributeName(), - _getElementContributeVersion(), - account, - _getElementContributeName(), - ElementContributeUtils.getElementContributeRepoLink(), - ElementContributeUtils.getElementContributeDescription(), - fileStr, - ) - } + let generateElementContribute = ElementVisualUtils.generateElementContribute + + // (service, account, fileStr) => { + // // _generateElementContribute( + // // service, + // // ElementContributeUtils.getElementContributeProtocolName(), + // // ElementContributeUtils.getElementContributeProtocolVersion(), + // // _getElementContributeName(), + // // getElementContributeVersion(), + // // account, + // // _getElementContributeName(), + // // ElementContributeUtils.getElementContributeRepoLink(), + // // ElementContributeUtils.getElementContributeDescription(), + // // fileStr, + // // ) + + // ElementVisualUtils.generateElementContributeBinaryFile(service, account, fileStr) + // // ->service.meta3d.loadContribute(. _) + // // ->_buildContribute(elementVersion, _) + // } let updateElementContribute = (dispatch, elementContribute) => { dispatch(FrontendUtils.ElementAssembleStoreType.SetElementContribute(elementContribute)) } - let getAndSetElementAssembleData = ( - service, - setElementAssembleData, - selectedContributes, - account, - ) => { - switch selectedContributes->SelectedContributesForElementUtils.getElements { - | elements if elements->Meta3dCommonlib.ListSt.length > 1 => - service.console.error(. {j`should only select 1 element at most`}, None) - - Js.Promise.resolve() - | elements if elements->Meta3dCommonlib.ListSt.length === 0 => - setElementAssembleData(_ => No) - - Js.Promise.resolve() - | list{element} => - let {version, data} = element - - service.backend.getElementAssembleData(. - account->Meta3dCommonlib.OptionSt.getExn, - data.contributePackageData.name, - version, - ) - ->Meta3dBsMostDefault.Most.tap(elementAssembleData => { - Meta3dCommonlib.NullableSt.isNullable(elementAssembleData) - ? setElementAssembleData(_ => No) - : setElementAssembleData(_ => Loaded( - elementAssembleData->Meta3dCommonlib.NullableSt.getExn, - )) - }, _) - ->Meta3dBsMostDefault.Most.drain - ->Js.Promise.catch(e => { - service.console.errorWithExn(. e->FrontendUtils.Error.promiseErrorToExn, None)->Obj.magic - }, _) - } - } + // let getAndSetElementAssembleData = ( + // service, + // setElementAssembleData, + // selectedContributes, + // account, + // ) => { + // switch selectedContributes->SelectedContributesForElementUtils.getElements { + // | elements if elements->Meta3dCommonlib.ListSt.length > 1 => + // service.console.error(. {j`should only select 1 element at most`}, None) + + // Js.Promise.resolve() + // | elements if elements->Meta3dCommonlib.ListSt.length === 0 => + // setElementAssembleData(_ => No) + + // Js.Promise.resolve() + // | list{element} => + // let {version, data} = element + + // service.backend.getElementAssembleData(. + // account->Meta3dCommonlib.OptionSt.getExn, + // data.contributePackageData.name, + // version, + // ) + // ->Meta3dBsMostDefault.Most.tap(elementAssembleData => { + // Meta3dCommonlib.NullableSt.isNullable(elementAssembleData) + // ? setElementAssembleData(_ => No) + // : setElementAssembleData(_ => Loaded( + // elementAssembleData->Meta3dCommonlib.NullableSt.getExn, + // )) + // }, _) + // ->Meta3dBsMostDefault.Most.drain + // ->Js.Promise.catch(e => { + // service.console.errorWithExn(. e->FrontendUtils.Error.promiseErrorToExn, None)->Obj.magic + // }, _) + // } + // } let _generateSelectedUIControls = (service, selectedContributes, uiControls) => { let selectedUIControls = @@ -394,23 +399,62 @@ module Method = { uiControls->_generate(selectedUIControls) } - let importElement = (service, dispatch, elementAssembleData, selectedContributes) => { - switch elementAssembleData { - | Loaded(elementAssembleData) => - let {elementName, elementVersion, inspectorData} = elementAssembleData - let {uiControls} = inspectorData + // let importElement = (service, dispatch, elementAssembleData, selectedContributes) => { + // switch elementAssembleData { + // | Loaded(elementAssembleData) => + // let {elementName, elementVersion, inspectorData} = elementAssembleData + // let {uiControls} = inspectorData - let selectedUIControls = _generateSelectedUIControls(service, selectedContributes, uiControls) + // let selectedUIControls = _generateSelectedUIControls(service, selectedContributes, uiControls) - dispatch( - FrontendUtils.ElementAssembleStoreType.Import( - selectedUIControls, - _generateSelectedUIControlInspectorData(uiControls, selectedUIControls), - ), - ) + // dispatch( + // FrontendUtils.ElementAssembleStoreType.Import( + // selectedUIControls, + // _generateSelectedUIControlInspectorData(uiControls, selectedUIControls), + // ), + // ) - | _ => () - } + // | _ => () + // } + // } + + let importElement = (service, dispatch, selectedElementsFromMarket, selectedContributes) => { + // switch elementAssembleData { + // | Loaded(elementAssembleData) => + // let {elementName, elementVersion, inspectorData} = elementAssembleData + // let {uiControls} = inspectorData + + // let selectedUIControls = _generateSelectedUIControls(service, selectedContributes, uiControls) + + // dispatch( + // FrontendUtils.ElementAssembleStoreType.Import( + // selectedUIControls, + // _generateSelectedUIControlInspectorData(uiControls, selectedUIControls), + // ), + // ) + + // | _ => () + // } + + let mergedUIControls = selectedElementsFromMarket->Meta3dCommonlib.ListSt.reduce([], ( + mergedUIControls, + {inspectorData}: FrontendUtils.BackendCloudbaseType.elementAssembleData, + ) => { + mergedUIControls->Js.Array.concat(inspectorData.uiControls, _) + }) + + let selectedUIControls = _generateSelectedUIControls( + service, + selectedContributes, + mergedUIControls, + ) + + dispatch( + FrontendUtils.ElementAssembleStoreType.Import( + selectedUIControls, + _generateSelectedUIControlInspectorData(mergedUIControls, selectedUIControls), + ), + ) } let setElementContributeToSpaceState = elementContribute => { @@ -424,8 +468,9 @@ module Method = { ) => { let { selectedPackages, - selectedExtensions, + // selectedExtensions, selectedContributes, + // selectedElementsFromMarket, apInspectorData, isPassDependencyGraphCheck, storedPackageIdsInApp, @@ -437,6 +482,7 @@ module Method = { // visualExtension, elementContribute, // elementInspectorData, + isImportElement, } = elementAssembleState // let (_, elementContribute) = elementContribute @@ -444,8 +490,9 @@ module Method = { ( ( selectedPackages, - selectedExtensions, + // selectedExtensions, selectedContributes, + // selectedElementsFromMarket, apInspectorData, isPassDependencyGraphCheck, storedPackageIdsInApp, @@ -458,20 +505,22 @@ module Method = { // elementContribute, elementContribute, // elementInspectorData, + isImportElement, ), ) } } @react.component -let make = (~service: service, ~account: option) => { +let make = (~service: service, ~account: option, ~selectedElementsFromMarket) => { let dispatch = FrontendUtils.ReduxUtils.ElementAssemble.useDispatch(service.react.useDispatch) let ( ( selectedPackages, - selectedExtensions, + // selectedExtensions, selectedContributes, + // selectedElementsFromMarket, apInspectorData, isPassDependencyGraphCheck, storedPackageIdsInApp, @@ -484,10 +533,11 @@ let make = (~service: service, ~account: option) => { // elementContribute, elementContribute, // elementInspectorData, + isImportElement, ), ) = service.react.useSelector(. Method.useSelector) - let (elementAssembleData, setElementAssembleData) = service.react.useState(_ => Loading) + // let (elementAssembleData, setElementAssembleData) = service.react.useState(_ => Loading) let loopFrameID = service.react.useRef(None) // let {elementStateFields} = elementInspectorData @@ -502,30 +552,40 @@ let make = (~service: service, ~account: option) => { // ((), None) // }) - service.react.useEffect1(. () => { - Method.getAndSetElementAssembleData( - service, - setElementAssembleData, - selectedContributes, - account, - )->ignore + // service.react.useEffect1(. () => { + // Method.getAndSetElementAssembleData( + // service, + // setElementAssembleData, + // selectedContributes, + // account, + // )->ignore - None - }, [selectedContributes]) + // None + // }, [selectedContributes]) + + // service.react.useEffect1(. () => { + // FrontendUtils.ErrorUtils.showCatchedErrorMessage(() => { + // Method.importElement(service, dispatch, elementAssembleData, selectedContributes) + // }, 5->Some) + + // None + // }, [elementAssembleData]) service.react.useEffect1(. () => { FrontendUtils.ErrorUtils.showCatchedErrorMessage(() => { - Method.importElement(service, dispatch, elementAssembleData, selectedContributes) + !isImportElement + ? Method.importElement(service, dispatch, selectedElementsFromMarket, selectedContributes) + : () }, 5->Some) None - }, [elementAssembleData]) + }, [selectedElementsFromMarket]) service.react.useEffect1(. () => { selectedUIControlInspectorData->Meta3dCommonlib.ListSt.length > 0 ? FrontendUtils.ErrorUtils.showCatchedErrorMessage(() => { - Method.generateElementContributeData( + Method.generateElementContribute( service, account->Meta3dCommonlib.OptionSt.getExn, Method.buildElementContributeFileStr( @@ -577,7 +637,7 @@ let make = (~service: service, ~account: option) => { Method.startApp( service, loopFrameID, - (selectedPackages, selectedExtensions, selectedContributes, storedPackageIdsInApp), + (selectedPackages, selectedContributes, storedPackageIdsInApp), // visualExtension, apInspectorData, )->ignore @@ -594,7 +654,7 @@ let make = (~service: service, ~account: option) => { }, []) <> - {!Method.isLoaded(elementAssembleData) ?

{React.string(`loading...`)}

: React.null} + // {!Method.isLoaded(elementAssembleData) ?

{React.string(`loading...`)}

: React.null} { +// selectedUIControlInspectorData->Obj.magic->Js.Json.stringify->Js.Json.parseExn->Obj.magic +// } + let buildElementMR = ( service: FrontendUtils.AssembleSpaceType.service, elementName, @@ -78,7 +82,12 @@ elementMR => { // elementStateFields: elementStateFields->Meta3dCommonlib.ListSt.toArray, // reducers, }, - uiControls: _buildUIControls(service, selectedUIControls, selectedUIControlInspectorData), + uiControls: _buildUIControls( + service, + selectedUIControls, + // selectedUIControlInspectorData->Meta3dCommonlib.Log.printForDebug->_deepCopySelectedUIControlInspectorData->Meta3dCommonlib.Log.printForDebug, + selectedUIControlInspectorData, + ), } } diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/publish_element/components/PublishElement.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/publish_element/components/PublishElement.res index 39462fffd..63d274f8a 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/publish_element/components/PublishElement.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/publish_element/components/PublishElement.res @@ -3,14 +3,14 @@ open FrontendUtils.Antd open FrontendUtils.AssembleSpaceType module Method = { - let _getSelectedUIControl = ( - id, - selectedUIControls: FrontendUtils.ElementAssembleStoreType.selectedUIControls, - ) => { - selectedUIControls - ->Meta3dCommonlib.ListSt.find(selectedUIControl => selectedUIControl.id === id) - ->Meta3dCommonlib.OptionSt.getExn - } + // let _getSelectedUIControl = ( + // id, + // selectedUIControls: FrontendUtils.ElementAssembleStoreType.selectedUIControls, + // ) => { + // selectedUIControls + // ->Meta3dCommonlib.ListSt.find(selectedUIControl => selectedUIControl.id === id) + // ->Meta3dCommonlib.OptionSt.getExn + // } let rec _convertToUIControls = ( selectedUIControlInspectorData: FrontendUtils.ElementAssembleStoreType.selectedUIControlInspectorData, @@ -68,58 +68,69 @@ module Method = { // let {elementStateFields} = elementInspectorData - let protocolName = ElementContributeUtils.getElementContributeProtocolName() - let protocolVersion = ElementContributeUtils.getElementContributeProtocolVersion() - let displayName = elementName - let repoLink = ElementContributeUtils.getElementContributeRepoLink() - let description = ElementContributeUtils.getElementContributeDescription() + // let protocolName = ElementContributeUtils.getElementContributeProtocolName() + // let protocolVersion = ElementContributeUtils.getElementContributeProtocolVersion() + // let displayName = elementName + // let repoLink = ElementContributeUtils.getElementContributeRepoLink() + // let description = ElementContributeUtils.getElementContributeDescription() setIsUploadBegin(_ => true) - Meta3dBsMostDefault.Most.mergeArray([ - service.backend.publishElementContribute(. - progress => setUploadProgress(_ => progress), - account->Meta3dCommonlib.OptionSt.getExn, - ( - elementName, - elementVersion, - protocolName, - protocolVersion, - displayName, - repoLink, - description, - ), - ElementVisualUtils.generateElementContributeBinaryFile( - service, - elementName, - elementVersion, - account->Meta3dCommonlib.OptionSt.getExn, - protocolName, - protocolVersion, - displayName, - repoLink, - description, - ElementContributeUtils.buildElementContributeFileStr( - service, - elementName, - selectedUIControls, - selectedUIControlInspectorData, - // elementStateFields, - ), - ), - ), - service.backend.publishElementAssembleData(. - account->Meta3dCommonlib.OptionSt.getExn, - elementName, - elementVersion, - ( - { - // element: elementInspectorData, - uiControls: _convertToUIControls(selectedUIControlInspectorData, selectedUIControls), - }: FrontendUtils.BackendCloudbaseType.inspectorData - ), - ), - ]) + // Meta3dBsMostDefault.Most.mergeArray([ + // // service.backend.publishElementContribute(. + // // progress => setUploadProgress(_ => progress), + // // account->Meta3dCommonlib.OptionSt.getExn, + // // ( + // // elementName, + // // elementVersion, + // // protocolName, + // // protocolVersion, + // // displayName, + // // repoLink, + // // description, + // // ), + // // ElementVisualUtils.generateElementContributeBinaryFile( + // // service, + // // elementName, + // // elementVersion, + // // account->Meta3dCommonlib.OptionSt.getExn, + // // protocolName, + // // protocolVersion, + // // displayName, + // // repoLink, + // // description, + // // ElementContributeUtils.buildElementContributeFileStr( + // // service, + // // elementName, + // // selectedUIControls, + // // selectedUIControlInspectorData, + // // // elementStateFields, + // // ), + // // ), + // // ), + // service.backend.publishElementAssembleData(. + // account->Meta3dCommonlib.OptionSt.getExn, + // elementName, + // elementVersion, + // ( + // { + // // element: elementInspectorData, + // uiControls: _convertToUIControls(selectedUIControlInspectorData, selectedUIControls), + // }: FrontendUtils.BackendCloudbaseType.inspectorData + // ), + // ), + // ]) + service.backend.publishElementAssembleData(. + account->Meta3dCommonlib.OptionSt.getExn, + elementName, + elementVersion, + ( + { + // element: elementInspectorData, + uiControls: _convertToUIControls(selectedUIControlInspectorData, selectedUIControls) + }: FrontendUtils.BackendCloudbaseType.inspectorData + ) + ) ->Meta3dBsMostDefault.Most.drain ->Js.Promise.then_(_ => { setIsUploadBegin(_ => false) diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/run_element_visual_controller/components/RunElementVisualController.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/run_element_visual_controller/components/RunElementVisualController.res index 73631da0b..e8b8d4077 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/run_element_visual_controller/components/RunElementVisualController.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/run_element_visual_controller/components/RunElementVisualController.res @@ -43,8 +43,9 @@ module Method = { ( AppUtils.splitPackages(selectedPackages, storedPackageIdsInApp), selectedExtensions->Meta3dCommonlib.ListSt.toArray, - selectedContributes->Meta3dCommonlib.ListSt.toArray + selectedContributes->Meta3dCommonlib.ListSt.toArray, ), + list{}, elementContribute, ) ->_saveToLocalStorage(service, _) diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/store/ElementAssembleStore.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/store/ElementAssembleStore.res index 08b468a28..ea4b376cd 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/store/ElementAssembleStore.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/store/ElementAssembleStore.res @@ -37,6 +37,7 @@ let _createState = () => { // // handlers: list{}, // // }, // }, + isImportElement: false, } let _setUIControlInspectorData = (state, setFunc, id) => { @@ -211,7 +212,9 @@ let reducer = (state, action) => { state, data => { ...data, - input: inputNameOpt->Meta3dCommonlib.OptionSt.map(inputName => ( {inputName:inputName}:input )) + input: inputNameOpt->Meta3dCommonlib.OptionSt.map((inputName): input => { + inputName: inputName, + }), }, id, ) @@ -242,19 +245,23 @@ let reducer = (state, action) => { ? data.event->Meta3dCommonlib.ArraySt.map(eventData => { eventData.eventName === eventName ? { - { - eventName, - actionName, - } + ( + { + eventName, + actionName, + }: eventData + ) } : eventData }) : data.event->Js.Array.concat( [ - { - eventName, - actionName, - }, + ( + { + eventName, + actionName, + }: eventData + ), ], _, ) @@ -323,6 +330,7 @@ let reducer = (state, action) => { ...state, selectedUIControls, selectedUIControlInspectorData, + isImportElement: true, // elementInspectorData, // elementContribute: None, } diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/ui_control_Inspector/components/UIControlInspector.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/ui_control_Inspector/components/UIControlInspector.res index 01ea7c1ea..619ff4479 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/ui_control_Inspector/components/UIControlInspector.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/ui_control_Inspector/components/UIControlInspector.res @@ -160,7 +160,7 @@ module Method = { dispatch, id, rect, - value->IntUtils.stringToInt->FrontendUtils.ElementAssembleStoreType.IntForRectField, + value->IntUtils.stringToInt->FrontendUtils.CommonType.IntForRectField, ) }} /> @@ -214,7 +214,7 @@ module Method = { setIsDraw( dispatch, id, - value->BoolUtils.stringToBool->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw, + value->BoolUtils.stringToBool->FrontendUtils.CommonType.BoolForIsDraw, ), isDraw ->getIsDrawBoolValue @@ -323,7 +323,7 @@ function (onloadFunc, onprogressFunc, onerrorFunc, file, ){ e ->EventUtils.getEventTargetValue ->SpecificUtils.convertStringToValue(type_) - ->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ->FrontendUtils.CommonType.SpecicFieldDataValue, type_, ) }} @@ -338,7 +338,7 @@ function (onloadFunc, onprogressFunc, onerrorFunc, file, ){ specific, id, i, - imageBase64->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + imageBase64->FrontendUtils.CommonType.SpecicFieldDataValue, type_, ) }, diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/ui_controls/components/UIControls.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/ui_controls/components/UIControls.res index 826a8f278..6867a390a 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/ui_controls/components/UIControls.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/ui_controls/components/UIControls.res @@ -16,7 +16,7 @@ module Method = { { name, type_, - value: value->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + value: value->FrontendUtils.CommonType.SpecicFieldDataValue, } }) } diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/utils/ElementContributeUtils.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/utils/ElementContributeUtils.res index ee7ad15c7..0fa28a881 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/utils/ElementContributeUtils.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/utils/ElementContributeUtils.res @@ -1,4 +1,6 @@ -let getElementContributeProtocolName = () => "meta3d-element-assemble-element-protocol" +let getElementContributeName = () => "meta3d-element-assemble-element" + +let getElementContributeProtocolName = FrontendUtils.ElementUtils.getElementContributeProtocolName let getElementContributeProtocolVersion = () => { j`^${FrontendUtils.VersionConfig.getPlatformVersion()}` @@ -10,14 +12,16 @@ let getElementContributeDescription = () => "element contribute" let buildElementContributeFileStr = ( service, - elementContributeName, + // elementContributeName, selectedUIControls, selectedUIControlInspectorData, - // elementStateFields, ) => { + // elementStateFields, + ElementMRUtils.buildElementMR( service, - elementContributeName, + // elementContributeName, + getElementContributeName(), selectedUIControls->Meta3dCommonlib.ListSt.toArray, selectedUIControlInspectorData->Meta3dCommonlib.ListSt.toArray, // elementStateFields, diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/utils/ElementVisualUtils.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/utils/ElementVisualUtils.res index ef74ec3ac..70e51e292 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/utils/ElementVisualUtils.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/utils/ElementVisualUtils.res @@ -95,14 +95,16 @@ let _removeElementContribute = selectedContributes => { let generateApp = ( service, ((selectPackages, allPackagesStoredInApp), selectedExtensions, selectedContributes), + selectedElements, elementContribute, ) => { AppUtils.generateApp( service, (selectPackages, allPackagesStoredInApp), // selectedExtensions->Meta3dCommonlib.ArraySt.push(runVisualExtension), - selectedExtensions, + // selectedExtensions, selectedContributes->_removeElementContribute->Meta3dCommonlib.ArraySt.push(elementContribute), + selectedElements, Js.Nullable.null, ) } @@ -121,42 +123,57 @@ let getEditorWholePackageProtocolName = () => "meta3d-editor-whole-protocol" // let _getEventProtocolVersion = () => ">=0.12.0" -let generateElementContributeBinaryFile = ( - service: FrontendUtils.AssembleSpaceType.service, - name, +// let generateElementContribute = (service, account, fileStr) => { +// _generateElementContribute( +// service, +// ElementContributeUtils.getElementContributeProtocolName(), +// ElementContributeUtils.getElementContributeProtocolVersion(), +// ElementContributeUtils.getElementContributeName(), +// getElementContributeVersion(), +// account, +// ElementContributeUtils.getElementContributeName(), +// ElementContributeUtils.getElementContributeRepoLink(), +// ElementContributeUtils.getElementContributeDescription(), +// fileStr, +// ) +// } + +let getElementContributeVersion = () => FrontendUtils.VersionConfig.getPlatformVersion() + +let _buildContribute = (version, data): FrontendUtils.ApAssembleStoreType.contribute => { + id: "", version, + protocolIconBase64: "", + protocolConfigStr: None, + data, +} + +let generateElementContribute = ( + service: FrontendUtils.AssembleSpaceType.service, account, - protocolName, - protocolVersion, - displayName, - repoLink, - description, fileStr, ) => { service.meta3d.generateContribute(. ( { - name, - version, + name: ElementContributeUtils.getElementContributeName(), + version: getElementContributeVersion(), account, protocol: { - name: protocolName, - version: protocolVersion, + name: ElementContributeUtils.getElementContributeProtocolName(), + version: ElementContributeUtils.getElementContributeProtocolVersion(), }, - displayName, - repoLink, - description, + displayName: ElementContributeUtils.getElementContributeName(), + repoLink: ElementContributeUtils.getElementContributeRepoLink(), + description: ElementContributeUtils.getElementContributeDescription(), dependentPackageStoredInAppProtocolNameMap: Meta3dCommonlib.ImmutableHashMap.createEmpty(), dependentBlockProtocolNameMap: Meta3dCommonlib.ImmutableHashMap.createEmpty(), - // ->Meta3dCommonlib.ImmutableHashMap.set( - // getUIExtensionProtocolName(), - // _getUIProtocolVersion(), - // ) - // ->Meta3dCommonlib.ImmutableHashMap.set("meta3d-event-protocol", _getEventProtocolVersion()), }: Meta3d.ExtensionFileType.contributePackageData ), fileStr, ) + ->service.meta3d.loadContribute(. _) + ->_buildContribute(getElementContributeVersion(), _) } let cancelAppLoop = ( diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/utils/AppUtils.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/utils/AppUtils.res index fa5ca6af0..6ffaab057 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/utils/AppUtils.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/utils/AppUtils.res @@ -11,33 +11,21 @@ open FrontendUtils.AssembleSpaceType let generateApp = ( service, (selectPackages, allPackagesStoredInApp), - //TODO remove - selectedExtensions, selectedContributes, + selectedElements: list, configData, ) => { service.meta3d.generateApp(. service.meta3d.convertAllFileDataForApp(. - // selectedExtensions->Meta3dCommonlib.ArraySt.map(( - // {data}: FrontendUtils.ApAssembleStoreType.extension, - // ) => data), selectedContributes->Meta3dCommonlib.ArraySt.map(( {data}: FrontendUtils.ApAssembleStoreType.contribute, ) => data), - // selectPackages->Meta3dCommonlib.ArraySt.map(( - // {protocol}: FrontendUtils.PackageAssembleStoreType.package, - // ): Meta3d.ExtensionFileType.extensionProtocolData => { - // name: protocol.name, - // version: protocol.version, - // }), - // selectedExtensions - // ->Meta3dCommonlib.ArraySt.filter(({isStart}) => isStart) - // ->Meta3dCommonlib.ArraySt.map(({data}) => data.extensionPackageData.name), - )->Meta3dCommonlib.Log.printForDebug, + ), selectPackages->Meta3dCommonlib.ArraySt.map(( {binaryFile}: FrontendUtils.PackageAssembleStoreType.package, ) => binaryFile), allPackagesStoredInApp, + selectedElements->Meta3dCommonlib.ListSt.toArray, configData, selectPackages ->Meta3dCommonlib.ArraySt.find(({isStart}: FrontendUtils.PackageAssembleStoreType.package) => diff --git a/platform/assemble-space/test/features/elementVisual.feature b/platform/assemble-space/test/features/elementVisual.feature index 6943c2321..799de2b89 100755 --- a/platform/assemble-space/test/features/elementVisual.feature +++ b/platform/assemble-space/test/features/elementVisual.feature @@ -6,15 +6,15 @@ Feature: ElementVisual Background: prepare Given prepare - Scenario: if not loaded, show loading and canvas - When not loaded and render - Then should show loading and canvas + # Scenario: if not loaded, show loading and canvas + # When not loaded and render + # Then should show loading and canvas - Scenario: if loaded, only show canvas + Scenario: show canvas Given prepare the canvas And set its width, height - When loaded and render - Then should only show canvas + When render + Then should show canvas # Scenario: get and set newest visual extension # Given generate visual extension v1 with old version diff --git a/platform/assemble-space/test/features/importElement.feature b/platform/assemble-space/test/features/importElement.feature index a2ae7c349..5e6970919 100755 --- a/platform/assemble-space/test/features/importElement.feature +++ b/platform/assemble-space/test/features/importElement.feature @@ -6,24 +6,24 @@ Feature: Import Element Background: prepare Given prepare - Rule: get and set element assemble data + # Rule: get and set element assemble data - Scenario: if select more than 1 elements, error - Given generate element contribute element1 - And generate element contribute element2 - And select element1, element2 - When get and set element assemble data - Then should error + # Scenario: if select more than 1 elements, error + # Given generate element contribute element1 + # And generate element contribute element2 + # And select element1, element2 + # When get and set element assemble data + # Then should error - Scenario: else if not select any element, set no element assemble data - When get and set element assemble data - Then should set no element assemble data + # Scenario: else if not select any element, set no element assemble data + # When get and set element assemble data + # Then should set no element assemble data - Scenario: else, get and set its' element assemble data - Given generate element contribute element1 - And select element1 - When get and set element assemble data - Then should get element1's element assemble data + # Scenario: else, get and set its' element assemble data + # Given generate element contribute element1 + # And select element1 + # When get and set element assemble data + # Then should get element1's element assemble data Rule: import element @@ -31,10 +31,12 @@ Feature: Import Element Scenario: import element Given generate ui control u1, u2 And select u1 - And select selected u1 + # And select selected u1 And select u2 - And set element assemble data to d1 which has u1, u2 - When import d1 + And select element e1 which has u1 + And select element e2 which has u2 + # And set element assemble data to d1 which has u1, u2 + When import all selected elements Then should generate selected u1_1, u2_1 And generate selected ui control inspector data i1, i2 And dispatch Import action with u1_1, u2_1, i1, i2 \ No newline at end of file diff --git a/platform/assemble-space/test/features/publish.feature b/platform/assemble-space/test/features/publish.feature index f56c522b7..a3f35d5b8 100755 --- a/platform/assemble-space/test/features/publish.feature +++ b/platform/assemble-space/test/features/publish.feature @@ -36,10 +36,11 @@ Feature: Publish # And select extension e3 And prepare config data And prepare ap inspector data + And prepare element data When publish app Then should mark begin upload # And should generat app with correct extension data and contribute data and start config data - And should generat app with correct contribute data and start config data + And should generate app with correct contribute data which add generated element contribute and builded selected elements and start config data And should publish the generated app And should mark finish upload And should close modal \ No newline at end of file diff --git a/platform/assemble-space/test/features/publishElement.feature b/platform/assemble-space/test/features/publishElement.feature index 804d9a3d6..5d29d7c64 100755 --- a/platform/assemble-space/test/features/publishElement.feature +++ b/platform/assemble-space/test/features/publishElement.feature @@ -24,14 +24,14 @@ Feature: Publish Element Background: prepare data Given prepare data - Scenario: generate element contribute - When publish - Then should generat element contribute - - Scenario: publish element contribute - When publish - Then should mark begin upload - And should publish generated element contribute + # Scenario: generate element contribute + # When publish + # Then should generat element contribute + + # Scenario: publish element contribute + # When publish + # Then should mark begin upload + # And should publish generated element contribute Scenario: publish element assemble data When publish diff --git a/platform/assemble-space/test/step-definitions/__snapshots__/elementVisual.steps.bs.js.snap b/platform/assemble-space/test/step-definitions/__snapshots__/elementVisual.steps.bs.js.snap index 0947d6bd8..31e2bf9a3 100755 --- a/platform/assemble-space/test/step-definitions/__snapshots__/elementVisual.steps.bs.js.snap +++ b/platform/assemble-space/test/step-definitions/__snapshots__/elementVisual.steps.bs.js.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`ElementVisual if loaded, only show canvas 1`] = ` +exports[`ElementVisual show canvas 1`] = ` `; - -exports[`ElementVisual if not loaded, show loading and canvas 1`] = ` -Array [ -

- loading... -

, - , -] -`; diff --git a/platform/assemble-space/test/step-definitions/elementMR.steps.res b/platform/assemble-space/test/step-definitions/elementMR.steps.res index c26dcef33..0b2b9a2da 100755 --- a/platform/assemble-space/test/step-definitions/elementMR.steps.res +++ b/platform/assemble-space/test/step-definitions/elementMR.steps.res @@ -179,16 +179,16 @@ defineFeature(feature, test => { list{ UIControlInspectorTool.buildUIControlInspectorData( ~id="b1", - ~x=1->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~x=1->FrontendUtils.CommonType.IntForRectField, // ~isDraw="a3"->FrontendUtils.ElementAssembleStoreType.ElementStateFieldForIsDraw, - ~isDraw=true->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw, + ~isDraw=true->FrontendUtils.CommonType.BoolForIsDraw, (), ), UIControlInspectorTool.buildUIControlInspectorData( ~id="b2", // ~x="a2"->FrontendUtils.ElementAssembleStoreType.ElementStateFieldForRectField, - ~x=2->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~isDraw=false->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw, + ~x=2->FrontendUtils.CommonType.IntForRectField, + ~isDraw=false->FrontendUtils.CommonType.BoolForIsDraw, (), ), } @@ -339,7 +339,7 @@ defineFeature(feature, test => { list{ UIControlInspectorTool.buildUIControlInspectorData( ~id="b1", - ~x=1->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~x=1->FrontendUtils.CommonType.IntForRectField, ~event=[UIControlInspectorTool.buildEventData(#button_click, "a1")], (), ), @@ -584,8 +584,8 @@ handle click event code... list{ UIControlInspectorTool.buildUIControlInspectorData( ~id="w1", - ~x=1->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~isDraw=true->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw, + ~x=1->FrontendUtils.CommonType.IntForRectField, + ~isDraw=true->FrontendUtils.CommonType.BoolForIsDraw, ~input=UIControlInspectorTool.buildInput("input1")->Some, ~specific=[ UIControlInspectorTool.buildSpecific( @@ -593,19 +593,19 @@ handle click event code... ~type_=#string, ~value="Window1" ->Obj.magic - ->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ->FrontendUtils.CommonType.SpecicFieldDataValue, (), ), UIControlInspectorTool.buildSpecific( ~name="image1", ~type_=#imageBase64, - ~value="aaa"-> Obj.magic->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ~value="aaa"-> Obj.magic->FrontendUtils.CommonType.SpecicFieldDataValue, (), ), UIControlInspectorTool.buildSpecific( ~name="image2", ~type_=#imageBase64, - ~value=Js.Nullable.null-> Obj.magic->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ~value=Js.Nullable.null-> Obj.magic->FrontendUtils.CommonType.SpecicFieldDataValue, (), ), ], @@ -833,16 +833,16 @@ handle click event code... list{ UIControlInspectorTool.buildUIControlInspectorData( ~id="w1", - ~x=1->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~x=1->FrontendUtils.CommonType.IntForRectField, // ~isDraw="a3"->FrontendUtils.ElementAssembleStoreType.ElementStateFieldForIsDraw, - ~isDraw=true->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw, + ~isDraw=true->FrontendUtils.CommonType.BoolForIsDraw, ~specific=[ UIControlInspectorTool.buildSpecific( ~name="label", ~type_=#string, ~value="Window1" ->Obj.magic - ->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ->FrontendUtils.CommonType.SpecicFieldDataValue, (), ), ], @@ -851,8 +851,8 @@ handle click event code... UIControlInspectorTool.buildUIControlInspectorData( ~id="w2", // ~x="a2"->FrontendUtils.ElementAssembleStoreType.ElementStateFieldForRectField, - ~x=2->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~isDraw=false->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw, + ~x=2->FrontendUtils.CommonType.IntForRectField, + ~isDraw=false->FrontendUtils.CommonType.BoolForIsDraw, ~specific=[ UIControlInspectorTool.buildSpecific( ~name="label", @@ -860,7 +860,7 @@ handle click event code... // ~value="label"->FrontendUtils.ElementAssembleStoreType.ElementStateFieldForSpecificDataValue, ~value="Window1" ->Obj.magic - ->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ->FrontendUtils.CommonType.SpecicFieldDataValue, (), ), ], @@ -1138,7 +1138,7 @@ handle click event code... ~type_=#string, ~value="Window1" ->Obj.magic - ->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ->FrontendUtils.CommonType.SpecicFieldDataValue, (), ), ], @@ -1152,7 +1152,7 @@ handle click event code... ~type_=#string, ~value="Window2" ->Obj.magic - ->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ->FrontendUtils.CommonType.SpecicFieldDataValue, (), ), ], diff --git a/platform/assemble-space/test/step-definitions/elementVisual.steps.res b/platform/assemble-space/test/step-definitions/elementVisual.steps.res index 8620690e6..45c094211 100755 --- a/platform/assemble-space/test/step-definitions/elementVisual.steps.res +++ b/platform/assemble-space/test/step-definitions/elementVisual.steps.res @@ -20,52 +20,52 @@ defineFeature(feature, test => { }) } - test(."if not loaded, show loading and canvas", ({given, \"when", \"and", then}) => { - // let useStateStub = ref(Obj.magic(1)) - - _prepare(given, \"and") - - \"when"( - "not loaded and render", - () => { - () - }, - ) - - then( - "should show loading and canvas", - () => { - let useSelectorStub = - createEmptyStub(refJsObjToSandbox(sandbox.contents))->returns( - ( - (list{}, list{}, list{}, ApInspectorTool.buildApInspectorData(), true, list{}), - (CanvasControllerTool.buildCanvasData(), list{}, list{}, None), - ), - _, - ) - - let useStateStub = - createEmptyStub(refJsObjToSandbox(sandbox.contents)) - ->onCall(0, _) - ->returns((ElementVisual.Loading, _ => ElementVisual.Loading), _) - - ElementVisualTool.buildUI( - ~sandbox, - ~service=ServiceTool.build( - ~sandbox, - ~useSelector=useSelectorStub, - ~useState=useStateStub, - (), - ), - (), - ) - ->ReactTestRenderer.create - ->ReactTestTool.createSnapshotAndMatch - }, - ) - }) + // test(."if not loaded, show loading and canvas", ({given, \"when", \"and", then}) => { + // // let useStateStub = ref(Obj.magic(1)) + + // _prepare(given, \"and") + + // \"when"( + // "not loaded and render", + // () => { + // () + // }, + // ) + + // then( + // "should show loading and canvas", + // () => { + // let useSelectorStub = + // createEmptyStub(refJsObjToSandbox(sandbox.contents))->returns( + // ( + // (list{}, list{}, list{}, ApInspectorTool.buildApInspectorData(), true, list{}), + // (CanvasControllerTool.buildCanvasData(), list{}, list{}, None), + // ), + // _, + // ) - test(."if loaded, only show canvas", ({given, \"when", \"and", then}) => { + // let useStateStub = + // createEmptyStub(refJsObjToSandbox(sandbox.contents)) + // ->onCall(0, _) + // ->returns((ElementVisual.Loading, _ => ElementVisual.Loading), _) + + // ElementVisualTool.buildUI( + // ~sandbox, + // ~service=ServiceTool.build( + // ~sandbox, + // ~useSelector=useSelectorStub, + // ~useState=useStateStub, + // (), + // ), + // (), + // ) + // ->ReactTestRenderer.create + // ->ReactTestTool.createSnapshotAndMatch + // }, + // ) + // }) + + test(."show canvas", ({given, \"when", \"and", then}) => { let useSelectorStub = ref(Obj.magic(1)) let useStateStub = ref(Obj.magic(1)) @@ -84,7 +84,7 @@ defineFeature(feature, test => { useSelectorStub := createEmptyStub(refJsObjToSandbox(sandbox.contents))->returns( ( - (list{}, list{}, list{}, ApInspectorTool.buildApInspectorData()), + (list{}, list{}, list{}, list{}, ApInspectorTool.buildApInspectorData()), ( CanvasControllerTool.buildCanvasData(~width=10, ~height=20, ()), list{}, @@ -99,19 +99,20 @@ defineFeature(feature, test => { ) \"when"( - "loaded and render", + "render", () => { - useStateStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) + // useStateStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) - useStateStub.contents - ->onCall(0, _) - ->returns((ElementVisual.Loaded(Obj.magic(1)), _ => ElementVisual.Loaded(Obj.magic(1))), _) - ->ignore + // useStateStub.contents + // ->onCall(0, _) + // ->returns((ElementVisual.Loaded(Obj.magic(1)), _ => ElementVisual.Loaded(Obj.magic(1))), _) + // ->ignore + () }, ) then( - "should only show canvas", + "should show canvas", () => { ElementVisualTool.buildUI( ~sandbox, @@ -507,7 +508,7 @@ defineFeature(feature, test => { (), ), loopFrameIDRef, - (selectedPackages.contents, list{}, list{}, list{}), + (selectedPackages.contents, list{}, list{}), ApInspectorTool.buildApInspectorData(), ) }, diff --git a/platform/assemble-space/test/step-definitions/importElement.steps.res b/platform/assemble-space/test/step-definitions/importElement.steps.res index c3bccd745..2c96337e0 100755 --- a/platform/assemble-space/test/step-definitions/importElement.steps.res +++ b/platform/assemble-space/test/step-definitions/importElement.steps.res @@ -21,155 +21,155 @@ defineFeature(feature, test => { }) } - test(."if select more than 1 elements, error", ({given, \"when", \"and", then}) => { - let element1 = ref(Obj.magic(1)) - let element2 = ref(Obj.magic(1)) - let selectedContributes = ref(list{}) - let errorStub = ref(Obj.magic(1)) - - _prepare(given, \"and") - - given("generate element contribute element1", () => { - element1 := - ElementVisualTool.generateElementContribute( - ~sandbox, - ~service=ServiceTool.build( - ~sandbox, - ~generateContribute=Meta3d.Main.generateContribute->Obj.magic, - ~loadContribute=Meta3d.Main.loadContribute->Obj.magic, - (), - ), - ~elementName="element1", - (), - ) - }) - - \"and"("generate element contribute element2", () => { - element2 := - ElementVisualTool.generateElementContribute( - ~sandbox, - ~service=ServiceTool.build( - ~sandbox, - ~generateContribute=Meta3d.Main.generateContribute->Obj.magic, - ~loadContribute=Meta3d.Main.loadContribute->Obj.magic, - (), - ), - ~elementName="element2", - (), - ) - }) - - \"and"("select element1, element2", () => { - selectedContributes := list{element1.contents, element2.contents} - }) - - CucumberAsync.execStep(\"when", "get and set element assemble data", () => { - errorStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) - - ImportElementTool.getAndSetElementAssembleData( - ServiceTool.build(~sandbox, ~error=errorStub.contents->Obj.magic, ()), - Obj.magic(1), - selectedContributes.contents, - None, - ) - }) - - then("should error", () => { - errorStub.contents - ->Obj.magic - ->SinonTool.calledWithArg2({j`should only select 1 element at most`}, None) - ->expect == true - }) - }) - - test(."else if not select any element, set no element assemble data", ({ - given, - \"when", - \"and", - then, - }) => { - let setElementAssembleDataStub = ref(Obj.magic(1)) - - _prepare(given, \"and") - - CucumberAsync.execStep(\"when", "get and set element assemble data", () => { - setElementAssembleDataStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) - - ImportElementTool.getAndSetElementAssembleData( - ServiceTool.build(~sandbox, ()), - setElementAssembleDataStub.contents->Obj.magic, - list{}, - None, - ) - }) - - then("should set no element assemble data", () => { - ReactHookTool.getValue(~setLocalValueStub=setElementAssembleDataStub.contents, ())->expect == - ImportElementTool.buildNo() - }) - }) - - test(."else, get and set its' element assemble data", ({given, \"when", \"and", then}) => { - let element1 = ref(Obj.magic(1)) - let elementName1 = "element1" - let elementVersion1 = "0.0.1" - let selectedContributes = ref(list{}) - let account = "u1" - let elementAssembleData1 = ImportElementTool.buildElementAssembleData() - let getElementAssembleDataStub = ref(Obj.magic(1)) - let setElementAssembleDataStub = ref(Obj.magic(1)) - - _prepare(given, \"and") - - given("generate element contribute element1", () => { - element1 := - ElementVisualTool.generateElementContribute( - ~sandbox, - ~service=ServiceTool.build( - ~sandbox, - ~generateContribute=Meta3d.Main.generateContribute->Obj.magic, - ~loadContribute=Meta3d.Main.loadContribute->Obj.magic, - (), - ), - ~elementName=elementName1, - ~elementVersion=elementVersion1, - (), - ) - }) - - \"and"("select element1", () => { - selectedContributes := list{element1.contents} - }) - - CucumberAsync.execStep(\"when", "get and set element assemble data", () => { - setElementAssembleDataStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) - getElementAssembleDataStub := - createEmptyStub(refJsObjToSandbox(sandbox.contents))->returns( - elementAssembleData1->Meta3dBsMostDefault.Most.just, - _, - ) - - ImportElementTool.getAndSetElementAssembleData( - ServiceTool.build( - ~sandbox, - ~getElementAssembleData=getElementAssembleDataStub.contents->Obj.magic, - (), - ), - setElementAssembleDataStub.contents->Obj.magic, - selectedContributes.contents, - account->Some, - ) - }) - - then("should get element1's element assemble data", () => { - ( - getElementAssembleDataStub.contents - ->Obj.magic - ->SinonTool.calledWithArg3(account, elementName1, elementVersion1), - ReactHookTool.getValue(~setLocalValueStub=setElementAssembleDataStub.contents, ()), - )->expect == (true, elementAssembleData1->ImportElementTool.buildLoaded) - }) - }) + // test(."if select more than 1 elements, error", ({given, \"when", \"and", then}) => { + // let element1 = ref(Obj.magic(1)) + // let element2 = ref(Obj.magic(1)) + // let selectedContributes = ref(list{}) + // let errorStub = ref(Obj.magic(1)) + + // _prepare(given, \"and") + + // given("generate element contribute element1", () => { + // element1 := + // ElementVisualTool.generateElementContribute( + // ~sandbox, + // ~service=ServiceTool.build( + // ~sandbox, + // ~generateContribute=Meta3d.Main.generateContribute->Obj.magic, + // ~loadContribute=Meta3d.Main.loadContribute->Obj.magic, + // (), + // ), + // ~elementName="element1", + // (), + // ) + // }) + + // \"and"("generate element contribute element2", () => { + // element2 := + // ElementVisualTool.generateElementContribute( + // ~sandbox, + // ~service=ServiceTool.build( + // ~sandbox, + // ~generateContribute=Meta3d.Main.generateContribute->Obj.magic, + // ~loadContribute=Meta3d.Main.loadContribute->Obj.magic, + // (), + // ), + // ~elementName="element2", + // (), + // ) + // }) + + // \"and"("select element1, element2", () => { + // selectedContributes := list{element1.contents, element2.contents} + // }) + + // CucumberAsync.execStep(\"when", "get and set element assemble data", () => { + // errorStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) + + // ImportElementTool.getAndSetElementAssembleData( + // ServiceTool.build(~sandbox, ~error=errorStub.contents->Obj.magic, ()), + // Obj.magic(1), + // selectedContributes.contents, + // None, + // ) + // }) + + // then("should error", () => { + // errorStub.contents + // ->Obj.magic + // ->SinonTool.calledWithArg2({j`should only select 1 element at most`}, None) + // ->expect == true + // }) + // }) + + // test(."else if not select any element, set no element assemble data", ({ + // given, + // \"when", + // \"and", + // then, + // }) => { + // let setElementAssembleDataStub = ref(Obj.magic(1)) + + // _prepare(given, \"and") + + // CucumberAsync.execStep(\"when", "get and set element assemble data", () => { + // setElementAssembleDataStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) + + // ImportElementTool.getAndSetElementAssembleData( + // ServiceTool.build(~sandbox, ()), + // setElementAssembleDataStub.contents->Obj.magic, + // list{}, + // None, + // ) + // }) + + // then("should set no element assemble data", () => { + // ReactHookTool.getValue(~setLocalValueStub=setElementAssembleDataStub.contents, ())->expect == + // ImportElementTool.buildNo() + // }) + // }) + + // test(."else, get and set its' element assemble data", ({given, \"when", \"and", then}) => { + // let element1 = ref(Obj.magic(1)) + // let elementName1 = "element1" + // let elementVersion1 = "0.0.1" + // let selectedContributes = ref(list{}) + // let account = "u1" + // let elementAssembleData1 = ImportElementTool.buildElementAssembleData() + // let getElementAssembleDataStub = ref(Obj.magic(1)) + // let setElementAssembleDataStub = ref(Obj.magic(1)) + + // _prepare(given, \"and") + + // given("generate element contribute element1", () => { + // element1 := + // ElementVisualTool.generateElementContribute( + // ~sandbox, + // ~service=ServiceTool.build( + // ~sandbox, + // ~generateContribute=Meta3d.Main.generateContribute->Obj.magic, + // ~loadContribute=Meta3d.Main.loadContribute->Obj.magic, + // (), + // ), + // ~elementName=elementName1, + // ~elementVersion=elementVersion1, + // (), + // ) + // }) + + // \"and"("select element1", () => { + // selectedContributes := list{element1.contents} + // }) + + // CucumberAsync.execStep(\"when", "get and set element assemble data", () => { + // setElementAssembleDataStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) + // getElementAssembleDataStub := + // createEmptyStub(refJsObjToSandbox(sandbox.contents))->returns( + // elementAssembleData1->Meta3dBsMostDefault.Most.just, + // _, + // ) + + // ImportElementTool.getAndSetElementAssembleData( + // ServiceTool.build( + // ~sandbox, + // ~getElementAssembleData=getElementAssembleDataStub.contents->Obj.magic, + // (), + // ), + // setElementAssembleDataStub.contents->Obj.magic, + // selectedContributes.contents, + // account->Some, + // ) + // }) + + // then("should get element1's element assemble data", () => { + // ( + // getElementAssembleDataStub.contents + // ->Obj.magic + // ->SinonTool.calledWithArg3(account, elementName1, elementVersion1), + // ReactHookTool.getValue(~setLocalValueStub=setElementAssembleDataStub.contents, ()), + // )->expect == (true, elementAssembleData1->ImportElementTool.buildLoaded) + // }) + // }) test(."import element", ({given, \"when", \"and", then}) => { // let element1 = ref(Obj.magic(1)) @@ -177,208 +177,245 @@ defineFeature(feature, test => { // let elementVersion1 = "0.0.1" let selectedContributes = ref(list{}) // let account = "u1" - let elementAssembleData1 = ref(Obj.magic(1)) + // let elementAssembleData1 = ref(Obj.magic(1)) // let getElementAssembleDataStub = ref(Obj.magic(1)) // let setElementAssembleDataStub = ref(Obj.magic(1)) let u1 = ref(Obj.magic(1)) let u2 = ref(Obj.magic(1)) + let e1 = ref(Obj.magic(1)) + let e2 = ref(Obj.magic(1)) // let selectedUIControls = ref(list{}) // let ei1 = ref(Obj.magic(1)) let uiControl1 = ref(Obj.magic(1)) + let uiControl2 = ref(Obj.magic(1)) let id1RandomResult = 0.3 let id2RandomResult = 0.4 let dispatchStub = ref(Obj.magic(1)) _prepare(given, \"and") - given("generate ui control u1, u2", () => { - let windowProtocol: Meta3d.ExtensionFileType.contributeProtocolData = { - name: "meta3d-ui-control-window-protocol", - version: "0.7.0", - } + given( + "generate ui control u1, u2", + () => { + let windowProtocol: Meta3d.ExtensionFileType.contributeProtocolData = { + name: "meta3d-ui-control-window-protocol", + version: "0.7.0", + } - u1 := - ContributeTool.buildContributeData( - ~contributePackageData=ContributeTool.buildContributePackageData( - ~displayName="u1", - ~protocol=windowProtocol, + u1 := + ContributeTool.buildContributeData( + ~contributePackageData=ContributeTool.buildContributePackageData( + ~displayName="u1", + ~protocol=windowProtocol, + (), + ), (), - ), - (), - ) + ) - u2 := - ContributeTool.buildContributeData( - ~contributePackageData=ContributeTool.buildContributePackageData( - ~displayName="u2", - ~protocol=windowProtocol, + u2 := + ContributeTool.buildContributeData( + ~contributePackageData=ContributeTool.buildContributePackageData( + ~displayName="u2", + ~protocol=windowProtocol, + (), + ), (), - ), - (), - ) - }) + ) + }, + ) - \"and"("select u1", () => { - selectedContributes := - list{ - SelectedContributesTool.buildSelectedContribute( - ~protocolConfigStr=""->Some, - // ~newName=None, - ~data=u1.contents, - (), - ), - } - }) + \"and"( + "select u1", + () => { + selectedContributes := + list{ + SelectedContributesTool.buildSelectedContribute( + ~protocolConfigStr=""->Some, + // ~newName=None, + ~data=u1.contents, + (), + ), + } + }, + ) - \"and"("select selected u1", () => { - () - }) + // \"and"("select selected u1", () => { + // () + // }) - \"and"("select u2", () => { - selectedContributes := - selectedContributes.contents->Meta3dCommonlib.ListSt.push( - SelectedContributesTool.buildSelectedContribute( - ~protocolConfigStr=""->Some, - // ~newName=None, - ~data=u2.contents, - (), - ), - ) - }) + \"and"( + "select u2", + () => { + selectedContributes := + selectedContributes.contents->Meta3dCommonlib.ListSt.push( + SelectedContributesTool.buildSelectedContribute( + ~protocolConfigStr=""->Some, + // ~newName=None, + ~data=u2.contents, + (), + ), + ) + }, + ) \"and"( - "set element assemble data to d1 which has u1, u2", + "select element e1 which has u1", () => { uiControl1 := ImportElementTool.buildUIControl( ~displayName="u1", ~rect=UIControlInspectorTool.buildRect( - ~x=1->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~x=1->FrontendUtils.CommonType.IntForRectField, (), ), - ~isDraw=false->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw, + ~isDraw=false->FrontendUtils.CommonType.BoolForIsDraw, ~event=[UIControlInspectorTool.buildEventData(#button_click, "action1")], ~specific=[Obj.magic(10)], - ~children=[ - ImportElementTool.buildUIControl( - ~displayName="u2", - ~rect=UIControlInspectorTool.buildRect( - ~x=2->FrontendUtils.ElementAssembleStoreType.IntForRectField, - (), - ), - ~isDraw=false->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw, - ~event=[UIControlInspectorTool.buildEventData(#button_click, "action2")], - ~specific=[Obj.magic(10)], - ~children=[], - (), - ), - ], + ~children=[], (), ) - elementAssembleData1 := + e1 := ImportElementTool.buildElementAssembleData( ~elementName="d1", ~elementVersion="0.0.1", // ~element=ei1.contents, ~uiControls=[uiControl1.contents], (), - )->ImportElementTool.buildLoaded + ) }, ) - \"when"("import d1", () => { - dispatchStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) - - ImportElementTool.importElement( - ServiceTool.build( - ~sandbox, - ~random=createEmptyStub(refJsObjToSandbox(sandbox.contents)) - ->onCall(0, _) - ->returns(id1RandomResult, _) - ->onCall(1, _) - ->returns(id2RandomResult, _) - ->Obj.magic, - (), - ), - dispatchStub.contents, - elementAssembleData1.contents, - selectedContributes.contents, - ) - }) + \"and"( + "select element e2 which has u2", + () => { + uiControl2 := + ImportElementTool.buildUIControl( + ~displayName="u2", + ~rect=UIControlInspectorTool.buildRect( + ~x=2->FrontendUtils.CommonType.IntForRectField, + (), + ), + ~isDraw=false->FrontendUtils.CommonType.BoolForIsDraw, + ~event=[UIControlInspectorTool.buildEventData(#button_click, "action2")], + ~specific=[Obj.magic(10)], + ~children=[], + (), + ) - then("should generate selected u1_1, u2_1", () => { - () - }) + e2 := + ImportElementTool.buildElementAssembleData( + ~elementName="d2", + ~elementVersion="0.0.1", + ~uiControls=[uiControl2.contents], + (), + ) + }, + ) - \"and"("generate selected ui control inspector data i1, i2", () => { - () - }) + \"when"( + "import all selected elements", + () => { + dispatchStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) + + ImportElementTool.importElement( + ServiceTool.build( + ~sandbox, + ~random=createEmptyStub(refJsObjToSandbox(sandbox.contents)) + ->onCall(0, _) + ->returns(id1RandomResult, _) + ->onCall(1, _) + ->returns(id2RandomResult, _) + ->Obj.magic, + (), + ), + dispatchStub.contents, + list{e1.contents, e2.contents}, + selectedContributes.contents, + ) + }, + ) - \"and"("dispatch Import action with u1_1, u2_1, i1, i2", () => { - let uiControl1Contribute = - selectedContributes.contents->Meta3dCommonlib.ListSt.head->Meta3dCommonlib.OptionSt.getExn + then( + "should generate selected u1_1, u2_1", + () => { + () + }, + ) - let uiControl2Contribute = - selectedContributes.contents->Meta3dCommonlib.ListSt.nth(1)->Meta3dCommonlib.OptionSt.getExn + \"and"( + "generate selected ui control inspector data i1, i2", + () => { + () + }, + ) - let {rect, isDraw, event, specific, children} = uiControl1.contents + \"and"( + "dispatch Import action with u1_1, u2_1, i1, i2", + () => { + let uiControl1Contribute = + selectedContributes.contents->Meta3dCommonlib.ListSt.head->Meta3dCommonlib.OptionSt.getExn - let id1 = IdTool.generateId(id1RandomResult) - let id2 = IdTool.generateId(id2RandomResult) + let uiControl2Contribute = + selectedContributes.contents + ->Meta3dCommonlib.ListSt.nth(1) + ->Meta3dCommonlib.OptionSt.getExn - dispatchStub.contents - ->Obj.magic - ->SinonTool.calledWith( - FrontendUtils.ElementAssembleStoreType.Import( - list{ - SelectedUIControlsTool.buildSelectedUIControl( - ~id=id1, - ~protocolConfigStr=uiControl1Contribute.protocolConfigStr->Meta3dCommonlib.OptionSt.getExn, - ~displayName="u1", - ~protocolIconBase64=uiControl1Contribute.protocolIconBase64, - ~data=uiControl1Contribute.data, - ~parentId=None, - ~children=list{ - SelectedUIControlsTool.buildSelectedUIControl( - ~id=id2, - ~protocolConfigStr=uiControl2Contribute.protocolConfigStr->Meta3dCommonlib.OptionSt.getExn, - ~displayName="u2", - ~protocolIconBase64=uiControl2Contribute.protocolIconBase64, - ~data=uiControl2Contribute.data, - ~parentId=id1->Some, - ~children=list{}, - (), - ), - }, - (), - ), - }, - list{ - UIControlInspectorTool.buildUIControlInspectorData( - ~id=id1, - ~x=rect.x, - ~isDraw, - ~event, - ~specific, - ~children=list{ - UIControlInspectorTool.buildUIControlInspectorData( - ~id=id2, - ~x=children[0].rect.x, - ~isDraw=children[0].isDraw, - ~event=children[0].event, - ~specific=children[0].specific, - ~children=list{}, - (), - ), - }, - (), - ), - }, - // ei1.contents, - ), - ) - ->expect == true - }) + let {rect, isDraw, event, specific} = uiControl1.contents + + let id1 = IdTool.generateId(id1RandomResult) + let id2 = IdTool.generateId(id2RandomResult) + + dispatchStub.contents + ->Obj.magic + ->SinonTool.calledWith( + FrontendUtils.ElementAssembleStoreType.Import( + list{ + SelectedUIControlsTool.buildSelectedUIControl( + ~id=id1, + ~protocolConfigStr=uiControl1Contribute.protocolConfigStr->Meta3dCommonlib.OptionSt.getExn, + ~displayName="u1", + ~protocolIconBase64=uiControl1Contribute.protocolIconBase64, + ~data=uiControl1Contribute.data, + ~parentId=None, + ~children=list{}, + (), + ), + SelectedUIControlsTool.buildSelectedUIControl( + ~id=id2, + ~protocolConfigStr=uiControl2Contribute.protocolConfigStr->Meta3dCommonlib.OptionSt.getExn, + ~displayName="u2", + ~protocolIconBase64=uiControl2Contribute.protocolIconBase64, + ~data=uiControl2Contribute.data, + ~parentId=None, + ~children=list{}, + (), + ), + }, + list{ + UIControlInspectorTool.buildUIControlInspectorData( + ~id=id1, + ~x=rect.x, + ~isDraw, + ~event, + ~specific, + ~children=list{}, + (), + ), + UIControlInspectorTool.buildUIControlInspectorData( + ~id=id2, + ~x=uiControl2.contents.rect.x, + ~isDraw=uiControl2.contents.isDraw, + ~event=uiControl2.contents.event, + ~specific=uiControl2.contents.specific, + ~children=list{}, + (), + ), + }, + ), + ) + ->expect == true + }, + ) }) }) diff --git a/platform/assemble-space/test/step-definitions/publish.steps.res b/platform/assemble-space/test/step-definitions/publish.steps.res index 5d9dd1e0d..22008f605 100755 --- a/platform/assemble-space/test/step-definitions/publish.steps.res +++ b/platform/assemble-space/test/step-definitions/publish.steps.res @@ -14,6 +14,9 @@ defineFeature(feature, test => { given("prepare", () => { sandbox := createSandbox() ReactTestTool.prepare() + + FileTool.buildFakeTextDecoder(FileTool.convertUint8ArrayToBuffer) + FileTool.buildFakeTextEncoder(.) }) } @@ -84,8 +87,6 @@ defineFeature(feature, test => { test(."publish when select nothing", ({given, \"when", \"and", then}) => { let errorStub = ref(Obj.magic(1)) - let selectedExtensions = ref(Obj.magic(1)) - let selectedContributes = ref(Obj.magic(1)) _prepare(given, \"and") @@ -98,7 +99,7 @@ defineFeature(feature, test => { PublishTool.publish( ~sandbox, ~service=ServiceTool.build(~sandbox, ~error=errorStub.contents, ()), - ~selectedExtensions=list{}, + ~selectedPackages=list{}, ~selectedContributes=list{}, (), ) @@ -110,7 +111,7 @@ defineFeature(feature, test => { () => { errorStub.contents ->Obj.magic - ->SinonTool.calledWithArg2({j`请至少选择一个扩展或者贡献`}, None) + ->SinonTool.calledWithArg2({j`请至少选择一个`}, None) ->expect == true }, ) @@ -131,7 +132,7 @@ defineFeature(feature, test => { _, ): Meta3d.AppAndPackageFileType.packageData, ), - selectedExtensions, + // selectedExtensions, selectedContributes, ) => { // given("select extension e1, e2", () => { @@ -258,8 +259,11 @@ defineFeature(feature, test => { test(."generate correct app with config data", ({given, \"when", \"and", then}) => { let selectedPackageBinaryFile1 = Js.Typed_array.ArrayBuffer.make(10) let selectedPackages = ref(Obj.magic(1)) - let selectedExtensions = ref(Obj.magic(1)) + // let selectedExtensions = ref(Obj.magic(1)) let selectedContributes = ref(Obj.magic(1)) + // let selectedElements = ref(Obj.magic(1)) + let selectedUIControls = ref(Obj.magic(1)) + let selectedUIControlInspectorData = ref(Obj.magic(1)) let canvasData = ref(Obj.magic(1)) let apInspectorData = ref(Obj.magic(1)) let values = ref(Obj.magic(1)) @@ -293,7 +297,7 @@ defineFeature(feature, test => { \"and", (selectedPackages, selectedPackageBinaryFile1), (storedPackageIdsInApp, selectedPackageBinaryFile2, p2PackageData), - selectedExtensions, + // selectedExtensions, selectedContributes, ) @@ -344,6 +348,37 @@ defineFeature(feature, test => { }, ) + \"and"( + "prepare element data", + () => { + // selectedElements := ElementTool.buildFakeSelectedElements() + // selectedUIControls := list{} + // selectedUIControlInspectorData := list{} + + selectedUIControls := + list{ + SelectedUIControlsTool.buildSelectedUIControl( + ~id="b1", + ~protocolConfigStr=UIControlProtocolConfigTool.buildButtonContributeProtocolConfigStr(), + ~data=ContributeTool.buildContributeData( + ~contributePackageData=ContributeTool.buildContributePackageData(), + (), + ), + (), + ), + } + selectedUIControlInspectorData := + list{ + UIControlInspectorTool.buildUIControlInspectorData( + ~id="b1", + ~x=1->FrontendUtils.CommonType.IntForRectField, + ~isDraw=true->FrontendUtils.CommonType.BoolForIsDraw, + (), + ), + } + }, + ) + CucumberAsync.execStep( \"when", "publish app", @@ -382,12 +417,17 @@ defineFeature(feature, test => { ~publishApp=publishAppStub.contents->Obj.magic, ~generateApp=generateAppStub.contents->Obj.magic, ~convertAllFileDataForApp=convertAllFileDataStub.contents->Obj.magic, + ~generateContribute=Meta3d.Main.generateContribute->Obj.magic, + ~loadContribute=Meta3d.Main.loadContribute->Obj.magic, (), ), ~selectedPackages=selectedPackages.contents, // ~selectedExtensions=selectedExtensions.contents, ~selectedContributes=selectedContributes.contents, ~storedPackageIdsInApp=storedPackageIdsInApp.contents, + // ~selectedElements=selectedElements.contents, + ~selectedUIControls=selectedUIControls.contents, + ~selectedUIControlInspectorData=selectedUIControlInspectorData.contents, (), ) }, @@ -408,17 +448,19 @@ defineFeature(feature, test => { ) \"and"( - "should generat app with correct contribute data and start config data", + "should generate app with correct contribute data which add generated element contribute and builded selected elements and start config data", () => { let {isDebug, clearColor, skinName} = apInspectorData.contents ( generateAppStub.contents ->Obj.magic - ->SinonTool.calledWithArg4( + ->SinonTool.calledWithArg5( matchAny, [selectedPackageBinaryFile1], [(p2PackageData, selectedPackageBinaryFile2)], + // selectedElements.contents->Meta3dCommonlib.ListSt.toArray, + matchAny, ( canvasData.contents, { @@ -429,12 +471,17 @@ defineFeature(feature, test => { }, ), ), + generateAppStub.contents + ->Obj.magic + ->SinonTool.getArg(~argIndex=3, ~stub=_, ()) + ->Js.Json.stringify + ->NewlineTool.removeBlankChar, SinonTool.getAllArgsJson(convertAllFileDataStub.contents, 0), )->expect == ( true, - // "[[{\"extensionPackageData\":{\"name\":\"e1\",\"version\":\"0.0.1\",\"account\":\"meta3d\",\"protocol\":{\"name\":\"p1\",\"version\":\"^0.0.1\"},\"displayName\":\"\",\"repoLink\":\"\",\"description\":\"\",\"dependentPackageStoredInAppProtocolNameMap\":{},\"dependentBlockProtocolNameMap\":{}},\"extensionFuncData\":{}},{\"extensionPackageData\":{\"name\":\"e2\",\"version\":\"0.0.1\",\"account\":\"meta3d\",\"protocol\":{\"name\":\"p1\",\"version\":\"^0.0.1\"},\"displayName\":\"\",\"repoLink\":\"\",\"description\":\"\",\"dependentPackageStoredInAppProtocolNameMap\":{},\"dependentBlockProtocolNameMap\":{}},\"extensionFuncData\":{}},{\"extensionPackageData\":{\"name\":\"e3\",\"version\":\"0.0.1\",\"account\":\"meta3d\",\"protocol\":{\"name\":\"p1\",\"version\":\"^0.0.1\"},\"displayName\":\"\",\"repoLink\":\"\",\"description\":\"\",\"dependentPackageStoredInAppProtocolNameMap\":{},\"dependentBlockProtocolNameMap\":{}},\"extensionFuncData\":{}}],[{\"contributePackageData\":{\"name\":\"c1\",\"version\":\"0.0.1\",\"account\":\"meta3d\",\"protocol\":{\"name\":\"p1\",\"version\":\"^0.0.1\"},\"displayName\":\"d1\",\"repoLink\":\"\",\"description\":\"dp1\",\"dependentPackageStoredInAppProtocolNameMap\":{},\"dependentBlockProtocolNameMap\":{}},\"contributeFuncData\":{}},{\"contributePackageData\":{\"name\":\"c2\",\"version\":\"0.0.1\",\"account\":\"meta3d\",\"protocol\":{\"name\":\"p1\",\"version\":\"^0.0.1\"},\"displayName\":\"d1\",\"repoLink\":\"\",\"description\":\"dp1\",\"dependentPackageStoredInAppProtocolNameMap\":{},\"dependentBlockProtocolNameMap\":{}},\"contributeFuncData\":{}}],[\"e3\"]]", - "[[{\"contributePackageData\":{\"name\":\"c1\",\"version\":\"0.0.1\",\"account\":\"meta3d\",\"protocol\":{\"name\":\"p1\",\"version\":\"^0.0.1\"},\"displayName\":\"d1\",\"repoLink\":\"\",\"description\":\"dp1\",\"dependentPackageStoredInAppProtocolNameMap\":{},\"dependentBlockProtocolNameMap\":{}},\"contributeFuncData\":{}},{\"contributePackageData\":{\"name\":\"c2\",\"version\":\"0.0.1\",\"account\":\"meta3d\",\"protocol\":{\"name\":\"p1\",\"version\":\"^0.0.1\"},\"displayName\":\"d1\",\"repoLink\":\"\",\"description\":\"dp1\",\"dependentPackageStoredInAppProtocolNameMap\":{},\"dependentBlockProtocolNameMap\":{}},\"contributeFuncData\":{}}]]", + "[{\"elementName\":\"meta3d-element-assemble-element\",\"elementVersion\":\"0.20.0\",\"inspectorData\":{\"uiControls\":[{\"displayName\":\"e1\",\"rect\":{\"x\":{\"_0\":1},\"y\":{\"_0\":0},\"width\":{\"_0\":0},\"height\":{\"_0\":0}},\"isDraw\":{\"_0\":true},\"event\":[],\"specific\":[],\"children\":[]}]}}]", + "[[{\"contributePackageData\":{\"name\":\"c1\",\"version\":\"0.0.1\",\"account\":\"meta3d\",\"protocol\":{\"name\":\"p1\",\"version\":\"^0.0.1\"},\"displayName\":\"d1\",\"repoLink\":\"\",\"description\":\"dp1\",\"dependentPackageStoredInAppProtocolNameMap\":{},\"dependentBlockProtocolNameMap\":{}},\"contributeFuncData\":{}},{\"contributePackageData\":{\"name\":\"c2\",\"version\":\"0.0.1\",\"account\":\"meta3d\",\"protocol\":{\"name\":\"p1\",\"version\":\"^0.0.1\"},\"displayName\":\"d1\",\"repoLink\":\"\",\"description\":\"dp1\",\"dependentPackageStoredInAppProtocolNameMap\":{},\"dependentBlockProtocolNameMap\":{}},\"contributeFuncData\":{}},{\"contributePackageData\":{\"name\":\"meta3d-element-assemble-element\",\"version\":\"0.20.0\",\"account\":\"u1\",\"protocol\":{\"name\":\"meta3d-element-assemble-element-protocol\",\"version\":\"^0.20.0\"},\"displayName\":\"meta3d-element-assemble-element\",\"repoLink\":\"\",\"description\":\"element contribute\",\"dependentPackageStoredInAppProtocolNameMap\":{},\"dependentBlockProtocolNameMap\":{}},\"contributeFuncData\":{\"0\":10,\"1\":119,\"2\":105,\"3\":110,\"4\":100,\"5\":111,\"6\":119,\"7\":46,\"8\":67,\"9\":111,\"10\":110,\"11\":116,\"12\":114,\"13\":105,\"14\":98,\"15\":117,\"16\":116,\"17\":101,\"18\":32,\"19\":61,\"20\":32,\"21\":123,\"22\":10,\"23\":32,\"24\":32,\"25\":32,\"26\":32,\"27\":103,\"28\":101,\"29\":116,\"30\":67,\"31\":111,\"32\":110,\"33\":116,\"34\":114,\"35\":105,\"36\":98,\"37\":117,\"38\":116,\"39\":101,\"40\":58,\"41\":32,\"42\":40,\"43\":97,\"44\":112,\"45\":105,\"46\":41,\"47\":32,\"48\":61,\"49\":62,\"50\":32,\"51\":123,\"52\":10,\"53\":32,\"54\":32,\"55\":32,\"56\":32,\"57\":32,\"58\":32,\"59\":32,\"60\":32,\"61\":114,\"62\":101,\"63\":116,\"64\":117,\"65\":114,\"66\":110,\"67\":32,\"68\":123,\"69\":10,\"70\":32,\"71\":32,\"72\":32,\"73\":32,\"74\":32,\"75\":32,\"76\":32,\"77\":32,\"78\":32,\"79\":32,\"80\":32,\"81\":32,\"82\":101,\"83\":108,\"84\":101,\"85\":109,\"86\":101,\"87\":110,\"88\":116,\"89\":78,\"90\":97,\"91\":109,\"92\":101,\"93\":58,\"94\":34,\"95\":109,\"96\":101,\"97\":116,\"98\":97,\"99\":51,\"100\":100,\"101\":45,\"102\":101,\"103\":108,\"104\":101,\"105\":109,\"106\":101,\"107\":110,\"108\":116,\"109\":45,\"110\":97,\"111\":115,\"112\":115,\"113\":101,\"114\":109,\"115\":98,\"116\":108,\"117\":101,\"118\":45,\"119\":101,\"120\":108,\"121\":101,\"122\":109,\"123\":101,\"124\":110,\"125\":116,\"126\":34,\"127\":44,\"128\":10,\"129\":32,\"130\":32,\"131\":32,\"132\":32,\"133\":32,\"134\":32,\"135\":32,\"136\":32,\"137\":32,\"138\":32,\"139\":32,\"140\":32,\"141\":101,\"142\":120,\"143\":101,\"144\":99,\"145\":79,\"146\":114,\"147\":100,\"148\":101,\"149\":114,\"150\":58,\"151\":32,\"152\":48,\"153\":44,\"154\":10,\"155\":32,\"156\":32,\"157\":32,\"158\":32,\"159\":32,\"160\":32,\"161\":32,\"162\":32,\"163\":32,\"164\":32,\"165\":32,\"166\":32,\"167\":101,\"168\":108,\"169\":101,\"170\":109,\"171\":101,\"172\":110,\"173\":116,\"174\":83,\"175\":116,\"176\":97,\"177\":116,\"178\":101,\"179\":58,\"180\":32,\"181\":123,\"182\":125,\"183\":44,\"184\":10,\"185\":32,\"186\":32,\"187\":32,\"188\":32,\"189\":32,\"190\":32,\"191\":32,\"192\":32,\"193\":32,\"194\":32,\"195\":32,\"196\":32,\"197\":101,\"198\":108,\"199\":101,\"200\":109,\"201\":101,\"202\":110,\"203\":116,\"204\":70,\"205\":117,\"206\":110,\"207\":99,\"208\":58,\"209\":32,\"210\":40,\"211\":109,\"212\":101,\"213\":116,\"214\":97,\"215\":51,\"216\":100,\"217\":83,\"218\":116,\"219\":97,\"220\":116,\"221\":101,\"222\":44,\"223\":32,\"224\":101,\"225\":108,\"226\":101,\"227\":109,\"228\":101,\"229\":110,\"230\":116,\"231\":83,\"232\":116,\"233\":97,\"234\":116,\"235\":101,\"236\":41,\"237\":32,\"238\":61,\"239\":62,\"240\":32,\"241\":123,\"242\":10,\"243\":32,\"244\":32,\"245\":32,\"246\":32,\"247\":32,\"248\":32,\"249\":32,\"250\":32,\"251\":32,\"252\":32,\"253\":32,\"254\":32,\"255\":32,\"256\":32,\"257\":32,\"258\":32,\"259\":108,\"260\":101,\"261\":116,\"262\":32,\"263\":117,\"264\":105,\"265\":32,\"266\":61,\"267\":32,\"268\":97,\"269\":112,\"270\":105,\"271\":46,\"272\":103,\"273\":101,\"274\":116,\"275\":80,\"276\":97,\"277\":99,\"278\":107,\"279\":97,\"280\":103,\"281\":101,\"282\":83,\"283\":101,\"284\":114,\"285\":118,\"286\":105,\"287\":99,\"288\":101,\"289\":40,\"290\":109,\"291\":101,\"292\":116,\"293\":97,\"294\":51,\"295\":100,\"296\":83,\"297\":116,\"298\":97,\"299\":116,\"300\":101,\"301\":44,\"302\":32,\"303\":34,\"304\":109,\"305\":101,\"306\":116,\"307\":97,\"308\":51,\"309\":100,\"310\":45,\"311\":101,\"312\":100,\"313\":105,\"314\":116,\"315\":111,\"316\":114,\"317\":45,\"318\":119,\"319\":104,\"320\":111,\"321\":108,\"322\":101,\"323\":45,\"324\":112,\"325\":114,\"326\":111,\"327\":116,\"328\":111,\"329\":99,\"330\":111,\"331\":108,\"332\":34,\"333\":41,\"334\":46,\"335\":117,\"336\":105,\"337\":40,\"338\":109,\"339\":101,\"340\":116,\"341\":97,\"342\":51,\"343\":100,\"344\":83,\"345\":116,\"346\":97,\"347\":116,\"348\":101,\"349\":41,\"350\":10,\"351\":10,\"352\":32,\"353\":32,\"354\":32,\"355\":32,\"356\":32,\"357\":32,\"358\":32,\"359\":32,\"360\":32,\"361\":32,\"362\":32,\"363\":32,\"364\":32,\"365\":32,\"366\":32,\"367\":32,\"368\":108,\"369\":101,\"370\":116,\"371\":32,\"372\":123,\"373\":32,\"374\":103,\"375\":101,\"376\":116,\"377\":85,\"378\":73,\"379\":67,\"380\":111,\"381\":110,\"382\":116,\"383\":114,\"384\":111,\"385\":108,\"386\":70,\"387\":117,\"388\":110,\"389\":99,\"390\":44,\"391\":32,\"392\":103,\"393\":101,\"394\":116,\"395\":73,\"396\":110,\"397\":112,\"398\":117,\"399\":116,\"400\":70,\"401\":117,\"402\":110,\"403\":99,\"404\":32,\"405\":125,\"406\":32,\"407\":61,\"408\":32,\"409\":117,\"410\":105,\"411\":10,\"412\":10,\"413\":32,\"414\":32,\"415\":32,\"416\":32,\"417\":108,\"418\":101,\"419\":116,\"420\":32,\"421\":32,\"422\":61,\"423\":32,\"424\":103,\"425\":101,\"426\":116,\"427\":85,\"428\":73,\"429\":67,\"430\":111,\"431\":110,\"432\":116,\"433\":114,\"434\":111,\"435\":108,\"436\":70,\"437\":117,\"438\":110,\"439\":99,\"440\":40,\"441\":109,\"442\":101,\"443\":116,\"444\":97,\"445\":51,\"446\":100,\"447\":83,\"448\":116,\"449\":97,\"450\":116,\"451\":101,\"452\":44,\"453\":34,\"454\":34,\"455\":41,\"456\":10,\"457\":32,\"458\":32,\"459\":32,\"460\":32,\"461\":10,\"462\":32,\"463\":32,\"464\":32,\"465\":32,\"466\":32,\"467\":32,\"468\":32,\"469\":32,\"470\":32,\"471\":32,\"472\":32,\"473\":32,\"474\":32,\"475\":32,\"476\":32,\"477\":32,\"478\":108,\"479\":101,\"480\":116,\"481\":32,\"482\":100,\"483\":97,\"484\":116,\"485\":97,\"486\":32,\"487\":61,\"488\":32,\"489\":110,\"490\":117,\"491\":108,\"492\":108,\"493\":10,\"494\":32,\"495\":32,\"496\":105,\"497\":102,\"498\":40,\"499\":116,\"500\":114,\"501\":117,\"502\":101,\"503\":41,\"504\":123,\"505\":10,\"506\":32,\"507\":32,\"508\":32,\"509\":32,\"510\":32,\"511\":32,\"512\":32,\"513\":32,\"514\":32,\"515\":32,\"516\":32,\"517\":32,\"518\":32,\"519\":32,\"520\":32,\"521\":32,\"522\":32,\"523\":114,\"524\":101,\"525\":116,\"526\":117,\"527\":114,\"528\":110,\"529\":32,\"530\":40,\"531\":109,\"532\":101,\"533\":116,\"534\":97,\"535\":51,\"536\":100,\"537\":83,\"538\":116,\"539\":97,\"540\":116,\"541\":101,\"542\":44,\"543\":10,\"544\":32,\"545\":32,\"546\":32,\"547\":32,\"548\":32,\"549\":32,\"550\":32,\"551\":32,\"552\":110,\"553\":117,\"554\":108,\"555\":108,\"556\":44,\"557\":10,\"558\":32,\"559\":32,\"560\":32,\"561\":32,\"562\":32,\"563\":32,\"564\":32,\"565\":32,\"566\":32,\"567\":32,\"568\":32,\"569\":32,\"570\":32,\"571\":32,\"572\":32,\"573\":32,\"574\":123,\"575\":10,\"576\":32,\"577\":32,\"578\":32,\"579\":32,\"580\":32,\"581\":32,\"582\":32,\"583\":32,\"584\":32,\"585\":32,\"586\":32,\"587\":32,\"588\":32,\"589\":32,\"590\":32,\"591\":32,\"592\":32,\"593\":32,\"594\":46,\"595\":46,\"596\":46,\"597\":117,\"598\":110,\"599\":100,\"600\":101,\"601\":102,\"602\":105,\"603\":110,\"604\":101,\"605\":100,\"606\":44,\"607\":10,\"608\":32,\"609\":32,\"610\":32,\"611\":32,\"612\":32,\"613\":32,\"614\":32,\"615\":32,\"616\":46,\"617\":46,\"618\":46,\"619\":123,\"620\":125,\"621\":44,\"622\":10,\"623\":32,\"624\":32,\"625\":32,\"626\":32,\"627\":32,\"628\":32,\"629\":99,\"630\":104,\"631\":105,\"632\":108,\"633\":100,\"634\":114,\"635\":101,\"636\":110,\"637\":70,\"638\":117,\"639\":110,\"640\":99,\"641\":58,\"642\":40,\"643\":109,\"644\":101,\"645\":116,\"646\":97,\"647\":51,\"648\":100,\"649\":83,\"650\":116,\"651\":97,\"652\":116,\"653\":101,\"654\":41,\"655\":32,\"656\":61,\"657\":62,\"658\":32,\"659\":110,\"660\":101,\"661\":119,\"662\":32,\"663\":80,\"664\":114,\"665\":111,\"666\":109,\"667\":105,\"668\":115,\"669\":101,\"670\":40,\"671\":40,\"672\":114,\"673\":101,\"674\":115,\"675\":111,\"676\":108,\"677\":118,\"678\":101,\"679\":44,\"680\":32,\"681\":114,\"682\":101,\"683\":106,\"684\":101,\"685\":99,\"686\":116,\"687\":41,\"688\":32,\"689\":61,\"690\":62,\"691\":32,\"692\":114,\"693\":101,\"694\":115,\"695\":111,\"696\":108,\"697\":118,\"698\":101,\"699\":40,\"700\":109,\"701\":101,\"702\":116,\"703\":97,\"704\":51,\"705\":100,\"706\":83,\"707\":116,\"708\":97,\"709\":116,\"710\":101,\"711\":41,\"712\":41,\"713\":10,\"714\":32,\"715\":32,\"716\":32,\"717\":32,\"718\":32,\"719\":32,\"720\":32,\"721\":32,\"722\":32,\"723\":32,\"724\":32,\"725\":32,\"726\":32,\"727\":32,\"728\":32,\"729\":32,\"730\":125,\"731\":10,\"732\":32,\"733\":32,\"734\":32,\"735\":32,\"736\":32,\"737\":32,\"738\":32,\"739\":32,\"740\":32,\"741\":32,\"742\":32,\"743\":32,\"744\":32,\"745\":32,\"746\":32,\"747\":32,\"748\":32,\"749\":32,\"750\":32,\"751\":32,\"752\":41,\"753\":46,\"754\":116,\"755\":104,\"756\":101,\"757\":110,\"758\":40,\"759\":100,\"760\":97,\"761\":116,\"762\":97,\"763\":32,\"764\":61,\"765\":62,\"766\":123,\"767\":10,\"768\":32,\"769\":32,\"770\":32,\"771\":32,\"772\":32,\"773\":32,\"774\":32,\"775\":32,\"776\":32,\"777\":32,\"778\":32,\"779\":32,\"780\":32,\"781\":32,\"782\":32,\"783\":32,\"784\":109,\"785\":101,\"786\":116,\"787\":97,\"788\":51,\"789\":100,\"790\":83,\"791\":116,\"792\":97,\"793\":116,\"794\":101,\"795\":32,\"796\":61,\"797\":32,\"798\":100,\"799\":97,\"800\":116,\"801\":97,\"802\":91,\"803\":48,\"804\":93,\"805\":10,\"806\":117,\"807\":110,\"808\":100,\"809\":101,\"810\":102,\"811\":105,\"812\":110,\"813\":101,\"814\":100,\"815\":10,\"816\":32,\"817\":32,\"818\":114,\"819\":101,\"820\":116,\"821\":117,\"822\":114,\"823\":110,\"824\":32,\"825\":110,\"826\":101,\"827\":119,\"828\":32,\"829\":80,\"830\":114,\"831\":111,\"832\":109,\"833\":105,\"834\":115,\"835\":101,\"836\":40,\"837\":40,\"838\":114,\"839\":101,\"840\":115,\"841\":111,\"842\":108,\"843\":118,\"844\":101,\"845\":41,\"846\":32,\"847\":61,\"848\":62,\"849\":32,\"850\":123,\"851\":10,\"852\":32,\"853\":32,\"854\":32,\"855\":32,\"856\":32,\"857\":32,\"858\":32,\"859\":32,\"860\":32,\"861\":32,\"862\":32,\"863\":32,\"864\":32,\"865\":32,\"866\":32,\"867\":32,\"868\":32,\"869\":32,\"870\":32,\"871\":32,\"872\":114,\"873\":101,\"874\":115,\"875\":111,\"876\":108,\"877\":118,\"878\":101,\"879\":40,\"880\":109,\"881\":101,\"882\":116,\"883\":97,\"884\":51,\"885\":100,\"886\":83,\"887\":116,\"888\":97,\"889\":116,\"890\":101,\"891\":41,\"892\":10,\"893\":32,\"894\":32,\"895\":32,\"896\":32,\"897\":32,\"898\":32,\"899\":32,\"900\":32,\"901\":32,\"902\":32,\"903\":32,\"904\":32,\"905\":32,\"906\":32,\"907\":32,\"908\":32,\"909\":125,\"910\":41,\"911\":10,\"912\":32,\"913\":32,\"914\":32,\"915\":32,\"916\":32,\"917\":32,\"918\":32,\"919\":32,\"920\":32,\"921\":32,\"922\":32,\"923\":32,\"924\":32,\"925\":32,\"926\":32,\"927\":32,\"928\":125,\"929\":41,\"930\":125,\"931\":10,\"932\":32,\"933\":32,\"934\":114,\"935\":101,\"936\":116,\"937\":117,\"938\":114,\"939\":110,\"940\":32,\"941\":110,\"942\":101,\"943\":119,\"944\":32,\"945\":80,\"946\":114,\"947\":111,\"948\":109,\"949\":105,\"950\":115,\"951\":101,\"952\":40,\"953\":40,\"954\":114,\"955\":101,\"956\":115,\"957\":111,\"958\":108,\"959\":118,\"960\":101,\"961\":41,\"962\":32,\"963\":61,\"964\":62,\"965\":32,\"966\":123,\"967\":10,\"968\":32,\"969\":32,\"970\":32,\"971\":32,\"972\":32,\"973\":32,\"974\":32,\"975\":32,\"976\":32,\"977\":32,\"978\":32,\"979\":32,\"980\":32,\"981\":32,\"982\":32,\"983\":32,\"984\":32,\"985\":32,\"986\":32,\"987\":32,\"988\":114,\"989\":101,\"990\":115,\"991\":111,\"992\":108,\"993\":118,\"994\":101,\"995\":40,\"996\":109,\"997\":101,\"998\":116,\"999\":97,\"1000\":51,\"1001\":100,\"1002\":83,\"1003\":116,\"1004\":97,\"1005\":116,\"1006\":101,\"1007\":41,\"1008\":10,\"1009\":32,\"1010\":32,\"1011\":32,\"1012\":32,\"1013\":32,\"1014\":32,\"1015\":32,\"1016\":32,\"1017\":32,\"1018\":32,\"1019\":32,\"1020\":32,\"1021\":32,\"1022\":32,\"1023\":32,\"1024\":32,\"1025\":125,\"1026\":41,\"1027\":10,\"1028\":32,\"1029\":32,\"1030\":10,\"1031\":32,\"1032\":32,\"1033\":32,\"1034\":32,\"1035\":32,\"1036\":32,\"1037\":32,\"1038\":32,\"1039\":32,\"1040\":32,\"1041\":32,\"1042\":32,\"1043\":125,\"1044\":10,\"1045\":32,\"1046\":32,\"1047\":32,\"1048\":32,\"1049\":32,\"1050\":32,\"1051\":32,\"1052\":32,\"1053\":125,\"1054\":10,\"1055\":32,\"1056\":32,\"1057\":32,\"1058\":32,\"1059\":125,\"1060\":10,\"1061\":125,\"1062\":10,\"1063\":32,\"1064\":32}}]]", ) }, ) diff --git a/platform/assemble-space/test/step-definitions/publishElement.steps.res b/platform/assemble-space/test/step-definitions/publishElement.steps.res index ca9931f9d..7e80b2ce1 100755 --- a/platform/assemble-space/test/step-definitions/publishElement.steps.res +++ b/platform/assemble-space/test/step-definitions/publishElement.steps.res @@ -130,7 +130,7 @@ defineFeature(feature, test => { input := UIControlInspectorTool.buildInput("input") event := [UIControlInspectorTool.buildEventData(#button_click, "a1")] - isDraw := false->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw + isDraw := false->FrontendUtils.CommonType.BoolForIsDraw specific := [UIControlInspectorTool.buildSpecific()] @@ -154,7 +154,7 @@ defineFeature(feature, test => { list{ UIControlInspectorTool.buildUIControlInspectorData( ~id="b1", - ~x=1->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~x=1->FrontendUtils.CommonType.IntForRectField, ~input=input.contents->Some, ~event=event.contents, ~isDraw=isDraw.contents, @@ -162,7 +162,7 @@ defineFeature(feature, test => { ~children=list{ UIControlInspectorTool.buildUIControlInspectorData( ~id="b2", - ~x=2->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~x=2->FrontendUtils.CommonType.IntForRectField, ~event=event.contents, ~isDraw=isDraw.contents, ~specific=specific.contents, @@ -176,163 +176,163 @@ defineFeature(feature, test => { }) } - test(."generate element contribute", ({given, \"when", \"and", then}) => { - let generateContributeStub = ref(Obj.magic(1)) + // test(."generate element contribute", ({given, \"when", \"and", then}) => { + // let generateContributeStub = ref(Obj.magic(1)) - _prepare(given, \"and") - - _prepareData(given) - - CucumberAsync.execStep( - \"when", - "publish", - () => { - generateContributeStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) - - PublishElementTool.publish( - ~sandbox, - ~values={ - "elementName": elementName.contents, - "elementVersion": elementVersion.contents, - }, - ~service=ServiceTool.build( - ~sandbox, - ~generateContribute=generateContributeStub.contents->Obj.magic, - ~serializeUIControlProtocolConfigLib=Meta3d.Main.serializeUIControlProtocolConfigLib->Obj.magic, - ~generateUIControlCommonDataStr=Meta3d.Main.generateUIControlCommonDataStr->Obj.magic, - ~getUIControlSupportedEventNames=Meta3d.Main.getUIControlSupportedEventNames->Obj.magic, - ~generateHandleUIControlEventStr=Meta3d.Main.generateHandleUIControlEventStr->Obj.magic, - (), - ), - ~account=account.contents->Some, - (), - ) - }, - ) - - then( - "should generat element contribute", - () => { - ( - generateContributeStub.contents - ->Obj.magic - ->SinonTool.getArg(~stub=_, ~argIndex=1, ()) - ->Js.String.includes("elementName:\"e1\",", _), - generateContributeStub.contents - ->Obj.magic - ->SinonTool.calledWith( - ( - { - name: elementName.contents, - version: elementVersion.contents, - account: account.contents, - displayName: elementName.contents, - repoLink: ElementContributeUtils.getElementContributeRepoLink(), - description: ElementContributeUtils.getElementContributeDescription(), - protocol: { - name: ElementContributeUtils.getElementContributeProtocolName(), - version: ElementContributeUtils.getElementContributeProtocolVersion(), - }, - dependentPackageStoredInAppProtocolNameMap: Meta3dCommonlib.ImmutableHashMap.createEmpty(), - dependentBlockProtocolNameMap: Meta3dCommonlib.ImmutableHashMap.createEmpty(), - // ->Meta3dCommonlib.ImmutableHashMap.set( - // "meta3d-ui-protocol", - // ElementVisualTool.getUIProtocolVersion(), - // ) - // ->Meta3dCommonlib.ImmutableHashMap.set( - // "meta3d-event-protocol", - // ElementVisualTool.getEventProtocolVersion(), - // ), - }: Meta3d.ExtensionFileType.contributePackageData - ), - ), - )->expect == (true, true) - }, - ) - }) + // _prepare(given, \"and") - test(."publish element contribute", ({given, \"when", \"and", then}) => { - let publishElementContributeStub = ref(Obj.magic(1)) - let elementContributeBinaryFile = Js.Typed_array.ArrayBuffer.make(11) - let setIsUploadBeginStub = ref(Obj.magic(1)) + // _prepareData(given) - _prepare(given, \"and") + // CucumberAsync.execStep( + // \"when", + // "publish", + // () => { + // generateContributeStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) - _prepareData(given) + // PublishElementTool.publish( + // ~sandbox, + // ~values={ + // "elementName": elementName.contents, + // "elementVersion": elementVersion.contents, + // }, + // ~service=ServiceTool.build( + // ~sandbox, + // ~generateContribute=generateContributeStub.contents->Obj.magic, + // ~serializeUIControlProtocolConfigLib=Meta3d.Main.serializeUIControlProtocolConfigLib->Obj.magic, + // ~generateUIControlCommonDataStr=Meta3d.Main.generateUIControlCommonDataStr->Obj.magic, + // ~getUIControlSupportedEventNames=Meta3d.Main.getUIControlSupportedEventNames->Obj.magic, + // ~generateHandleUIControlEventStr=Meta3d.Main.generateHandleUIControlEventStr->Obj.magic, + // (), + // ), + // ~account=account.contents->Some, + // (), + // ) + // }, + // ) + + // then( + // "should generat element contribute", + // () => { + // ( + // generateContributeStub.contents + // ->Obj.magic + // ->SinonTool.getArg(~stub=_, ~argIndex=1, ()) + // ->Js.String.includes("elementName:\"e1\",", _), + // generateContributeStub.contents + // ->Obj.magic + // ->SinonTool.calledWith( + // ( + // { + // name: elementName.contents, + // version: elementVersion.contents, + // account: account.contents, + // displayName: elementName.contents, + // repoLink: ElementContributeUtils.getElementContributeRepoLink(), + // description: ElementContributeUtils.getElementContributeDescription(), + // protocol: { + // name: ElementContributeUtils.getElementContributeProtocolName(), + // version: ElementContributeUtils.getElementContributeProtocolVersion(), + // }, + // dependentPackageStoredInAppProtocolNameMap: Meta3dCommonlib.ImmutableHashMap.createEmpty(), + // dependentBlockProtocolNameMap: Meta3dCommonlib.ImmutableHashMap.createEmpty(), + // // ->Meta3dCommonlib.ImmutableHashMap.set( + // // "meta3d-ui-protocol", + // // ElementVisualTool.getUIProtocolVersion(), + // // ) + // // ->Meta3dCommonlib.ImmutableHashMap.set( + // // "meta3d-event-protocol", + // // ElementVisualTool.getEventProtocolVersion(), + // // ), + // }: Meta3d.ExtensionFileType.contributePackageData + // ), + // ), + // )->expect == (true, true) + // }, + // ) + // }) - CucumberAsync.execStep( - \"when", - "publish", - () => { - setIsUploadBeginStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) + // test(."publish element contribute", ({given, \"when", \"and", then}) => { + // let publishElementContributeStub = ref(Obj.magic(1)) + // let elementContributeBinaryFile = Js.Typed_array.ArrayBuffer.make(11) + // let setIsUploadBeginStub = ref(Obj.magic(1)) - publishElementContributeStub := - createEmptyStub(refJsObjToSandbox(sandbox.contents))->returns( - Meta3dBsMostDefault.Most.empty(), - _, - ) + // _prepare(given, \"and") - PublishElementTool.publish( - ~sandbox, - ~account=account.contents->Some, - ~setIsUploadBegin=setIsUploadBeginStub.contents->Obj.magic, - ~values={ - "elementName": elementName.contents, - "elementVersion": elementVersion.contents, - }, - ~service=ServiceTool.build( - ~sandbox, - ~publishElementContribute=publishElementContributeStub.contents->Obj.magic, - ~generateContribute=createEmptyStub(refJsObjToSandbox(sandbox.contents)) - ->returns(elementContributeBinaryFile, _) - ->Obj.magic, - (), - ), - // ~elementInspectorData=elementInspectorData.contents, - // ~selectedUIControls=selectedUIControls.contents, - // ~selectedUIControlInspectorData=selectedUIControlInspectorData.contents, - (), - ) - }, - ) + // _prepareData(given) - then( - "should mark begin upload", - () => { - let func = SinonTool.getFirstArg(~callIndex=0, ~stub=setIsUploadBeginStub.contents, ()) + // CucumberAsync.execStep( + // \"when", + // "publish", + // () => { + // setIsUploadBeginStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) - ( - setIsUploadBeginStub.contents - ->getCall(0, _) - ->calledBefore(publishElementContributeStub.contents->getCall(0, _)), - func(), - )->expect == (true, true) - }, - ) + // publishElementContributeStub := + // createEmptyStub(refJsObjToSandbox(sandbox.contents))->returns( + // Meta3dBsMostDefault.Most.empty(), + // _, + // ) - \"and"( - "should publish generated element contribute", - () => { - publishElementContributeStub.contents - ->Obj.magic - ->SinonTool.calledWithArg4( - matchAny, - account.contents, - ( - elementName.contents, - elementVersion.contents, - ElementContributeUtils.getElementContributeProtocolName(), - ElementContributeUtils.getElementContributeProtocolVersion(), - elementName.contents, - ElementContributeUtils.getElementContributeRepoLink(), - ElementContributeUtils.getElementContributeDescription(), - ), - elementContributeBinaryFile, - ) - ->expect == true - }, - ) - }) + // PublishElementTool.publish( + // ~sandbox, + // ~account=account.contents->Some, + // ~setIsUploadBegin=setIsUploadBeginStub.contents->Obj.magic, + // ~values={ + // "elementName": elementName.contents, + // "elementVersion": elementVersion.contents, + // }, + // ~service=ServiceTool.build( + // ~sandbox, + // ~publishElementContribute=publishElementContributeStub.contents->Obj.magic, + // ~generateContribute=createEmptyStub(refJsObjToSandbox(sandbox.contents)) + // ->returns(elementContributeBinaryFile, _) + // ->Obj.magic, + // (), + // ), + // // ~elementInspectorData=elementInspectorData.contents, + // // ~selectedUIControls=selectedUIControls.contents, + // // ~selectedUIControlInspectorData=selectedUIControlInspectorData.contents, + // (), + // ) + // }, + // ) + + // then( + // "should mark begin upload", + // () => { + // let func = SinonTool.getFirstArg(~callIndex=0, ~stub=setIsUploadBeginStub.contents, ()) + + // ( + // setIsUploadBeginStub.contents + // ->getCall(0, _) + // ->calledBefore(publishElementContributeStub.contents->getCall(0, _)), + // func(), + // )->expect == (true, true) + // }, + // ) + + // \"and"( + // "should publish generated element contribute", + // () => { + // publishElementContributeStub.contents + // ->Obj.magic + // ->SinonTool.calledWithArg4( + // matchAny, + // account.contents, + // ( + // elementName.contents, + // elementVersion.contents, + // ElementContributeUtils.getElementContributeProtocolName(), + // ElementContributeUtils.getElementContributeProtocolVersion(), + // elementName.contents, + // ElementContributeUtils.getElementContributeRepoLink(), + // ElementContributeUtils.getElementContributeDescription(), + // ), + // elementContributeBinaryFile, + // ) + // ->expect == true + // }, + // ) + // }) test(."publish element assemble data", ({given, \"when", \"and", then}) => { let publishElementAssembleDataStub = ref(Obj.magic(1)) @@ -387,7 +387,7 @@ defineFeature(feature, test => { { displayName: "b1", rect: UIControlInspectorTool.buildRect( - ~x=1->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~x=1->FrontendUtils.CommonType.IntForRectField, (), ), isDraw: isDraw.contents, @@ -398,11 +398,11 @@ defineFeature(feature, test => { { displayName: "b2", rect: UIControlInspectorTool.buildRect( - ~x=2->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~x=2->FrontendUtils.CommonType.IntForRectField, (), ), isDraw: isDraw.contents, - input: Js.Nullable.null, + input: Meta3dCommonlib.NullableSt.getEmpty(), event: event.contents, specific: specific.contents, children: [], @@ -411,7 +411,7 @@ defineFeature(feature, test => { }, ], }: FrontendUtils.BackendCloudbaseType.inspectorData - ), + ) ) ->expect == true }, @@ -421,7 +421,7 @@ defineFeature(feature, test => { test(."handle after publish successfully", ({given, \"when", \"and", then}) => { let setIsUploadBeginStub = ref(Obj.magic(1)) let setVisibleStub = ref(Obj.magic(1)) - let publishElementContributeStub = ref(Obj.magic(1)) + let publishElementAssembleDataStub = ref(Obj.magic(1)) _prepare(given, \"and") @@ -433,7 +433,7 @@ defineFeature(feature, test => { () => { setIsUploadBeginStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) setVisibleStub := createEmptyStub(refJsObjToSandbox(sandbox.contents)) - publishElementContributeStub := + publishElementAssembleDataStub := createEmptyStub(refJsObjToSandbox(sandbox.contents))->returns( Meta3dBsMostDefault.Most.empty(), _, @@ -446,7 +446,7 @@ defineFeature(feature, test => { ~setVisible=setVisibleStub.contents->Obj.magic, ~service=ServiceTool.build( ~sandbox, - ~publishElementContribute=publishElementContributeStub.contents->Obj.magic, + ~publishElementAssembleData=publishElementAssembleDataStub.contents->Obj.magic, (), ), (), @@ -462,7 +462,7 @@ defineFeature(feature, test => { ( setIsUploadBeginStub.contents ->getCall(1, _) - ->calledAfter(publishElementContributeStub.contents->getCall(0, _)), + ->calledAfter(publishElementAssembleDataStub.contents->getCall(0, _)), func(), )->expect == (true, false) }, diff --git a/platform/assemble-space/test/step-definitions/store/elementAssembleStore.steps.res b/platform/assemble-space/test/step-definitions/store/elementAssembleStore.steps.res index 7adfaab70..6b0cca791 100755 --- a/platform/assemble-space/test/step-definitions/store/elementAssembleStore.steps.res +++ b/platform/assemble-space/test/step-definitions/store/elementAssembleStore.steps.res @@ -22,7 +22,7 @@ defineFeature(feature, test => { test(."set rect of hierachy ui control", ({given, \"when", \"and", then}) => { let id2 = ref(Obj.magic(1)) let rect = UIControlInspectorTool.buildRect( - ~x=11->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~x=11->FrontendUtils.CommonType.IntForRectField, (), ) @@ -102,10 +102,10 @@ defineFeature(feature, test => { list{ UIControlInspectorTool.buildUIControlInspectorData( ~id=id1.contents, - ~x=0->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~y=0->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~width=20->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~height=20->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~x=0->FrontendUtils.CommonType.IntForRectField, + ~y=0->FrontendUtils.CommonType.IntForRectField, + ~width=20->FrontendUtils.CommonType.IntForRectField, + ~height=20->FrontendUtils.CommonType.IntForRectField, ~children=list{ UIControlInspectorTool.buildUIControlInspectorData( ~id=id2.contents, diff --git a/platform/assemble-space/test/step-definitions/uiControlInspector.steps.res b/platform/assemble-space/test/step-definitions/uiControlInspector.steps.res index aea850f5e..134ca78d6 100755 --- a/platform/assemble-space/test/step-definitions/uiControlInspector.steps.res +++ b/platform/assemble-space/test/step-definitions/uiControlInspector.steps.res @@ -112,7 +112,7 @@ defineFeature(feature, test => { list{ UIControlInspectorTool.buildUIControlInspectorData( ~id=id2, - ~y=10->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~y=10->FrontendUtils.CommonType.IntForRectField, (), ), }, @@ -215,7 +215,7 @@ defineFeature(feature, test => { // list{ // UIControlInspectorTool.buildUIControlInspectorData( // ~id, - // ~width=10->FrontendUtils.ElementAssembleStoreType.IntForRectField, + // ~width=10->FrontendUtils.CommonType.IntForRectField, // (), // ), // }, @@ -250,13 +250,13 @@ defineFeature(feature, test => { test(."set rect x", ({given, \"when", \"and", then}) => { let id = "1" let rect: FrontendUtils.ElementAssembleStoreType.rect = UIControlInspectorTool.buildRect( - ~x=1->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~y=2->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~width=3->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~height=4->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~x=1->FrontendUtils.CommonType.IntForRectField, + ~y=2->FrontendUtils.CommonType.IntForRectField, + ~width=3->FrontendUtils.CommonType.IntForRectField, + ~height=4->FrontendUtils.CommonType.IntForRectField, (), ) - let x = 11->FrontendUtils.ElementAssembleStoreType.IntForRectField + let x = 11->FrontendUtils.CommonType.IntForRectField let dispatchStub = ref(Obj.magic(1)) _prepare(given) @@ -349,7 +349,7 @@ defineFeature(feature, test => { // list{ // UIControlInspectorTool.buildUIControlInspectorData( // ~id, - // ~isDraw=false->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw, + // ~isDraw=false->FrontendUtils.CommonType.BoolForIsDraw, // (), // ), // }, @@ -383,7 +383,7 @@ defineFeature(feature, test => { test(."set isDraw", ({given, \"when", \"and", then}) => { let id = "1" - let isDraw = false->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw + let isDraw = false->FrontendUtils.CommonType.BoolForIsDraw let dispatchStub = ref(Obj.magic(1)) _prepare(given) @@ -569,7 +569,7 @@ defineFeature(feature, test => { ~type_=#string, ~value="Window1" ->Obj.magic - ->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ->FrontendUtils.CommonType.SpecicFieldDataValue, (), ), ], @@ -709,7 +709,7 @@ defineFeature(feature, test => { UIControlInspectorTool.buildSpecific( ~name="label", ~type_, - ~value="Window1"->Obj.magic->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ~value="Window1"->Obj.magic->FrontendUtils.CommonType.SpecicFieldDataValue, (), ), ] @@ -729,7 +729,7 @@ defineFeature(feature, test => { i, "Window2" ->SpecificUtils.convertStringToValue(type_) - ->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ->FrontendUtils.CommonType.SpecicFieldDataValue, type_, ) }, @@ -747,7 +747,7 @@ defineFeature(feature, test => { ~type_, ~value="Window2" ->Obj.magic - ->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ->FrontendUtils.CommonType.SpecicFieldDataValue, (), ), ], diff --git a/platform/assemble-space/test/step-definitions/uiControls.steps.res b/platform/assemble-space/test/step-definitions/uiControls.steps.res index 1fb444a4c..49ba6e36a 100755 --- a/platform/assemble-space/test/step-definitions/uiControls.steps.res +++ b/platform/assemble-space/test/step-definitions/uiControls.steps.res @@ -158,7 +158,7 @@ defineFeature(feature, test => { UIControlInspectorTool.buildSpecific( ~name="s1", ~type_=#string, - ~value="d1"->Obj.magic->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ~value="d1"->Obj.magic->FrontendUtils.CommonType.SpecicFieldDataValue, (), ), ], diff --git a/platform/assemble-space/test/tool/ElementTool.res b/platform/assemble-space/test/tool/ElementTool.res new file mode 100644 index 000000000..27c5e0af4 --- /dev/null +++ b/platform/assemble-space/test/tool/ElementTool.res @@ -0,0 +1,16 @@ +// let buildSelectedElement = ( +// ~elementName="e1", +// ~elementVersion="0.0.1", +// ~inspectorData=UIControlInspectorTool.buildUIControlInspectorData(~id="e1", ()), +// (), +// ): FrontendUtils.BackendCloudbaseType.elementAssembleData => { +// { +// elementName, +// elementVersion, +// inspectorData:inspectorData, +// } +// } + +let buildFakeSelectedElements = (~data1=1, ()): list => { + list{data1->Obj.magic} +} diff --git a/platform/assemble-space/test/tool/ElementVisualTool.res b/platform/assemble-space/test/tool/ElementVisualTool.res index 921fa7305..cf3e8bf8b 100755 --- a/platform/assemble-space/test/tool/ElementVisualTool.res +++ b/platform/assemble-space/test/tool/ElementVisualTool.res @@ -1,5 +1,11 @@ -let buildUI = (~sandbox, ~account=None, ~service=ServiceTool.build(~sandbox, ()), ()) => { - +let buildUI = ( + ~sandbox, + ~account=None, + ~selectedElementsFromMarket=list{}, + ~service=ServiceTool.build(~sandbox, ()), + (), +) => { + } // let getAndSetNewestVisualExtension = ElementVisual.Method.getAndSetNewestVisualExtension @@ -51,26 +57,14 @@ let getUpdateFlag = %raw(` function(){return window.updateFlag} `) let generateElementContribute = ( ~sandbox, ~service=ServiceTool.build(~sandbox, ()), - ~protocolName=ElementContributeUtils.getElementContributeProtocolName(), - ~protocolVersion=ElementContributeUtils.getElementContributeProtocolVersion(), - ~elementName=ElementVisual.Method._getElementContributeName(), - ~elementVersion=ElementVisual.Method._getElementContributeVersion(), + // ~protocolName=ElementContributeUtils.getElementContributeProtocolName(), + // ~protocolVersion=ElementContributeUtils.getElementContributeProtocolVersion(), + // ~elementName=ElementContributeUtils.getElementContributeName(), + // ~elementVersion=ElementVisualUtils.getElementContributeVersion(), ~account="meta3d", ~fileStr="", (), -) => - ElementVisual.Method._generateElementContribute( - service, - protocolName, - protocolVersion, - elementName, - elementVersion, - account, - elementName, - ElementContributeUtils.getElementContributeRepoLink(), - ElementContributeUtils.getElementContributeDescription(), - fileStr, - ) +) => ElementVisual.Method.generateElementContribute(service, account, fileStr) let buildEmptyContributeFileStr = () => { `window.Contribute = { getContribute: (api) =>{ return {} }}` diff --git a/platform/assemble-space/test/tool/ImportElementTool.res b/platform/assemble-space/test/tool/ImportElementTool.res index 1b2ee9922..cc358d91e 100755 --- a/platform/assemble-space/test/tool/ImportElementTool.res +++ b/platform/assemble-space/test/tool/ImportElementTool.res @@ -1,13 +1,13 @@ -let getAndSetElementAssembleData = ElementVisual.Method.getAndSetElementAssembleData +// let getAndSetElementAssembleData = ElementVisual.Method.getAndSetElementAssembleData -let buildNo = () => ElementVisual.No +// let buildNo = () => ElementVisual.No -let buildLoaded = assembleData => ElementVisual.Loaded(assembleData) +// let buildLoaded = assembleData => ElementVisual.Loaded(assembleData) let buildUIControl = ( ~displayName="u1", ~rect=UIControlInspectorTool.buildRect(), - ~isDraw=true->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw, + ~isDraw=true->FrontendUtils.CommonType.BoolForIsDraw, ~input=None, ~event=[], ~specific=[], diff --git a/platform/assemble-space/test/tool/PublishTool.res b/platform/assemble-space/test/tool/PublishTool.res index d8e98011b..1621fecf3 100755 --- a/platform/assemble-space/test/tool/PublishTool.res +++ b/platform/assemble-space/test/tool/PublishTool.res @@ -10,10 +10,12 @@ let publish = ( ~setVisible=createEmptyStub(refJsObjToSandbox(sandbox.contents)), ~setIsUploadBegin=createEmptyStub(refJsObjToSandbox(sandbox.contents)), ~setUploadProgress=createEmptyStub(refJsObjToSandbox(sandbox.contents)), - ~account=None, + ~account="u1"->Some, ~selectedPackages=list{}, - ~selectedExtensions=list{}, ~selectedContributes=list{}, + // ~selectedElements=list{}, + ~selectedUIControls=list{}, + ~selectedUIControlInspectorData=list{}, ~storedPackageIdsInApp=list{}, ~isChangeSelectedPackagesByDebug=false, ~canvasData=CanvasControllerTool.buildCanvasData(), @@ -30,12 +32,14 @@ let publish = ( ( account, selectedPackages, - selectedExtensions, selectedContributes, + // selectedElements, canvasData, apInspectorData, storedPackageIdsInApp, isChangeSelectedPackagesByDebug, + selectedUIControls, + selectedUIControlInspectorData, ), values, ) diff --git a/platform/assemble-space/test/tool/ServiceTool.res b/platform/assemble-space/test/tool/ServiceTool.res index 95352e845..3cad794eb 100755 --- a/platform/assemble-space/test/tool/ServiceTool.res +++ b/platform/assemble-space/test/tool/ServiceTool.res @@ -67,6 +67,9 @@ let build = ( ~getElementAssembleData=createEmptyStub(refJsObjToSandbox(sandbox.contents)) ->returns(Meta3dBsMostDefault.Most.empty(), _) ->Obj.magic, + // ~findAllElementAssembleData=createEmptyStub(refJsObjToSandbox(sandbox.contents)) + // ->returns(Meta3dBsMostDefault.Most.just([]), _) + // ->Obj.magic, ~findNewestPublishPackage=createEmptyStub(refJsObjToSandbox(sandbox.contents)) ->returns(Meta3dBsMostDefault.Most.empty(), _) ->Obj.magic, @@ -175,6 +178,7 @@ let build = ( publishElementContribute, publishElementAssembleData, getElementAssembleData, + // findAllElementAssembleData, findNewestPublishPackage, findNewestPublishExtension, findNewestPublishContribute, diff --git a/platform/assemble-space/test/tool/UIControlInspectorTool.res b/platform/assemble-space/test/tool/UIControlInspectorTool.res index c575d7c62..c18990741 100755 --- a/platform/assemble-space/test/tool/UIControlInspectorTool.res +++ b/platform/assemble-space/test/tool/UIControlInspectorTool.res @@ -12,10 +12,10 @@ let useSelector = ({apAssembleState}: FrontendUtils.AssembleSpaceStoreType.state UIControlInspector.Method.useSelector let buildRect = ( - ~x=0->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~y=0->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~width=0->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~height=0->FrontendUtils.ElementAssembleStoreType.IntForRectField, + ~x=0->FrontendUtils.CommonType.IntForRectField, + ~y=0->FrontendUtils.CommonType.IntForRectField, + ~width=0->FrontendUtils.CommonType.IntForRectField, + ~height=0->FrontendUtils.CommonType.IntForRectField, (), ): FrontendUtils.ElementAssembleStoreType.rect => { { @@ -42,7 +42,7 @@ let buildEventData = ( let buildSpecific = ( ~name="s1", ~type_=#string, - ~value="d1"->Obj.magic->FrontendUtils.ElementAssembleStoreType.SpecicFieldDataValue, + ~value="d1"->Obj.magic->FrontendUtils.CommonType.SpecicFieldDataValue, (), ): FrontendUtils.ElementAssembleStoreType.specificData => { { @@ -54,11 +54,11 @@ let buildSpecific = ( let buildUIControlInspectorData = ( ~id, - ~x=0->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~y=0->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~width=0->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~height=0->FrontendUtils.ElementAssembleStoreType.IntForRectField, - ~isDraw=true->FrontendUtils.ElementAssembleStoreType.BoolForIsDraw, + ~x=0->FrontendUtils.CommonType.IntForRectField, + ~y=0->FrontendUtils.CommonType.IntForRectField, + ~width=0->FrontendUtils.CommonType.IntForRectField, + ~height=0->FrontendUtils.CommonType.IntForRectField, + ~isDraw=true->FrontendUtils.CommonType.BoolForIsDraw, ~input=None, ~event=[], ~specific=[], diff --git a/platform/backend-abstract/src/Main.js b/platform/backend-abstract/src/Main.js index b2a10492f..64112a700 100755 --- a/platform/backend-abstract/src/Main.js +++ b/platform/backend-abstract/src/Main.js @@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.findNewestPublishPackage = exports.findPublishPackage = exports.getAllPublishPackageInfos = exports.getAllPublishPackageEntryExtensionProtocols = exports.publishPackage = exports.publishElementContribute = exports.publishElementAssembleData = exports.getElementAssembleData = exports.getAllPublishNewestData = exports.findAllPublishApps = exports.findPublishApp = exports.publishApp = exports.findPublishImplement = exports.getAllPublishImplementInfo = exports.batchFindPublishProtocolConfigData = exports.getAllPublishProtocolConfigData = exports.getAllPublishProtocolDataCount = exports.batchFindPublishProtocolData = exports.getAllPublishProtocolData = exports.isLoginSuccess = exports.registerUser = exports.checkUserName = exports.handleLoginForWeb3 = exports.init = void 0; +exports.findNewestPublishPackage = exports.findPublishPackage = exports.getAllPublishPackageInfos = exports.getAllPublishPackageEntryExtensionProtocols = exports.publishPackage = exports.publishElementContribute = exports.publishElementAssembleData = exports.findAllElementAssembleData = exports.getElementAssembleData = exports.getAllPublishNewestData = exports.findAllPublishApps = exports.findPublishApp = exports.publishApp = exports.findPublishImplement = exports.getAllPublishImplementInfo = exports.batchFindPublishProtocolConfigData = exports.getAllPublishProtocolConfigData = exports.getAllPublishProtocolDataCount = exports.batchFindPublishProtocolData = exports.getAllPublishProtocolData = exports.isLoginSuccess = exports.registerUser = exports.checkUserName = exports.handleLoginForWeb3 = exports.init = void 0; const MarketService = __importStar(require("./application_layer/market/MarketService")); const LoginService = __importStar(require("./application_layer/user/LoginService")); const PublishAppService = __importStar(require("./application_layer/publish/PublishAppService")); @@ -54,6 +54,7 @@ exports.findPublishApp = PublishAppService.findPublishApp; exports.findAllPublishApps = PublishAppService.findAllPublishApps; exports.getAllPublishNewestData = GetElementDataService.getAllPublishNewestData; exports.getElementAssembleData = GetElementDataService.getElementAssembleData; +exports.findAllElementAssembleData = GetElementDataService.findAllElementAssembleData; exports.publishElementAssembleData = PublishElementContributeService.publishElementAssembleData; exports.publishElementContribute = PublishElementContributeService.publishElementContribute; exports.publishPackage = PublishPackageService.publish; diff --git a/platform/backend-abstract/src/Main.js.map b/platform/backend-abstract/src/Main.js.map index 28d911ebc..e239906c5 100755 --- a/platform/backend-abstract/src/Main.js.map +++ b/platform/backend-abstract/src/Main.js.map @@ -1 +1 @@ -{"version":3,"file":"Main.js","sourceRoot":"","sources":["Main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wFAAyE;AACzE,oFAAqE;AACrE,iGAAkF;AAClF,iIAAkH;AAClH,qJAAsI;AACtI,yGAA0F;AAC1F,sGAAuF;AACvF,wGAAyF;AAElF,IAAI,IAAI,GAAG,CAAC,IAAiC,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAA5D,QAAA,IAAI,QAAwD;AAEhE,IAAI,kBAAkB,GAAG,CAAC,kBAAwD,EAAE,OAAe,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAA/H,QAAA,kBAAkB,sBAA6G;AAEnI,IAAI,aAAa,GAAG,CAAC,aAAmD,EAAE,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;AAAhH,QAAA,aAAa,iBAAmG;AAEpH,IAAI,YAAY,GAAG,CAAC,YAAkD,EAAE,OAAe,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;AAA7G,QAAA,YAAY,gBAAiG;AAE7G,QAAA,cAAc,GAAG,YAAY,CAAC,cAAc,CAAA;AAE5C,QAAA,yBAAyB,GAAG,aAAa,CAAC,yBAAyB,CAAA;AAEnE,QAAA,4BAA4B,GAAG,aAAa,CAAC,4BAA4B,CAAA;AAEzE,QAAA,8BAA8B,GAAG,aAAa,CAAC,8BAA8B,CAAA;AAE7E,QAAA,+BAA+B,GAAG,aAAa,CAAC,+BAA+B,CAAA;AAE/E,QAAA,kCAAkC,GAAG,aAAa,CAAC,kCAAkC,CAAA;AAErF,QAAA,0BAA0B,GAAG,aAAa,CAAC,0BAA0B,CAAA;AAErE,QAAA,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAA;AAEzD,QAAA,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAA;AAEtC,QAAA,cAAc,GAAG,iBAAiB,CAAC,cAAc,CAAA;AAE5D,yFAAyF;AAE9E,QAAA,kBAAkB,GAAG,iBAAiB,CAAC,kBAAkB,CAAA;AAEzD,QAAA,uBAAuB,GAAG,qBAAqB,CAAC,uBAAuB,CAAA;AAEvE,QAAA,sBAAsB,GAAG,qBAAqB,CAAC,sBAAsB,CAAA;AAErE,QAAA,0BAA0B,GAAG,+BAA+B,CAAC,0BAA0B,CAAA;AAEvF,QAAA,wBAAwB,GAAG,+BAA+B,CAAC,wBAAwB,CAAA;AAEnF,QAAA,cAAc,GAAG,qBAAqB,CAAC,OAAO,CAAA;AAE9C,QAAA,2CAA2C,GAAG,oBAAoB,CAAC,2CAA2C,CAAA;AAE9G,QAAA,yBAAyB,GAAG,oBAAoB,CAAC,yBAAyB,CAAA;AAE1E,QAAA,kBAAkB,GAAG,oBAAoB,CAAC,kBAAkB,CAAA;AAE5D,QAAA,wBAAwB,GAAG,iBAAiB,CAAC,wBAAwB,CAAA"} \ No newline at end of file +{"version":3,"file":"Main.js","sourceRoot":"","sources":["Main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wFAAyE;AACzE,oFAAqE;AACrE,iGAAkF;AAClF,iIAAkH;AAClH,qJAAsI;AACtI,yGAA0F;AAC1F,sGAAuF;AACvF,wGAAyF;AAElF,IAAI,IAAI,GAAG,CAAC,IAAiC,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAA5D,QAAA,IAAI,QAAwD;AAEhE,IAAI,kBAAkB,GAAG,CAAC,kBAAwD,EAAE,OAAe,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAA/H,QAAA,kBAAkB,sBAA6G;AAEnI,IAAI,aAAa,GAAG,CAAC,aAAmD,EAAE,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;AAAhH,QAAA,aAAa,iBAAmG;AAEpH,IAAI,YAAY,GAAG,CAAC,YAAkD,EAAE,OAAe,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;AAA7G,QAAA,YAAY,gBAAiG;AAE7G,QAAA,cAAc,GAAG,YAAY,CAAC,cAAc,CAAA;AAE5C,QAAA,yBAAyB,GAAG,aAAa,CAAC,yBAAyB,CAAA;AAEnE,QAAA,4BAA4B,GAAG,aAAa,CAAC,4BAA4B,CAAA;AAEzE,QAAA,8BAA8B,GAAG,aAAa,CAAC,8BAA8B,CAAA;AAE7E,QAAA,+BAA+B,GAAG,aAAa,CAAC,+BAA+B,CAAA;AAE/E,QAAA,kCAAkC,GAAG,aAAa,CAAC,kCAAkC,CAAA;AAErF,QAAA,0BAA0B,GAAG,aAAa,CAAC,0BAA0B,CAAA;AAErE,QAAA,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAA;AAEzD,QAAA,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAA;AAEtC,QAAA,cAAc,GAAG,iBAAiB,CAAC,cAAc,CAAA;AAE5D,yFAAyF;AAE9E,QAAA,kBAAkB,GAAG,iBAAiB,CAAC,kBAAkB,CAAA;AAEzD,QAAA,uBAAuB,GAAG,qBAAqB,CAAC,uBAAuB,CAAA;AAEvE,QAAA,sBAAsB,GAAG,qBAAqB,CAAC,sBAAsB,CAAA;AAErE,QAAA,0BAA0B,GAAG,qBAAqB,CAAC,0BAA0B,CAAA;AAE7E,QAAA,0BAA0B,GAAG,+BAA+B,CAAC,0BAA0B,CAAA;AAEvF,QAAA,wBAAwB,GAAG,+BAA+B,CAAC,wBAAwB,CAAA;AAEnF,QAAA,cAAc,GAAG,qBAAqB,CAAC,OAAO,CAAA;AAE9C,QAAA,2CAA2C,GAAG,oBAAoB,CAAC,2CAA2C,CAAA;AAE9G,QAAA,yBAAyB,GAAG,oBAAoB,CAAC,yBAAyB,CAAA;AAE1E,QAAA,kBAAkB,GAAG,oBAAoB,CAAC,kBAAkB,CAAA;AAE5D,QAAA,wBAAwB,GAAG,iBAAiB,CAAC,wBAAwB,CAAA"} \ No newline at end of file diff --git a/platform/backend-abstract/src/Main.ts b/platform/backend-abstract/src/Main.ts index 7a33e7107..dd300a976 100755 --- a/platform/backend-abstract/src/Main.ts +++ b/platform/backend-abstract/src/Main.ts @@ -44,6 +44,8 @@ export let getAllPublishNewestData = GetElementDataService.getAllPublishNewestDa export let getElementAssembleData = GetElementDataService.getElementAssembleData +export let findAllElementAssembleData = GetElementDataService.findAllElementAssembleData + export let publishElementAssembleData = PublishElementContributeService.publishElementAssembleData export let publishElementContribute = PublishElementContributeService.publishElementContribute diff --git a/platform/backend-abstract/src/application_layer/assemble_space/element_assemble/GetElementDataService.js b/platform/backend-abstract/src/application_layer/assemble_space/element_assemble/GetElementDataService.js index 0d329cc70..4fe59105a 100755 --- a/platform/backend-abstract/src/application_layer/assemble_space/element_assemble/GetElementDataService.js +++ b/platform/backend-abstract/src/application_layer/assemble_space/element_assemble/GetElementDataService.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.getElementAssembleData = exports.getAllPublishNewestData = void 0; +exports.findAllElementAssembleData = exports.getElementAssembleData = exports.getAllPublishNewestData = void 0; const meta3d_backend_cloudbase_1 = require("meta3d-backend-cloudbase"); const most_1 = require("most"); const semver_1 = require("semver"); @@ -54,4 +54,16 @@ let getElementAssembleData = (getMarketImplementAccountDataWithWhereDataFunc, ac }); }; exports.getElementAssembleData = getElementAssembleData; +let findAllElementAssembleData = (getDataFunc, limitCount, skipCount) => { + return (0, most_1.fromPromise)(getDataFunc("publishedelementassembledata", limitCount, skipCount)).flatMap((data) => { + return (0, most_1.just)(data.map(({ elementName, elementVersion, inspectorData }) => { + return { + elementName, + elementVersion, + inspectorData + }; + })); + }); +}; +exports.findAllElementAssembleData = findAllElementAssembleData; //# sourceMappingURL=GetElementDataService.js.map \ No newline at end of file diff --git a/platform/backend-abstract/src/application_layer/assemble_space/element_assemble/GetElementDataService.js.map b/platform/backend-abstract/src/application_layer/assemble_space/element_assemble/GetElementDataService.js.map index f519005d0..ef4cd35ef 100755 --- a/platform/backend-abstract/src/application_layer/assemble_space/element_assemble/GetElementDataService.js.map +++ b/platform/backend-abstract/src/application_layer/assemble_space/element_assemble/GetElementDataService.js.map @@ -1 +1 @@ -{"version":3,"file":"GetElementDataService.js","sourceRoot":"","sources":["GetElementDataService.ts"],"names":[],"mappings":";;;AAAA,uEAAgE;AAChE,+BAAiE;AACjE,mCAA6C;AAEtC,IAAI,uBAAuB,GAAG,CACjC,CACI,gCAAgC,EAChC,gCAAgC,EAChC,+CAA+C,EAC/C,gBAAgB,CACG,EACvB,cAAsB,EACtB,UAAkB,EAAE,SAAiB,EACrC,YAAoB,EAAE,EAAE;IACxB,OAAO,IAAA,kBAAW,EAAC,gCAAgC,CAAC,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE;QACvF,YAAY,EAAE,YAAY;KAC7B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;QACrB,OAAO,IAAA,kBAAW,EAAC,IAAA,iBAAU,EACzB,gCAAgC,CAAC,GAAG,EAAE,CAAC,6BAA6B,EAAE,EAAE;YACpE,IAAI,OAAO,GAAG,+CAA+C,CAAC,6BAA6B,CAAC,CAAA;YAE5F,IAAI,EACA,MAAM,EAAE,OAAO,EAAE,eAAe,EACnC,GAAG,6BAA6B,CAAA;YAEjC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBAC9C,OAAO;oBACH,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO;oBAC/C,eAAe,EAAE,IAAA,mBAAU,EAAC,eAAe,CAAC;iBAC/C,CAAA;YACL,CAAC,CAAC,CAAA;QAEN,CAAC,CAAC,CACL,CAAC,MAAM,CACJ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEjB,OAAO,MAAM,CAAA;QACjB,CAAC,EAAE,EAAE,CACR,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjB,IAAI,IAAA,WAAE,EAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE;oBAC1C,OAAO,CAAC,CAAC,CAAA;iBACZ;gBAED,OAAO,CAAC,CAAA;YACZ,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;gBAC7B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,YAAG,EAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE;oBACjE,OAAO,CAAC,CAAA;iBACX;gBAED,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAEZ,OAAO,CAAC,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;YACzC,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CACD,CAAA;IACL,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AA1DU,QAAA,uBAAuB,2BA0DjC;AAEM,IAAI,sBAAsB,GAAG,CAChC,8CAAmD,EACnD,OAAe,EACf,WAAmB,EACnB,cAAsB,EACxB,EAAE;IACA,OAAO,IAAA,kBAAW,EACd,8CAA8C,CAC1C,8BAA8B,EAC9B;QACI,GAAG,EAAE,IAAA,+CAAoB,EAAC,OAAO,CAAC;QAClC,WAAW;QACX,cAAc;KACjB,CACJ,CACJ;SACI,OAAO,CAAC,CAAC,0BAA+B,EAAE,EAAE;QACzC,IAAI,0BAA0B,CAAC,MAAM,KAAK,CAAC,EAAE;YACzC,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,CAAA;SACpB;QAED,OAAO,IAAA,WAAI,EAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;AACV,CAAC,CAAA;AAvBU,QAAA,sBAAsB,0BAuBhC"} \ No newline at end of file +{"version":3,"file":"GetElementDataService.js","sourceRoot":"","sources":["GetElementDataService.ts"],"names":[],"mappings":";;;AAAA,uEAAgE;AAChE,+BAAiE;AACjE,mCAA6C;AAEtC,IAAI,uBAAuB,GAAG,CACjC,CACI,gCAAgC,EAChC,gCAAgC,EAChC,+CAA+C,EAC/C,gBAAgB,CACG,EACvB,cAAsB,EACtB,UAAkB,EAAE,SAAiB,EACrC,YAAoB,EAAE,EAAE;IACxB,OAAO,IAAA,kBAAW,EAAC,gCAAgC,CAAC,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE;QACvF,YAAY,EAAE,YAAY;KAC7B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;QACrB,OAAO,IAAA,kBAAW,EAAC,IAAA,iBAAU,EACzB,gCAAgC,CAAC,GAAG,EAAE,CAAC,6BAA6B,EAAE,EAAE;YACpE,IAAI,OAAO,GAAG,+CAA+C,CAAC,6BAA6B,CAAC,CAAA;YAE5F,IAAI,EACA,MAAM,EAAE,OAAO,EAAE,eAAe,EACnC,GAAG,6BAA6B,CAAA;YAEjC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBAC9C,OAAO;oBACH,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO;oBAC/C,eAAe,EAAE,IAAA,mBAAU,EAAC,eAAe,CAAC;iBAC/C,CAAA;YACL,CAAC,CAAC,CAAA;QAEN,CAAC,CAAC,CACL,CAAC,MAAM,CACJ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEjB,OAAO,MAAM,CAAA;QACjB,CAAC,EAAE,EAAE,CACR,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjB,IAAI,IAAA,WAAE,EAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE;oBAC1C,OAAO,CAAC,CAAC,CAAA;iBACZ;gBAED,OAAO,CAAC,CAAA;YACZ,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;gBAC7B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,YAAG,EAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE;oBACjE,OAAO,CAAC,CAAA;iBACX;gBAED,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAEZ,OAAO,CAAC,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;YACzC,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CACD,CAAA;IACL,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AA1DU,QAAA,uBAAuB,2BA0DjC;AAEM,IAAI,sBAAsB,GAAG,CAChC,8CAAmD,EACnD,OAAe,EACf,WAAmB,EACnB,cAAsB,EACxB,EAAE;IACA,OAAO,IAAA,kBAAW,EACd,8CAA8C,CAC1C,8BAA8B,EAC9B;QACI,GAAG,EAAE,IAAA,+CAAoB,EAAC,OAAO,CAAC;QAClC,WAAW;QACX,cAAc;KACjB,CACJ,CACJ;SACI,OAAO,CAAC,CAAC,0BAA+B,EAAE,EAAE;QACzC,IAAI,0BAA0B,CAAC,MAAM,KAAK,CAAC,EAAE;YACzC,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,CAAA;SACpB;QAED,OAAO,IAAA,WAAI,EAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;AAEV,CAAC,CAAA;AAxBU,QAAA,sBAAsB,0BAwBhC;AAEM,IAAI,0BAA0B,GAAG,CACpC,WAAgB,EAChB,UAAkB,EAClB,SAAiB,EACnB,EAAE;IACA,OAAO,IAAA,kBAAW,EAAC,WAAW,CAAC,8BAA8B,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;QACzG,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAClB,WAAW,EACX,cAAc,EACd,aAAa,EAChB,EAAE,EAAE;YACD,OAAO;gBACH,WAAW;gBACX,cAAc;gBACd,aAAa;aAChB,CAAA;QACL,CAAC,CAAC,CAAC,CAAA;IACP,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAlBU,QAAA,0BAA0B,8BAkBpC"} \ No newline at end of file diff --git a/platform/backend-abstract/src/application_layer/assemble_space/element_assemble/GetElementDataService.ts b/platform/backend-abstract/src/application_layer/assemble_space/element_assemble/GetElementDataService.ts index 13f4959eb..2cce8b48b 100755 --- a/platform/backend-abstract/src/application_layer/assemble_space/element_assemble/GetElementDataService.ts +++ b/platform/backend-abstract/src/application_layer/assemble_space/element_assemble/GetElementDataService.ts @@ -85,4 +85,25 @@ export let getElementAssembleData = ( return just(marketImplementAccountData[0]) }) + +} + +export let findAllElementAssembleData = ( + getDataFunc: any, + limitCount: number, + skipCount: number, +) => { + return fromPromise(getDataFunc("publishedelementassembledata", limitCount, skipCount)).flatMap((data: any) => { + return just(data.map(({ + elementName, + elementVersion, + inspectorData + }) => { + return { + elementName, + elementVersion, + inspectorData + } + })) + }) } \ No newline at end of file diff --git a/platform/backend-cloudbase/src/Main.js b/platform/backend-cloudbase/src/Main.js index 67e17b483..ea4571e12 100755 --- a/platform/backend-cloudbase/src/Main.js +++ b/platform/backend-cloudbase/src/Main.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.findNewestPublishContribute = exports.findNewestPublishExtension = exports.findNewestPublishPackage = exports.findPublishPackage = exports.getAllPublishPackageInfos = exports.getAllPublishPackageEntryExtensionProtocols = exports.publishPackage = exports.getElementAssembleData = exports.getAllPublishNewestExtensions = exports.publishElementAssembleData = exports.publishElementContribute = exports.findAllPublishApps = exports.findPublishApp = exports.publishApp = exports.findPublishContribute = exports.findPublishExtension = exports.getAllPublishContributeInfos = exports.getAllPublishExtensionInfos = exports.batchFindPublishContributeProtocolConfigs = exports.batchFindPublishExtensionProtocolConfigs = exports.getAllPublishContributeProtocolConfigs = exports.getAllPublishExtensionProtocolConfigs = exports.batchFindPublishContributeProtocols = exports.batchFindPublishExtensionProtocols = exports.getAllPublishContributeProtocols = exports.getAllPublishExtensionProtocols = exports.getAllPublishExtensionProtocolsCount = exports.isLoginSuccess = exports.registerUser = exports.handleLoginForWeb3 = exports.checkUserName = exports.init = void 0; +exports.findNewestPublishContribute = exports.findNewestPublishExtension = exports.findNewestPublishPackage = exports.findPublishPackage = exports.getAllPublishPackageInfos = exports.getAllPublishPackageEntryExtensionProtocols = exports.publishPackage = exports.findAllElementAssembleData = exports.getElementAssembleData = exports.getAllPublishNewestExtensions = exports.publishElementAssembleData = exports.publishElementContribute = exports.findAllPublishApps = exports.findPublishApp = exports.publishApp = exports.findPublishContribute = exports.findPublishExtension = exports.getAllPublishContributeInfos = exports.getAllPublishExtensionInfos = exports.batchFindPublishContributeProtocolConfigs = exports.batchFindPublishExtensionProtocolConfigs = exports.getAllPublishContributeProtocolConfigs = exports.getAllPublishExtensionProtocolConfigs = exports.batchFindPublishContributeProtocols = exports.batchFindPublishExtensionProtocols = exports.getAllPublishContributeProtocols = exports.getAllPublishExtensionProtocols = exports.getAllPublishExtensionProtocolsCount = exports.isLoginSuccess = exports.registerUser = exports.handleLoginForWeb3 = exports.checkUserName = exports.init = void 0; const Abstract = require("backend-abstract"); const Curry_1 = require("../../../defaults/meta3d-fp/src/Curry"); const BackendService_1 = require("./application_layer/BackendService"); @@ -110,6 +110,8 @@ let getAllPublishNewestExtensions = (limitCount, skipCount, protocolName) => Abs exports.getAllPublishNewestExtensions = getAllPublishNewestExtensions; let getElementAssembleData = (account, elementName, elementVersion) => Abstract.getElementAssembleData(BackendService_1.getMarketImplementAccountDataWithWhereData, account, elementName, elementVersion); exports.getElementAssembleData = getElementAssembleData; +let findAllElementAssembleData = (limitCount, skipCount) => Abstract.findAllElementAssembleData(BackendService_1.getData, limitCount, skipCount); +exports.findAllElementAssembleData = findAllElementAssembleData; let publishPackage = (onUploadProgressFunc, packageBinaryFile, entryExtensionData, packageData, account) => Abstract.publishPackage([ onUploadProgressFunc, BackendService_1.uploadFile, diff --git a/platform/backend-cloudbase/src/Main.ts b/platform/backend-cloudbase/src/Main.ts index 1dbcb3091..e4679b2a0 100755 --- a/platform/backend-cloudbase/src/Main.ts +++ b/platform/backend-cloudbase/src/Main.ts @@ -231,7 +231,14 @@ export let getElementAssembleData = ( elementVersion, ) - +export let findAllElementAssembleData = ( + limitCount, + skipCount, +) => Abstract.findAllElementAssembleData( + getData, + limitCount, + skipCount, +) export let publishPackage = (onUploadProgressFunc, diff --git a/platform/frontend-utils/src/ElementUtils.res b/platform/frontend-utils/src/ElementUtils.res new file mode 100644 index 000000000..24bce8f07 --- /dev/null +++ b/platform/frontend-utils/src/ElementUtils.res @@ -0,0 +1 @@ +let getElementContributeProtocolName = () => "meta3d-element-assemble-element-protocol" \ No newline at end of file diff --git a/platform/frontend-utils/src/assemble_space/AssembleSpaceType.res b/platform/frontend-utils/src/assemble_space/AssembleSpaceType.res index 59b4be8ab..b444339a9 100755 --- a/platform/frontend-utils/src/assemble_space/AssembleSpaceType.res +++ b/platform/frontend-utils/src/assemble_space/AssembleSpaceType.res @@ -8,6 +8,8 @@ type selectedExtensionsFromMarket = list type selectedContributesFromMarket = list +type selectedElementsFromMarket = list + type dispatch = AssembleSpaceStoreType.action => unit type useDispatch = unit => dispatch @@ -96,12 +98,13 @@ type meta3dService = { array<(contributePackageData, Meta3d.ExtensionFileType.contributeFuncData)>, ), array, -packageData + packageData, ) => Js.Typed_array.ArrayBuffer.t, generateApp: ( . array<(contributePackageData, Meta3d.ExtensionFileType.contributeFuncData)>, array, array<(packageData, Js.Typed_array.ArrayBuffer.t)>, + array, Js.Nullable.t, string, ) => Js.Typed_array.ArrayBuffer.t, @@ -120,7 +123,7 @@ packageData array<(extensionPackageData, Meta3d.ExtensionFileType.extensionFuncData)>, array<(contributePackageData, Meta3d.ExtensionFileType.contributeFuncData)>, array, - packageData + packageData, ), execGetContributeFunc: ( . Js.Typed_array.Uint8Array.t, diff --git a/platform/frontend-utils/src/assemble_space/UserCenterStoreType.res b/platform/frontend-utils/src/assemble_space/UserCenterStoreType.res index eb9395e4b..a54dd450a 100755 --- a/platform/frontend-utils/src/assemble_space/UserCenterStoreType.res +++ b/platform/frontend-utils/src/assemble_space/UserCenterStoreType.res @@ -12,6 +12,8 @@ type packageData = AssembleSpaceCommonType.packageData type selectedPackages = list +type selectedElements = list + type account = string type name = string @@ -24,6 +26,12 @@ type action = | SelectPackage(packageData) // | NotSelectPackage(id) | NotSelectPackage(name, AssembleSpaceCommonType.version) + | SelectElement(FrontendUtils.BackendCloudbaseType.elementAssembleData) + | NotSelectElement( + FrontendUtils.BackendCloudbaseType.elementName, + FrontendUtils.BackendCloudbaseType.elementVersion, + ) + | SelectAllElements(list) | SetAccount(account) | ImportPackage(id, selectedExtensions, selectedContributes, selectedPackages) | ImportApp(id, selectedExtensions, selectedContributes, selectedPackages) @@ -38,6 +46,7 @@ type state = { selectedExtensions: selectedExtensions, selectedContributes: selectedContributes, selectedPackages: selectedPackages, + selectedElements: selectedElements, importedPackageIds: list, importedAppIds: list, } diff --git a/platform/frontend-utils/src/assemble_space/ap_assemble/ApAssembleStoreType.res b/platform/frontend-utils/src/assemble_space/ap_assemble/ApAssembleStoreType.res index 891cecb3a..2595f859f 100755 --- a/platform/frontend-utils/src/assemble_space/ap_assemble/ApAssembleStoreType.res +++ b/platform/frontend-utils/src/assemble_space/ap_assemble/ApAssembleStoreType.res @@ -41,6 +41,8 @@ type package = AssembleSpaceCommonType.packageData type selectedPackages = list +// type selectedElements = list + type isDebug = bool type clearColor = (float, float, float, float) @@ -99,11 +101,13 @@ type action = | StorePackageInApp(id) | UnStorePackageInApp(id) | BatchStorePackagesInApp(list) + // | SelectAllElements(selectedElements) type state = { selectedPackages: selectedPackages, selectedExtensions: selectedExtensions, selectedContributes: selectedContributes, + // selectedElements: selectedElements, inspectorCurrentExtensionId: option, inspectorCurrentContributeId: option, inspectorCurrentPackageId: option, diff --git a/platform/frontend-utils/src/assemble_space/element_assemble/ElementAssembleStoreType.res b/platform/frontend-utils/src/assemble_space/element_assemble/ElementAssembleStoreType.res index f92e47fa4..f2f05e9c9 100755 --- a/platform/frontend-utils/src/assemble_space/element_assemble/ElementAssembleStoreType.res +++ b/platform/frontend-utils/src/assemble_space/element_assemble/ElementAssembleStoreType.res @@ -1,8 +1,8 @@ type elementStateFieldType = [#string | #int | #bool] -type specificDataType = Meta3dType.UIControlProtocolConfigType.uiControlSpecicFieldType +// type specificDataType = Meta3dType.UIControlProtocolConfigType.uiControlSpecicFieldType -external specificTypeToElementStateFieldType: specificDataType => elementStateFieldType = +external specificTypeToElementStateFieldType: CommonType.specificDataType => elementStateFieldType = "%identity" type protocolIconBase64 = string @@ -31,44 +31,27 @@ type selectedUIControls = list // type eventName = string -type actionName = string +type actionName = CommonType.actionName -type eventData = { - eventName: Meta3dType.ContributeProtocolConfigType.eventName, - // eventName: eventName, - actionName: actionName, -} +type eventData = CommonType.eventData -type event = array +type event = CommonType.event -type rectField = IntForRectField(int) -// | ElementStateFieldForRectField(string) +type rectField = CommonType.rectField -type rect = { - x: rectField, - y: rectField, - width: rectField, - height: rectField, -} +type rect = CommonType.rect -type isDraw = BoolForIsDraw(bool) -// | ElementStateFieldForIsDraw(string) +type isDraw = CommonType.isDraw -type specificDataValue = - SpecicFieldDataValue(Meta3dType.UIControlProtocolConfigType.uiControlSpecicFieldValue) -// | ElementStateFieldForSpecificDataValue(string) +type specificDataValue = CommonType.specificDataValue -type specificData = { - name: string, - type_: specificDataType, - value: specificDataValue, -} +type specificData = CommonType.specificData -type specific = array +type specific = CommonType.specific -type inputName = string +type inputName = CommonType.inputName -type input = {inputName: inputName} +type input = CommonType.input type rec uiControlInspectorData = { id: id, @@ -167,4 +150,5 @@ type state = { elementContribute: option, // isShowElementInspector: bool, // elementInspectorData: elementInspectorData, + isImportElement: bool, } diff --git a/platform/frontend-utils/src/backend_cloudbase/BackendCloudbaseType.res b/platform/frontend-utils/src/backend_cloudbase/BackendCloudbaseType.res index 56abb7bb0..63b051bb4 100755 --- a/platform/frontend-utils/src/backend_cloudbase/BackendCloudbaseType.res +++ b/platform/frontend-utils/src/backend_cloudbase/BackendCloudbaseType.res @@ -112,6 +112,8 @@ type batchFindPublishExtensionProtocols = ( // . array<(protocolName, protocolVersion)>, + // . array<(protocolName, protocolVersion)>, + // . array<(protocolName, protocolVersion)>, protocolName, >, @@ -164,6 +166,8 @@ type batchFindPublishContributeProtocols = ( // . array<(protocolName, protocolVersion)>, + // . array<(protocolName, protocolVersion)>, + // . array<(protocolName, protocolVersion)>, protocolName, >, @@ -232,6 +236,8 @@ type batchFindPublishExtensionProtocolConfigs = ( // . array<(protocolName, protocolVersion)>, + // . array<(protocolName, protocolVersion)>, + // . array<(protocolName, protocolVersion)>, protocolName, >, @@ -284,6 +290,8 @@ type batchFindPublishContributeProtocolConfigs = ( // . array<(protocolName, protocolVersion)>, + // . array<(protocolName, protocolVersion)>, + // . array<(protocolName, protocolVersion)>, protocolName, >, @@ -368,16 +376,15 @@ type publishElementContribute = ( type rec uiControl = { displayName: string, - rect: ElementAssembleStoreType.rect, - isDraw: ElementAssembleStoreType.isDraw, - input: Js.Nullable.t, - event: ElementAssembleStoreType.event, - specific: ElementAssembleStoreType.specific, + rect: CommonType.rect, + isDraw: CommonType.isDraw, + input: Js.Nullable.t, + event: CommonType.event, + specific: CommonType.specific, children: array, } type inspectorData = { - // element: ElementAssembleStoreType.elementInspectorData, uiControls: array, } @@ -419,6 +426,11 @@ type getElementAssembleData = ( elementVersion, ) => Meta3dBsMostDefault.Most.stream> +type findAllElementAssembleData = ( + . limitCount, + skipCount, +) => Meta3dBsMostDefault.Most.stream> + type entryExtensionProtocolName = protocolName type entryExtensionProtocolVersion = protocolVersion diff --git a/platform/frontend-utils/src/frontend/FrontendType.res b/platform/frontend-utils/src/frontend/FrontendType.res index 9e9626159..b9b58effd 100755 --- a/platform/frontend-utils/src/frontend/FrontendType.res +++ b/platform/frontend-utils/src/frontend/FrontendType.res @@ -24,6 +24,7 @@ type backendService = { findAllPublishApps: findAllPublishApps, findPublishApp: findPublishApp, findPublishPackage: findPublishPackage, + findAllElementAssembleData: findAllElementAssembleData, } type error = (. string, option) => unit diff --git a/platform/frontend-utils/src/type/CommonType.res b/platform/frontend-utils/src/type/CommonType.res index 61c6a0d13..a427a3ed0 100755 --- a/platform/frontend-utils/src/type/CommonType.res +++ b/platform/frontend-utils/src/type/CommonType.res @@ -50,3 +50,47 @@ type protocolConfig = { account: string, configStr: protocolConfigStr, } + + +type rectField = IntForRectField(int) + +type rect = { + x: rectField, + y: rectField, + width: rectField, + height: rectField, +} + + +type isDraw = BoolForIsDraw(bool) + + +type inputName = string + +type input = {inputName: inputName} + +type actionName = string + +type eventData = { + eventName: Meta3dType.ContributeProtocolConfigType.eventName, + // eventName: eventName, + actionName: actionName, +} + +type event = array + + +type specificDataType = Meta3dType.UIControlProtocolConfigType.uiControlSpecicFieldType + + +type specificDataValue = + SpecicFieldDataValue(Meta3dType.UIControlProtocolConfigType.uiControlSpecicFieldValue) +// | ElementStateFieldForSpecificDataValue(string) + +type specificData = { + name: string, + type_: specificDataType, + value: specificDataValue, +} + +type specific = array diff --git a/platform/frontend/src/external_layer/ui/app/components/App.res b/platform/frontend/src/external_layer/ui/app/components/App.res index c00a5c90e..0f5e0c11c 100755 --- a/platform/frontend/src/external_layer/ui/app/components/App.res +++ b/platform/frontend/src/external_layer/ui/app/components/App.res @@ -14,9 +14,13 @@ module Method = { let make = (~service: FrontendUtils.FrontendType.service, ~env: FrontendUtils.EnvType.env) => { let url = RescriptReactRouter.useUrl() - let {account, selectedExtensions, selectedContributes, selectedPackages} = AppStore.useSelector(( - {userCenterState}: FrontendUtils.AppStoreType.state, - ) => userCenterState) + let { + account, + selectedExtensions, + selectedContributes, + selectedPackages, + selectedElements, + } = AppStore.useSelector(({userCenterState}: FrontendUtils.AppStoreType.state) => userCenterState) let _buildAssembleSpaceService = (): FrontendUtils.AssembleSpaceType.service => { ui: { @@ -96,6 +100,7 @@ let make = (~service: FrontendUtils.FrontendType.service, ~env: FrontendUtils.En allContributeFileData, allPackageBinaryFiles, allPackagesStoredInApp, + selectedElements, startConfigData, startPackageProtocolName, ) => @@ -103,6 +108,7 @@ let make = (~service: FrontendUtils.FrontendType.service, ~env: FrontendUtils.En allContributeFileData, allPackageBinaryFiles, allPackagesStoredInApp, + selectedElements->Obj.magic, startConfigData, startPackageProtocolName, ), @@ -266,7 +272,7 @@ let make = (~service: FrontendUtils.FrontendType.service, ~env: FrontendUtils.En | list{"AssembleSpace"} => Method.judgeToJumpToLogin(() => -