@rainbow-robotics/preview-host 0.1.2-dev.5 → 0.1.2-dev.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +236 -26
- package/build.mjs +2 -1
- package/dist/assets/AmrCapabilityControl.V6oiR3_5.js +1 -0
- package/dist/assets/MapInfo.rg67lYW5.js +1 -0
- package/dist/assets/RBQrBarCodeGuideModal.CegVepfq.js +4939 -0
- package/dist/assets/{__federation_expose_App.B-7yegU_.js → __federation_expose_App.rWoLmFNr.js} +282 -249
- package/dist/assets/__federation_fn_import.DdkEuT6t.js +23 -0
- package/dist/assets/__federation_shared_@emotion/{styled.wOy85H_m.js → styled.ETfwMsQo.js} +1 -1
- package/dist/assets/__federation_shared_@tanstack/{react-query.BqXJhb-5.js → react-query.fVz8BOIk.js} +1 -1
- package/dist/assets/__federation_shared_react-dom.CHMAxKsQ.js +1 -0
- package/dist/assets/{__federation_shared_react-simple-keyboard.BDWRGEbM.js → __federation_shared_react-simple-keyboard.CycbmZUL.js} +3 -3
- package/dist/assets/__federation_shared_react.DhiB56zQ.js +1 -0
- package/dist/assets/{cssMode.BVhnq_6y.js → cssMode.CiNmHTFv.js} +1 -1
- package/dist/assets/{emotion-styled-base.browser.esm.JngGwqgu.js → emotion-styled-base.browser.esm.BIcjgOzg.js} +1 -1
- package/dist/assets/{freemarker2.DtoqwD_L.js → freemarker2.B7r_V28s.js} +1 -1
- package/dist/assets/goalIconAtlas.B2lkzTN6.svg +39 -0
- package/dist/assets/goalIconAtlasReal.BcQvnHD9.svg +34 -0
- package/dist/assets/{handlebars.UmYoTOId.js → handlebars.3_K0j9Im.js} +1 -1
- package/dist/assets/{html.DC0Vlx9N.js → html.DKWAB1mf.js} +1 -1
- package/dist/assets/{htmlMode.cZn_7xZQ.js → htmlMode.CZ2KmtuG.js} +1 -1
- package/dist/assets/{index.CHuCXVak.js → index.B3zY1kf7.js} +1 -1
- package/dist/assets/index.Cn3FZx5U.js +1 -0
- package/dist/assets/index.CvtWB-ew.js +1 -0
- package/dist/assets/index.DhDDHapK.js +1 -0
- package/dist/assets/index.P6snMalu.js +9 -0
- package/dist/assets/{javascript.CxVqa5p8.js → javascript.DE-dWGjy.js} +1 -1
- package/dist/assets/{jsonMode.BQsXaCAy.js → jsonMode.BoVz1jWE.js} +1 -1
- package/dist/assets/jsx-runtime.CBqCNPYB.js +9 -0
- package/dist/assets/keymapTileIndex.worker-Bmd4Ukaf.js +1 -0
- package/dist/assets/{liquid.ctNTffmu.js → liquid.UXJC-JKJ.js} +1 -1
- package/dist/assets/{lspLanguageFeatures.CIBenPTg.js → lspLanguageFeatures.BbVTGB6M.js} +1 -1
- package/dist/assets/{mdx.CEwN4-mU.js → mdx.B7jHdcUF.js} +1 -1
- package/dist/assets/{python.DFiX7UCg.js → python.DqZWylvN.js} +1 -1
- package/dist/assets/{razor.6V_1uJ45.js → razor.Dwj_e3ac.js} +1 -1
- package/dist/assets/remoteEntry.js +1 -1
- package/dist/assets/{tsMode.CtIlnNw7.js → tsMode.DLDaOd78.js} +1 -1
- package/dist/assets/{typescript.D1htxZ_X.js → typescript.B4V2Badx.js} +1 -1
- package/dist/assets/{xml.D6hYgOkJ.js → xml.BpqV0vd6.js} +1 -1
- package/dist/assets/{yaml.BPMLV51E.js → yaml.BlIeL5XV.js} +1 -1
- package/dist/imgs/nexus/forms/gripper/g7_grip_dir_0.png +0 -0
- package/dist/imgs/nexus/forms/gripper/g7_grip_dir_1.png +0 -0
- package/dist/imgs/nexus/forms/gripper/g7_offset.png +0 -0
- package/dist/imgs/nexus/forms/gripper/g7_orientation_0.png +0 -0
- package/dist/imgs/nexus/forms/gripper/g7_orientation_1.png +0 -0
- package/dist/imgs/nexus/forms/gripper/g7_tip_width.png +0 -0
- package/dist/imgs/nexus/forms/gripper/gripper_10.png +0 -0
- package/dist/imgs/nexus/forms/gripper/gripper_7.png +0 -0
- package/dist/imgs/nexus/forms/gripper/gripper_8.png +0 -0
- package/dist/imgs/nexus/forms/gripper/gripper_9.png +0 -0
- package/dist/index.html +11 -10
- package/dist/plugin-shared/plugin-ui_host-ui.js +3 -0
- package/dist/plugin-shared/plugin-ui_react.js +3 -0
- package/dist/plugin-shared/plugin-ui_sdk.js +3 -0
- package/dist/plugin-shared/plugin-ui_ws.js +3 -0
- package/dist/plugin-shared/react-dom.js +4 -0
- package/dist/plugin-shared/react-dom_client.js +3 -0
- package/dist/plugin-shared/react.js +4 -0
- package/dist/plugin-shared/react_jsx-dev-runtime.js +3 -0
- package/dist/plugin-shared/react_jsx-runtime.js +3 -0
- package/package.json +4 -4
- package/serve.mjs +95 -48
- package/dist/assets/AmrCapabilityControl.BppT8lfW.js +0 -1
- package/dist/assets/ConveyorBelt.DYgETvU-.png +0 -0
- package/dist/assets/FactoryMap.CBpf9N92.js +0 -4881
- package/dist/assets/MapInfo.Bit_2DfJ.js +0 -1
- package/dist/assets/__federation_fn_import.Drmbxo5T.js +0 -23
- package/dist/assets/__federation_shared_react-dom.znG_qyPl.js +0 -1
- package/dist/assets/__federation_shared_react.Wsh8dz5j.js +0 -1
- package/dist/assets/_commonjsHelpers.Cpj98o6Y.js +0 -1
- package/dist/assets/index.C3X9hmTL.js +0 -1
- package/dist/assets/index.ChsGqxH_.js +0 -9
- package/dist/assets/index.FxRLAiU5.js +0 -1
- package/dist/assets/index.ayADrA9_.js +0 -1
- package/dist/assets/jsx-runtime.CKZTQYsb.js +0 -9
- package/dist/assets/keymapTileIndex.worker-C2HCGd-D.js +0 -1
- package/dist/plugin-demo/assets/icon.svg +0 -3
- package/dist/plugin-demo/content.js +0 -9149
- package/dist/plugin-demo/manifest.json +0 -25
- package/dist/plugin-demo/sandbox.html +0 -10
- package/dist/plugin-runtime/@rainbow-robotics/plugin-ui/chunks/chunk-AMCIKVG7.js +0 -1
- package/dist/plugin-runtime/@rainbow-robotics/plugin-ui/chunks/chunk-GJWPOWHG.js +0 -1
- package/dist/plugin-runtime/@rainbow-robotics/plugin-ui/chunks/chunk-JRCDA3EG.js +0 -1
- package/dist/plugin-runtime/@rainbow-robotics/plugin-ui/connect.js +0 -1
- package/dist/plugin-runtime/@rainbow-robotics/plugin-ui/elements.js +0 -1
- package/dist/plugin-runtime/@rainbow-robotics/plugin-ui/react.js +0 -1
- package/dist/plugin-runtime/@rainbow-robotics/plugin-ui/sdk.js +0 -1
- package/dist/plugin-runtime/vendor/react-dom-client.js +0 -1
- package/dist/plugin-runtime/vendor/react-jsx-dev-runtime.js +0 -1
- package/dist/plugin-runtime/vendor/react-jsx-runtime.js +0 -1
- package/dist/plugin-runtime/vendor/react-runtime.js +0 -65
- package/dist/plugin-runtime/vendor/react.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as M,e as w,U as F,b as P,M as v,l as f,t as K,R as O}from"./__federation_expose_App.rWoLmFNr.js";class E{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;const e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||(this._client=(async()=>(this._worker=M({moduleId:"vs/language/typescript/tsWorker",createWorker:()=>new Worker(new URL("/assets/ts.worker-BjWGAzqc.js",import.meta.url),{type:"module"}),label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(w.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))()),this._client}async getLanguageServiceWorker(...e){const t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}}const s={};s["lib.d.ts"]=!0;s["lib.decorators.d.ts"]=!0;s["lib.decorators.legacy.d.ts"]=!0;s["lib.dom.asynciterable.d.ts"]=!0;s["lib.dom.d.ts"]=!0;s["lib.dom.iterable.d.ts"]=!0;s["lib.es2015.collection.d.ts"]=!0;s["lib.es2015.core.d.ts"]=!0;s["lib.es2015.d.ts"]=!0;s["lib.es2015.generator.d.ts"]=!0;s["lib.es2015.iterable.d.ts"]=!0;s["lib.es2015.promise.d.ts"]=!0;s["lib.es2015.proxy.d.ts"]=!0;s["lib.es2015.reflect.d.ts"]=!0;s["lib.es2015.symbol.d.ts"]=!0;s["lib.es2015.symbol.wellknown.d.ts"]=!0;s["lib.es2016.array.include.d.ts"]=!0;s["lib.es2016.d.ts"]=!0;s["lib.es2016.full.d.ts"]=!0;s["lib.es2016.intl.d.ts"]=!0;s["lib.es2017.arraybuffer.d.ts"]=!0;s["lib.es2017.d.ts"]=!0;s["lib.es2017.date.d.ts"]=!0;s["lib.es2017.full.d.ts"]=!0;s["lib.es2017.intl.d.ts"]=!0;s["lib.es2017.object.d.ts"]=!0;s["lib.es2017.sharedmemory.d.ts"]=!0;s["lib.es2017.string.d.ts"]=!0;s["lib.es2017.typedarrays.d.ts"]=!0;s["lib.es2018.asyncgenerator.d.ts"]=!0;s["lib.es2018.asynciterable.d.ts"]=!0;s["lib.es2018.d.ts"]=!0;s["lib.es2018.full.d.ts"]=!0;s["lib.es2018.intl.d.ts"]=!0;s["lib.es2018.promise.d.ts"]=!0;s["lib.es2018.regexp.d.ts"]=!0;s["lib.es2019.array.d.ts"]=!0;s["lib.es2019.d.ts"]=!0;s["lib.es2019.full.d.ts"]=!0;s["lib.es2019.intl.d.ts"]=!0;s["lib.es2019.object.d.ts"]=!0;s["lib.es2019.string.d.ts"]=!0;s["lib.es2019.symbol.d.ts"]=!0;s["lib.es2020.bigint.d.ts"]=!0;s["lib.es2020.d.ts"]=!0;s["lib.es2020.date.d.ts"]=!0;s["lib.es2020.full.d.ts"]=!0;s["lib.es2020.intl.d.ts"]=!0;s["lib.es2020.number.d.ts"]=!0;s["lib.es2020.promise.d.ts"]=!0;s["lib.es2020.sharedmemory.d.ts"]=!0;s["lib.es2020.string.d.ts"]=!0;s["lib.es2020.symbol.wellknown.d.ts"]=!0;s["lib.es2021.d.ts"]=!0;s["lib.es2021.full.d.ts"]=!0;s["lib.es2021.intl.d.ts"]=!0;s["lib.es2021.promise.d.ts"]=!0;s["lib.es2021.string.d.ts"]=!0;s["lib.es2021.weakref.d.ts"]=!0;s["lib.es2022.array.d.ts"]=!0;s["lib.es2022.d.ts"]=!0;s["lib.es2022.error.d.ts"]=!0;s["lib.es2022.full.d.ts"]=!0;s["lib.es2022.intl.d.ts"]=!0;s["lib.es2022.object.d.ts"]=!0;s["lib.es2022.regexp.d.ts"]=!0;s["lib.es2022.string.d.ts"]=!0;s["lib.es2023.array.d.ts"]=!0;s["lib.es2023.collection.d.ts"]=!0;s["lib.es2023.d.ts"]=!0;s["lib.es2023.full.d.ts"]=!0;s["lib.es2023.intl.d.ts"]=!0;s["lib.es2024.arraybuffer.d.ts"]=!0;s["lib.es2024.collection.d.ts"]=!0;s["lib.es2024.d.ts"]=!0;s["lib.es2024.full.d.ts"]=!0;s["lib.es2024.object.d.ts"]=!0;s["lib.es2024.promise.d.ts"]=!0;s["lib.es2024.regexp.d.ts"]=!0;s["lib.es2024.sharedmemory.d.ts"]=!0;s["lib.es2024.string.d.ts"]=!0;s["lib.es5.d.ts"]=!0;s["lib.es6.d.ts"]=!0;s["lib.esnext.array.d.ts"]=!0;s["lib.esnext.collection.d.ts"]=!0;s["lib.esnext.d.ts"]=!0;s["lib.esnext.decorators.d.ts"]=!0;s["lib.esnext.disposable.d.ts"]=!0;s["lib.esnext.error.d.ts"]=!0;s["lib.esnext.float16.d.ts"]=!0;s["lib.esnext.full.d.ts"]=!0;s["lib.esnext.intl.d.ts"]=!0;s["lib.esnext.iterator.d.ts"]=!0;s["lib.esnext.promise.d.ts"]=!0;s["lib.esnext.sharedmemory.d.ts"]=!0;s["lib.scripthost.d.ts"]=!0;s["lib.webworker.asynciterable.d.ts"]=!0;s["lib.webworker.d.ts"]=!0;s["lib.webworker.importscripts.d.ts"]=!0;s["lib.webworker.iterable.d.ts"]=!0;function A(c,e,t=0){if(typeof c=="string")return c;if(c===void 0)return"";let o="";if(t){o+=e;for(let i=0;i<t;i++)o+=" "}if(o+=c.messageText,t++,c.next)for(const i of c.next)o+=A(i,e,t);return o}function _(c){return c?c.map(e=>e.text).join(""):""}class y{constructor(e){this._worker=e}_textSpanToRange(e,t){let o=e.getPositionAt(t.start),i=e.getPositionAt(t.start+t.length),{lineNumber:l,column:p}=o,{lineNumber:n,column:r}=i;return{startLineNumber:l,startColumn:p,endLineNumber:n,endColumn:r}}}class H{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e&&e.path.indexOf("/lib.")===0?!!s[e.path.slice(1)]:!1}getOrCreateModel(e){const t=F.parse(e),o=w.getModel(t);if(o)return o;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return w.createModel(this._libFiles[t.path.slice(1)],"typescript",t);const i=K.getExtraLibs()[e];return i?w.createModel(i.content,"typescript",t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e})),this._fetchLibFilesPromise}}class W extends y{constructor(e,t,o,i){super(i),this._libFiles=e,this._defaults=t,this._selector=o,this._disposables=[],this._listener=Object.create(null);const l=r=>{if(r.getLanguageId()!==o)return;const u=()=>{const{onlyVisible:h}=this._defaults.getDiagnosticsOptions();h?r.isAttachedToEditor()&&this._doValidate(r):this._doValidate(r)};let d;const g=r.onDidChangeContent(()=>{clearTimeout(d),d=window.setTimeout(u,500)}),b=r.onDidChangeAttached(()=>{const{onlyVisible:h}=this._defaults.getDiagnosticsOptions();h&&(r.isAttachedToEditor()?u():w.setModelMarkers(r,this._selector,[]))});this._listener[r.uri.toString()]={dispose(){g.dispose(),b.dispose(),clearTimeout(d)}},u()},p=r=>{w.setModelMarkers(r,this._selector,[]);const u=r.uri.toString();this._listener[u]&&(this._listener[u].dispose(),delete this._listener[u])};this._disposables.push(w.onDidCreateModel(r=>l(r))),this._disposables.push(w.onWillDisposeModel(p)),this._disposables.push(w.onDidChangeModelLanguage(r=>{p(r.model),l(r.model)})),this._disposables.push({dispose(){for(const r of w.getModels())p(r)}});const n=()=>{for(const r of w.getModels())p(r),l(r)};this._disposables.push(this._defaults.onDidChange(n)),this._disposables.push(this._defaults.onDidExtraLibsChange(n)),w.getModels().forEach(r=>l(r))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){const t=await this._worker(e.uri);if(e.isDisposed())return;const o=[],{noSyntaxValidation:i,noSemanticValidation:l,noSuggestionDiagnostics:p}=this._defaults.getDiagnosticsOptions();i||o.push(t.getSyntacticDiagnostics(e.uri.toString())),l||o.push(t.getSemanticDiagnostics(e.uri.toString())),p||o.push(t.getSuggestionDiagnostics(e.uri.toString()));const n=await Promise.all(o);if(!n||e.isDisposed())return;const r=n.reduce((d,g)=>g.concat(d),[]).filter(d=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(d.code)===-1),u=r.map(d=>d.relatedInformation||[]).reduce((d,g)=>g.concat(d),[]).map(d=>d.file?F.parse(d.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(u),!e.isDisposed()&&w.setModelMarkers(e,this._selector,r.map(d=>this._convertDiagnostics(e,d)))}_convertDiagnostics(e,t){const o=t.start||0,i=t.length||1,{lineNumber:l,column:p}=e.getPositionAt(o),{lineNumber:n,column:r}=e.getPositionAt(o+i),u=[];return t.reportsUnnecessary&&u.push(P.Unnecessary),t.reportsDeprecated&&u.push(P.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:l,startColumn:p,endLineNumber:n,endColumn:r,message:A(t.messageText,`
|
|
2
2
|
`),code:t.code.toString(),tags:u,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];const o=[];return t.forEach(i=>{let l=e;if(i.file&&(l=this._libFiles.getOrCreateModel(i.file.fileName)),!l)return;const p=i.start||0,n=i.length||1,{lineNumber:r,column:u}=l.getPositionAt(p),{lineNumber:d,column:g}=l.getPositionAt(p+n);o.push({resource:l.uri,startLineNumber:r,startColumn:u,endLineNumber:d,endColumn:g,message:A(i.messageText,`
|
|
3
3
|
`)})}),o}_tsDiagnosticCategoryToMarkerSeverity(e){switch(e){case 1:return v.Error;case 3:return v.Info;case 0:return v.Warning;case 2:return v.Hint}return v.Info}}class C extends y{get triggerCharacters(){return["."]}async provideCompletionItems(e,t,o,i){const l=e.getWordUntilPosition(t),p=new O(t.lineNumber,l.startColumn,t.lineNumber,l.endColumn),n=e.uri,r=e.getOffsetAt(t),u=await this._worker(n);if(e.isDisposed())return;const d=await u.getCompletionsAtPosition(n.toString(),r);return!d||e.isDisposed()?void 0:{suggestions:d.entries.map(b=>{let h=p;if(b.replacementSpan){const x=e.getPositionAt(b.replacementSpan.start),D=e.getPositionAt(b.replacementSpan.start+b.replacementSpan.length);h=new O(x.lineNumber,x.column,D.lineNumber,D.column)}const k=[];return b.kindModifiers!==void 0&&b.kindModifiers.indexOf("deprecated")!==-1&&k.push(f.CompletionItemTag.Deprecated),{uri:n,position:t,offset:r,range:h,label:b.name,insertText:b.name,sortText:b.sortText,kind:C.convertKind(b.kind),tags:k}})}}async resolveCompletionItem(e,t){const o=e,i=o.uri,l=o.position,p=o.offset,r=await(await this._worker(i)).getCompletionEntryDetails(i.toString(),p,o.label);return r?{uri:i,position:l,label:r.name,kind:C.convertKind(r.kind),detail:_(r.displayParts),documentation:{value:C.createDocumentationString(r)}}:o}static convertKind(e){switch(e){case a.primitiveType:case a.keyword:return f.CompletionItemKind.Keyword;case a.variable:case a.localVariable:return f.CompletionItemKind.Variable;case a.memberVariable:case a.memberGetAccessor:case a.memberSetAccessor:return f.CompletionItemKind.Field;case a.function:case a.memberFunction:case a.constructSignature:case a.callSignature:case a.indexSignature:return f.CompletionItemKind.Function;case a.enum:return f.CompletionItemKind.Enum;case a.module:return f.CompletionItemKind.Module;case a.class:return f.CompletionItemKind.Class;case a.interface:return f.CompletionItemKind.Interface;case a.warning:return f.CompletionItemKind.File}return f.CompletionItemKind.Property}static createDocumentationString(e){let t=_(e.documentation);if(e.tags)for(const o of e.tags)t+=`
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./__federation_expose_App.
|
|
1
|
+
import{l as e}from"./__federation_expose_App.rWoLmFNr.js";const n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:e.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:e.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:e.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:e.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},o={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<","</",">>",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/#?[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[A-Z][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}};export{n as conf,o as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./__federation_expose_App.
|
|
1
|
+
import{l as e}from"./__federation_expose_App.rWoLmFNr.js";const n={comments:{blockComment:["<!--","-->"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:e.IndentAction.Indent}}]},o={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/<!--/,{token:"comment",next:"@comment"}]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,{token:"comment",next:"@pop"}],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]]}};export{n as conf,o as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./__federation_expose_App.
|
|
1
|
+
import{l as e}from"./__federation_expose_App.rWoLmFNr.js";const t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},o={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}};export{t as conf,o as language};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/index.html
CHANGED
|
@@ -5,18 +5,19 @@
|
|
|
5
5
|
<link rel="icon" type="image/png" href="/rainbow-robotics-favicon.png" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>Rainbow Robotics System</title>
|
|
8
|
-
|
|
9
|
-
<
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/index.
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assets/index.
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/__federation_expose_App.
|
|
8
|
+
<script type="importmap">{"imports":{"react":"/plugin-shared/react.js","react/jsx-runtime":"/plugin-shared/react_jsx-runtime.js","react/jsx-dev-runtime":"/plugin-shared/react_jsx-dev-runtime.js","react-dom":"/plugin-shared/react-dom.js","react-dom/client":"/plugin-shared/react-dom_client.js","@rainbow-robotics/plugin-ui/react":"/plugin-shared/plugin-ui_react.js","@rainbow-robotics/plugin-ui/sdk":"/plugin-shared/plugin-ui_sdk.js","@rainbow-robotics/plugin-ui/host-ui":"/plugin-shared/plugin-ui_host-ui.js","@rainbow-robotics/plugin-ui/ws":"/plugin-shared/plugin-ui_ws.js"}}</script>
|
|
9
|
+
<script type="module" crossorigin src="/assets/index.Cn3FZx5U.js"></script>
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/__federation_fn_import.DdkEuT6t.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/index.P6snMalu.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime.CBqCNPYB.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/emotion-styled-base.browser.esm.BIcjgOzg.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/RBQrBarCodeGuideModal.CegVepfq.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/index.B3zY1kf7.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assets/index.DhDDHapK.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/__federation_expose_App.rWoLmFNr.js">
|
|
18
18
|
|
|
19
19
|
|
|
20
|
+
|
|
20
21
|
<script>
|
|
21
22
|
window.__RB_PLUGIN_PREVIEW_HOST__ = true;
|
|
22
23
|
window.__RB_ASSETS_BASE_URL__ = window.location.origin;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const m = (globalThis.__RB_SHARED__||{})["@rainbow-robotics/plugin-ui/host-ui"];
|
|
2
|
+
if (!m) throw new Error("[plugin-ui] host shared module not registered: @rainbow-robotics/plugin-ui/host-ui");
|
|
3
|
+
export const { alert, confirm, getHostServices, prompt, setHostServices, toast } = m;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const m = (globalThis.__RB_SHARED__||{})["@rainbow-robotics/plugin-ui/react"];
|
|
2
|
+
if (!m) throw new Error("[plugin-ui] host shared module not registered: @rainbow-robotics/plugin-ui/react");
|
|
3
|
+
export const { RBLabelButton, RBIconButton, RBCheckLabelButton, RBCheckIconButton, RBInlineLabelButton, RBAccordion, RBAccordionGroup, RBDivider, RBBattery, RBTextInput, RBTextArea, RBDateInput, RBRangeDateInput, RBAlert, RBConfirm, RBPrompt, RBDim, RBModal, RBSelectBox, RBSelectOption, Option, RBSelectDropBox, RBNoData, RBPagination, RBSideNumberInput, RBRadioBox, RBRadioButton, RBCheckBox, RBTab, RBTabItem, RBChipTab, RBChipItem, RBChipsBoxTab, RBChipsBoxItem, RBTable, RBTableRow, RBTdColumn, RBTdExpend, RBBadge, RBEmptyView, RBTextLabel, RBTextHelperText, RBTextField, RBMultiRangeInput, RBJoyStick, RBTooltip, RBSwitchField, RBCard, RBCardHeader, RBCardHeaderText, RBCardTitle, RBCardDescription, RBCardContent, RBCardFooter, RBCardAction, RBCardPreviewSlot, RBCommand, RBCommandDialog, RBCommandInput, RBCommandList, RBCommandEmpty, RBCommandGroup, RBCommandItem, RBCommandSelected, RBCommandSeparator, RBCommandShortcut, RBDialog, RBDialogTrigger, RBDialogClose, RBDialogPortal, RBDialogOverlay, RBDialogContent, RBDialogHeader, RBDialogFooter, RBDialogTitle, RBDialogDescription, RBDrawer, RBDrawerTrigger, RBDrawerClose, RBDrawerPortal, RBDrawerOverlay, RBDrawerContent, RBDrawerHeader, RBDrawerBody, RBDrawerFooter, RBDrawerTitle, RBDrawerDescription, RBSheet, RBSheetTrigger, RBSheetClose, RBSheetPortal, RBSheetOverlay, RBSheetContent, RBSheetHeader, RBSheetFooter, RBSheetTitle, RBSheetDescription, RBPopover, RBPopoverTrigger, RBPopoverContent, RBPopoverAnchor, RBPopoverPlacements, RBDropdownMenu, RBDropdownMenuTrigger, RBDropdownMenuContent, RBDropdownMenuItem, RBDropdownMenuCheckboxItem, RBDropdownMenuRadioItem, RBDropdownMenuLabel, RBDropdownMenuSeparator, RBDropdownMenuShortcut, RBDropdownMenuGroup, RBDropdownMenuPortal, RBDropdownMenuSub, RBDropdownMenuSubContent, RBDropdownMenuSubTrigger, RBDropdownMenuRadioGroup, RBMenubar, RBMenubarMenu, RBMenubarGroup, RBMenubarPortal, RBMenubarTrigger, RBMenubarContent, RBMenubarItem, RBMenubarCheckboxItem, RBMenubarRadioGroup, RBMenubarRadioItem, RBMenubarLabel, RBMenubarSeparator, RBMenubarShortcut, RBMenubarSub, RBMenubarSubTrigger, RBMenubarSubContent, RBSlider, RBSwitch, RBToggle, RBToggleGroup, RBToggleGroupItem, RBTabs, RBTabsList, RBTabsTrigger, RBTabsContent, RBResizable, RBResizablePanelGroup, RBResizablePanel, RBResizableHandle, RBCalendar, RBDatePickerPreset, RBDatePickerFooterTime, RBDatePickerFooterButton, labelButtonVariants, iconButtonVariants, checkLabelButtonVariants, checkIconButtonVariants, inlineLabelButtonVariants, dividerVariants, batteryFillVariants, textInputVariants, textAreaVariants, selectTriggerVariants, sideNumberInputVariants, accordionVariants, radioRootVariants, checkBoxRootVariants, tabRootVariants, chipRootVariants, badgeRootVariants, emptyViewRootVariants, cardRootVariants, RBIcons, RBLight, RBSpinner, RBSimpleToast, RBQrBarCodeGuideModal, lightColors, lightSizes, useRb, useRbFormData, useRbSave } = m;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const m = (globalThis.__RB_SHARED__||{})["react-dom"];
|
|
2
|
+
if (!m) throw new Error("[plugin-ui] host shared module not registered: react-dom");
|
|
3
|
+
export const { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, createPortal, createRoot, findDOMNode, flushSync, hydrate, hydrateRoot, render, unmountComponentAtNode, unstable_batchedUpdates, unstable_renderSubtreeIntoContainer, version } = m;
|
|
4
|
+
export default (m.default ?? m);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const m = (globalThis.__RB_SHARED__||{})["react"];
|
|
2
|
+
if (!m) throw new Error("[plugin-ui] host shared module not registered: react");
|
|
3
|
+
export const { Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, cloneElement, createContext, createElement, createRef, forwardRef, isValidElement, lazy, memo, startTransition, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore, useTransition, version } = m;
|
|
4
|
+
export default (m.default ?? m);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rainbow-robotics/preview-host",
|
|
3
|
-
"version": "0.1.2-dev.
|
|
3
|
+
"version": "0.1.2-dev.50",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=20"
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"README.md"
|
|
24
24
|
],
|
|
25
25
|
"scripts": {
|
|
26
|
-
"build": "node build.mjs",
|
|
26
|
+
"build-preview-host": "node build.mjs",
|
|
27
27
|
"prepack": "node build.mjs"
|
|
28
28
|
},
|
|
29
|
-
"
|
|
29
|
+
"devDependencies": {
|
|
30
30
|
"@rainbow-robotics/plugin-ui": "*"
|
|
31
31
|
}
|
|
32
|
-
}
|
|
32
|
+
}
|
package/serve.mjs
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// Serves the standalone preview-host bundle: the mini-Muscat shell (dist/) plus
|
|
3
|
-
// the developer's built plugin mounted at /plugin-dev/. No robot/back end.
|
|
4
|
-
//
|
|
5
2
|
// Usage:
|
|
6
|
-
// rb-preview-host --plugin <
|
|
7
|
-
//
|
|
8
|
-
// The plugin dir must contain manifest.json, sandbox.html, content.js and any
|
|
9
|
-
// assets/ — i.e. the output of `muscat-pk build`.
|
|
3
|
+
// rb-preview-host --plugin <staged-dir> [--port 4180] [--dist <dir>]
|
|
10
4
|
import { createServer } from "node:http";
|
|
11
|
-
import { createReadStream, existsSync, readFileSync, statSync } from "node:fs";
|
|
12
|
-
import { createRequire } from "node:module";
|
|
5
|
+
import { createReadStream, existsSync, readFileSync, statSync, watch } from "node:fs";
|
|
13
6
|
import { dirname, extname, join, resolve } from "node:path";
|
|
14
7
|
import { fileURLToPath } from "node:url";
|
|
15
8
|
|
|
@@ -20,25 +13,16 @@ function arg(name, fallback) {
|
|
|
20
13
|
return i !== -1 && process.argv[i + 1] ? process.argv[i + 1] : fallback;
|
|
21
14
|
}
|
|
22
15
|
|
|
23
|
-
function resolvePluginUiDistBrowser() {
|
|
24
|
-
try {
|
|
25
|
-
const req = createRequire(import.meta.url);
|
|
26
|
-
const pkgPath = req.resolve("@rainbow-robotics/plugin-ui/package.json");
|
|
27
|
-
return resolve(dirname(pkgPath), "dist-browser");
|
|
28
|
-
} catch {
|
|
29
|
-
// fallback for unusual install layouts
|
|
30
|
-
return resolve(here, "../plugin-ui/dist-browser");
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
16
|
const port = Number(arg("port", "4180"));
|
|
35
17
|
const distDir = resolve(arg("dist", join(here, "dist")));
|
|
36
|
-
const runtimeDir = resolve(arg("runtime", resolvePluginUiDistBrowser()));
|
|
37
18
|
const pluginDir = arg("plugin", "")
|
|
38
19
|
? resolve(arg("plugin", ""))
|
|
39
20
|
: "";
|
|
21
|
+
const socketUrl = arg("socket-url", "");
|
|
22
|
+
const robotHost = arg("robot-host", "");
|
|
23
|
+
const devServerUrl = arg("dev-server-url", "");
|
|
40
24
|
const PLUGIN_BASE = "/plugin-dev";
|
|
41
|
-
const
|
|
25
|
+
const RELOAD_PATH = "/__preview_reload";
|
|
42
26
|
|
|
43
27
|
const CONTENT_TYPE = {
|
|
44
28
|
".html": "text/html; charset=utf-8",
|
|
@@ -66,40 +50,112 @@ if (!existsSync(distDir)) {
|
|
|
66
50
|
process.exit(1);
|
|
67
51
|
}
|
|
68
52
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
53
|
+
|
|
54
|
+
let previewPluginId = "";
|
|
55
|
+
if (pluginDir) {
|
|
56
|
+
try {
|
|
57
|
+
previewPluginId =
|
|
58
|
+
JSON.parse(readFileSync(resolve(pluginDir, "manifest.json"), "utf8")).id || "";
|
|
59
|
+
} catch {
|
|
60
|
+
/* manifest missing/unreadable — no preview id */
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const injectedLines = [
|
|
65
|
+
" <script>",
|
|
66
|
+
" window.__RB_PLUGIN_PREVIEW_HOST__ = true;",
|
|
67
|
+
" window.__RB_ASSETS_BASE_URL__ = window.location.origin;",
|
|
68
|
+
` window.__RB_PLUGIN_PREVIEW_BASE__ = ${JSON.stringify(PLUGIN_BASE)};`,
|
|
69
|
+
];
|
|
70
|
+
if (previewPluginId) {
|
|
71
|
+
injectedLines.push(` window.__RB_PREVIEW_PLUGIN_ID__ = ${JSON.stringify(previewPluginId)};`);
|
|
72
|
+
}
|
|
73
|
+
if (devServerUrl) {
|
|
74
|
+
injectedLines.push(` window.__RB_PLUGIN_DEV_SERVER_URL__ = ${JSON.stringify(devServerUrl)};`);
|
|
75
|
+
}
|
|
76
|
+
if (socketUrl) {
|
|
77
|
+
injectedLines.push(` window.__RB_PLUGIN_PREVIEW_SOCKET_URL__ = ${JSON.stringify(socketUrl)};`);
|
|
78
|
+
}
|
|
79
|
+
if (robotHost) {
|
|
80
|
+
|
|
81
|
+
injectedLines.push(` window.__RB_ROBOT_HOST__ = ${JSON.stringify(robotHost)};`);
|
|
82
|
+
}
|
|
83
|
+
injectedLines.push(" </script>");
|
|
84
|
+
|
|
85
|
+
if (pluginDir) {
|
|
86
|
+
injectedLines.push(
|
|
73
87
|
" <script>",
|
|
74
|
-
|
|
75
|
-
" window.__RB_ASSETS_BASE_URL__ = window.location.origin;",
|
|
76
|
-
` window.__RB_PLUGIN_PREVIEW_BASE__ = ${JSON.stringify(PLUGIN_BASE)};`,
|
|
88
|
+
` new EventSource(${JSON.stringify(RELOAD_PATH)}).onmessage = () => location.reload();`,
|
|
77
89
|
" </script>",
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
);
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
injectedLines.push(" </head>");
|
|
81
93
|
|
|
82
|
-
function
|
|
94
|
+
function renderIndexHtml() {
|
|
95
|
+
return readFileSync(join(distDir, "index.html"), "utf8").replace(
|
|
96
|
+
"</head>",
|
|
97
|
+
injectedLines.join("\n"),
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function sendFile(res, filePath, { noStore = false } = {}) {
|
|
83
102
|
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
103
|
+
if (noStore) res.setHeader("Cache-Control", "no-store");
|
|
84
104
|
const type = CONTENT_TYPE[extname(filePath)];
|
|
85
105
|
if (type) res.setHeader("Content-Type", type);
|
|
86
106
|
createReadStream(filePath).pipe(res);
|
|
87
107
|
}
|
|
88
108
|
|
|
89
|
-
function tryServe(res, baseDir, relPath) {
|
|
109
|
+
function tryServe(res, baseDir, relPath, opts) {
|
|
90
110
|
const filePath = resolve(baseDir, `.${relPath}`);
|
|
91
111
|
if (!filePath.startsWith(baseDir)) return false;
|
|
92
112
|
if (existsSync(filePath) && statSync(filePath).isFile()) {
|
|
93
|
-
sendFile(res, filePath);
|
|
113
|
+
sendFile(res, filePath, opts);
|
|
94
114
|
return true;
|
|
95
115
|
}
|
|
96
116
|
return false;
|
|
97
117
|
}
|
|
98
118
|
|
|
119
|
+
|
|
120
|
+
const reloadClients = new Set();
|
|
121
|
+
if (pluginDir && existsSync(pluginDir)) {
|
|
122
|
+
let timer = null;
|
|
123
|
+
const notify = () => {
|
|
124
|
+
clearTimeout(timer);
|
|
125
|
+
timer = setTimeout(() => {
|
|
126
|
+
for (const c of reloadClients) c.write("data: reload\n\n");
|
|
127
|
+
}, 100);
|
|
128
|
+
};
|
|
129
|
+
try {
|
|
130
|
+
// Recursive: macOS/Windows always, Linux on Node 20.13+.
|
|
131
|
+
watch(pluginDir, { recursive: true }, notify);
|
|
132
|
+
} catch {
|
|
133
|
+
|
|
134
|
+
watch(pluginDir, notify);
|
|
135
|
+
console.warn(
|
|
136
|
+
"[preview-host] recursive watch unavailable — live reload limited to plugin root (upgrade to Node 20.13+ for full watch).",
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
99
141
|
const server = createServer((req, res) => {
|
|
100
142
|
const url = (req.url || "/").split("?")[0];
|
|
101
143
|
|
|
102
|
-
|
|
144
|
+
|
|
145
|
+
if (url === RELOAD_PATH) {
|
|
146
|
+
res.writeHead(200, {
|
|
147
|
+
"Content-Type": "text/event-stream",
|
|
148
|
+
"Cache-Control": "no-cache",
|
|
149
|
+
Connection: "keep-alive",
|
|
150
|
+
"Access-Control-Allow-Origin": "*",
|
|
151
|
+
});
|
|
152
|
+
res.write("retry: 1000\n\n");
|
|
153
|
+
reloadClients.add(res);
|
|
154
|
+
req.on("close", () => reloadClients.delete(res));
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
|
|
103
159
|
if (url.startsWith(PLUGIN_BASE)) {
|
|
104
160
|
if (!pluginDir) {
|
|
105
161
|
res.statusCode = 404;
|
|
@@ -107,33 +163,24 @@ const server = createServer((req, res) => {
|
|
|
107
163
|
return;
|
|
108
164
|
}
|
|
109
165
|
const rel = url.slice(PLUGIN_BASE.length) || "/";
|
|
110
|
-
|
|
166
|
+
// no-store so the browser always re-fetches the freshly staged manifest/assets.
|
|
167
|
+
if (tryServe(res, pluginDir, rel, { noStore: true })) return;
|
|
111
168
|
res.statusCode = 404;
|
|
112
169
|
res.end("plugin asset not found");
|
|
113
170
|
return;
|
|
114
171
|
}
|
|
115
172
|
|
|
116
|
-
// Host-provided plugin runtime (@rainbow-robotics/plugin-ui, React).
|
|
117
|
-
if (url.startsWith(RUNTIME_BASE)) {
|
|
118
|
-
const rel = url.slice(RUNTIME_BASE.length) || "/";
|
|
119
|
-
if (tryServe(res, runtimeDir, rel)) return;
|
|
120
|
-
res.statusCode = 404;
|
|
121
|
-
res.end("plugin runtime asset not found");
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
173
|
// Static bundle + rb assets
|
|
126
174
|
if (url !== "/" && tryServe(res, distDir, url)) return;
|
|
127
175
|
|
|
128
176
|
// SPA fallback → injected index.html
|
|
129
177
|
res.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
130
|
-
res.end(
|
|
178
|
+
res.end(renderIndexHtml());
|
|
131
179
|
});
|
|
132
180
|
|
|
133
181
|
server.listen(port, () => {
|
|
134
182
|
console.log(`[preview-host] mini-Muscat → http://localhost:${port}`);
|
|
135
183
|
console.log(`[preview-host] dist: ${distDir}`);
|
|
136
|
-
console.log(`[preview-host] runtime: ${runtimeDir} → ${RUNTIME_BASE}`);
|
|
137
184
|
console.log(
|
|
138
185
|
`[preview-host] plugin: ${pluginDir || "(none — pass --plugin <dir>)"} → ${PLUGIN_BASE}`,
|
|
139
186
|
);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ay as u,ao as s,I as a,cw as v,aq as p,K as d,av as i,dy as N,dz as C}from"./FactoryMap.CBpf9N92.js";import{a as S,R as k,b as T}from"./index.ayADrA9_.js";import{importShared as D}from"./__federation_fn_import.Drmbxo5T.js";const{useQuery:I}=await D("@tanstack/react-query"),f=[{key:"dock",endpoint:"/{robot_model}/capability/dock",labelKey:"move.amr.rightPanel.capability.dock"},{key:"io",endpoint:"/{robot_model}/capability/Io",labelKey:"move.amr.rightPanel.capability.io"},{key:"camera",endpoint:"/{robot_model}/capability/camera",labelKey:"move.amr.rightPanel.capability.camera"},{key:"lidar2d",endpoint:"/{robot_model}/capability/lidar2d",labelKey:"move.amr.rightPanel.capability.lidar2d"},{key:"lidar3d",endpoint:"/{robot_model}/capability/lidar3d",labelKey:"move.amr.rightPanel.capability.lidar3d"},{key:"imu",endpoint:"/{robot_model}/capability/imu",labelKey:"move.amr.rightPanel.capability.imu"},{key:"safetyBumper",endpoint:"/{robot_model}/capability/safetyBumper",labelKey:"move.amr.rightPanel.capability.safetyBumper"},{key:"safetyInterlock",endpoint:"/{robot_model}/capability/safetyInterlock",labelKey:"move.amr.rightPanel.capability.safetyInterlock"},{key:"safetyObstacle",endpoint:"/{robot_model}/capability/safetyObstacle",labelKey:"move.amr.rightPanel.capability.safetyObstacle"},{key:"safetyOperationStop",endpoint:"/{robot_model}/capability/safetyOperationStop",labelKey:"move.amr.rightPanel.capability.safetyOperationStop"},{key:"safetySpeedControl",endpoint:"/{robot_model}/capability/safetySpeedControl",labelKey:"move.amr.rightPanel.capability.safetySpeedControl"},{key:"tabos",endpoint:"/{robot_model}/capability/tabos",labelKey:"move.amr.rightPanel.capability.tabos"}],A=e=>typeof e=="object"&&e!==null&&"enabled"in e&&e.enabled===!1,O=e=>{if(e instanceof Error)return e.message;if(typeof e=="object"&&e!==null&&"message"in e){const t=e.message;if(typeof t=="string")return t}},E=async({robot_model:e})=>{const t=await Promise.allSettled(f.map(l=>{const n=l.endpoint.replace("{robot_model}",e);return S.get(n)}));return f.map((l,n)=>{const r=t[n];return r.status==="fulfilled"?{...l,supported:!A(r.value),data:r.value}:{...l,supported:!1,data:null,errorMessage:O(r.reason)}})},P=({robot_model:e,enabled:t=!0})=>I({queryKey:["amrCapabilities",e],queryFn:()=>E({robot_model:e}),enabled:!!e&&t,staleTime:5*1e3,gcTime:60*1e3}),F={0:"NONE",1:"CHARGING",2:"COMPLETE",3:"FAIL",4:"CANCEL"},B={0:"DEFAULT",1:"TABOS"},w={0:"CABLE",1:"CONTACT",2:"INDUCTIVE"},_={0:"RPLIDAR",1:"SICK",2:"LAKI",3:"LIVOX",4:"HOKUYO"},L={0:"ORBBEC"},o=({label:e,children:t})=>s(p,{className:"items-center justify-between gap-3",children:[a("span",{className:"typo-compact-xs-normal text-fg-subtle shrink-0",children:e}),a("span",{className:d("typo-compact-xs-normal text-right",t!=null?"text-fg-default":"text-fg-subtler"),children:t??"—"})]}),K={default:"gray",success:"green",warning:"orange",danger:"red"},c=({label:e,variant:t="default"})=>a(T,{type:"soft",color:K[t],children:e}),y=({label:e,value:t})=>a(o,{label:e,children:a(c,{label:t?"ON":"OFF",variant:t?"success":"default"})}),m=({label:e,bits:t})=>s(i,{className:"gap-1",children:[a("span",{className:"typo-compact-xs-normal text-fg-subtle",children:e}),t?.length?a(p,{className:"gap-1",children:t.map((l,n)=>a("div",{className:d("size-4 rounded-sm border text-center leading-4",l?"border-fg-success bg-fill-success-subtlest":"border-border-subtler bg-fill-disabled"),children:a("span",{className:d("typo-compact-2xs-normal",l?"text-fg-success":"text-fg-subtler"),children:n})},n))}):a("span",{className:"typo-compact-xs-normal text-fg-subtler",children:"—"})]}),g=({label:e,connection:t,rows:l})=>s(i,{className:"bg-fill-disabled gap-1.5 rounded-md p-2.5",children:[a("span",{className:"typo-compact-xs-semibold text-fg-default",children:e}),s(p,{className:"items-center justify-between gap-3",children:[a("span",{className:"typo-compact-xs-normal text-fg-subtle shrink-0",children:"Connection"}),s(p,{className:"items-center gap-1",children:[a(C,{color:t?"green":"gray"}),a("span",{className:"typo-compact-2xs-normal text-fg-subtle",children:t?"Connected":"Disconnected"})]})]}),l.map(({key:n,value:r})=>a(o,{label:n,children:r},n))]}),x=({flags:e})=>a(p,{className:"flex-wrap gap-1.5",children:e.map(({label:t,value:l})=>a(c,{label:t,variant:l?"success":"default"},t))}),R=({data:e})=>{const t=F[e.chargeState??-1]??String(e.chargeState),l=e.chargeState===1?"success":e.chargeState===3?"danger":e.chargeState===4?"warning":"default";return s(i,{className:"gap-2",children:[s(i,{className:"bg-fill-disabled gap-2 rounded-md p-2.5",children:[a(y,{label:"Dock State",value:e.dockState}),a(o,{label:"Charge State",children:a(c,{label:t,variant:l})}),s(o,{label:"Battery",children:[e.batteryPercent?.toFixed(1)," %"]}),s(o,{label:"Charge Current",children:[e.chargeCurrent?.toFixed(2)," A"]}),s(o,{label:"Contact Voltage",children:[e.contactVoltage?.toFixed(2)," V"]}),a(o,{label:"Battery Type",children:a(c,{label:B[e.batteryType??0]??"—"})})]}),s(p,{className:"items-center gap-1.5 px-0.5",children:[a("span",{className:"typo-compact-xs-normal text-fg-subtle shrink-0",children:"Charge Type"}),e.chargeType?.length?a(p,{className:"flex-wrap gap-1.5",children:e.chargeType.map(n=>a(c,{label:w[n]??String(n),variant:"default"},n))}):a("span",{className:"typo-compact-xs-normal text-fg-subtler",children:"—"})]})]})},M=({data:e})=>s(i,{className:"gap-3 p-0.5",children:[a(m,{label:"MCU0 DIO",bits:e.mcu0Dio}),a(m,{label:"MCU1 DIO",bits:e.mcu1Dio}),a(m,{label:"MCU0 DIN",bits:e.mcu0Din}),a(m,{label:"MCU1 DIN",bits:e.mcu1Din})]}),V=({data:e})=>s(i,{className:"gap-2",children:[a(x,{flags:[{label:"Enabled",value:e.enabled},{label:"Obstacle",value:e.enabledObs},{label:"Depth",value:e.enabledDepth},{label:"Filter",value:e.enabledFilter}]}),e.info?.length?e.info.map((t,l)=>{const n=typeof t.type=="number"?L[t.type]??String(t.type):t.type??"—",r=t.camId??t.index??l;return a(g,{label:`Camera ${r}${t.serial?` · ${t.serial}`:""}`,connection:t.connection,rows:[{key:"Type",value:a(c,{label:n})},{key:"TF",value:t.tf?.length?t.tf.map(b=>b.toFixed(2)).join(", "):void 0}]},l)}):a("span",{className:"typo-compact-xs-normal text-fg-subtler px-0.5",children:"—"})]}),h=({data:e,is3d:t=!1})=>s(i,{className:"gap-2",children:[a(x,{flags:[{label:"Enabled",value:e.enabled},{label:"Obstacle",value:e.enabledObs}]}),e.info?.length?e.info.map((l,n)=>a(g,{label:`Lidar ${l.index??n}${l.serial?` · ${l.serial}`:""}`,connection:l.connection,rows:[{key:"Type",value:a(c,{label:_[l.type]??String(l.type??"—")})},...t?[]:[{key:"IP",value:l.ip}],{key:"Safety",value:l.safety!==void 0?a(c,{label:l.safety?"Safety":"Normal",variant:l.safety?"warning":"default"}):void 0},{key:"TF",value:l.tf?.length?l.tf.map(r=>r.toFixed(2)).join(", "):void 0}]},n)):a("span",{className:"typo-compact-xs-normal text-fg-subtler px-0.5",children:"—"})]}),U=({data:e})=>a(i,{className:"gap-2",children:e.info?.length?e.info.map((t,l)=>a(g,{label:`IMU ${t.index??l}${t.serial?` · ${t.serial}`:""}`,connection:t.connection,rows:[{key:"Type",value:a(c,{label:t.type===1?"IMU":"DEFAULT"})}]},l)):a("span",{className:"typo-compact-xs-normal text-fg-subtler px-0.5",children:"—"})}),j=({data:e})=>{const t=[{label:"Bumper State",value:e.bumperState},{label:"Interlock State",value:e.interlockState},{label:"Obstacle Detect",value:e.obsDetect},{label:"Operation Stop",value:e.operationStopState},{label:"Speed Control",value:e.speedControlState}].filter(l=>l.value!==void 0);return s(i,{className:"bg-fill-disabled gap-2 rounded-md p-2.5",children:[a(y,{label:"Enabled",value:e.enabled}),t.map(l=>a(y,{label:l.label,value:l.value},l.label))]})},$=({data:e})=>s(i,{className:"bg-fill-disabled gap-2 rounded-md p-2.5",children:[s(o,{label:"Voltage",children:[e.tabosVoltage?.toFixed(2)," V"]}),s(o,{label:"Current",children:[e.tabosCurrent?.toFixed(2)," A"]}),s(o,{label:"SOC",children:[e.tabosSoc?.toFixed(1)," %"]}),s(o,{label:"SOH",children:[e.tabosSoh?.toFixed(1)," %"]}),s(o,{label:"Temp",children:[e.tabosTemp?.toFixed(1)," °C"]})]}),G=({capKey:e,data:t})=>{switch(e){case"dock":return a(R,{data:t});case"io":return a(M,{data:t});case"camera":return a(V,{data:t});case"lidar2d":return a(h,{data:t});case"lidar3d":return a(h,{data:t,is3d:!0});case"imu":return a(U,{data:t});case"tabos":return a($,{data:t});default:return a(j,{data:t})}},Y=({item:e})=>{const{t}=u();return e.supported?e.data?a("div",{className:"pb-1",children:a(G,{capKey:e.key,data:e.data})}):null:a("p",{className:"typo-compact-xs-normal text-fg-disabled px-1 py-2",children:t("move.amr.rightPanel.capability.status.notSupported")})},H=()=>{const{t:e}=u();return a(N,{className:"flex-1 [&_[data-slot='empty-view-section']]:h-full",type:"icon",icon:a(k,{size:20}),message:e("move.amr.rightPanel.capability.status.loading")})},X=({className:e,robotModel:t})=>{const{t:l}=u(),{data:n,isLoading:r}=P({robot_model:t});return s(i,{className:d("AmrCapabilityControl h-full min-h-0",e),children:[r&&a(H,{}),(n??[]).map(b=>a("div",{className:"border-subtler border-b px-1 py-1",children:a(v,{disabled:!b.supported,title:a(p,{className:"w-full items-center justify-between gap-2",children:a("span",{className:d("typo-compact-sm2-semibold min-w-0 truncate",b.supported?"text-fg-default":"text-fg-disabled"),children:l(b.labelKey)})}),children:a(Y,{item:b})})},b.key))]})};export{X as default};
|
|
Binary file
|