@preference-sl/pref-configurator-sdk 0.3.0-beta.13 → 0.3.0-beta.15
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/_framework/PrefConfigurator.Abstractions.5unh6plrz8.wasm +0 -0
- package/_framework/PrefConfigurator.Abstractions.5unh6plrz8.wasm.br +0 -0
- package/_framework/PrefConfigurator.Abstractions.5unh6plrz8.wasm.gz +0 -0
- package/_framework/PrefConfigurator.Application.lht256hpnv.wasm +0 -0
- package/_framework/PrefConfigurator.Application.lht256hpnv.wasm.br +0 -0
- package/_framework/PrefConfigurator.Application.lht256hpnv.wasm.gz +0 -0
- package/_framework/{PrefConfigurator.Domain.qnlxa690ve.wasm → PrefConfigurator.Domain.vjgzrzrzpr.wasm} +0 -0
- package/_framework/PrefConfigurator.Domain.vjgzrzrzpr.wasm.br +0 -0
- package/_framework/PrefConfigurator.Domain.vjgzrzrzpr.wasm.gz +0 -0
- package/_framework/{PrefConfigurator.Infrastructure.74fmmqjrqv.wasm → PrefConfigurator.Infrastructure.v493olv9a8.wasm} +0 -0
- package/_framework/PrefConfigurator.Infrastructure.v493olv9a8.wasm.br +0 -0
- package/_framework/{PrefConfigurator.Infrastructure.74fmmqjrqv.wasm.gz → PrefConfigurator.Infrastructure.v493olv9a8.wasm.gz} +0 -0
- package/_framework/PrefConfigurator.Wasm.jxhayl5imm.wasm +0 -0
- package/_framework/PrefConfigurator.Wasm.jxhayl5imm.wasm.br +0 -0
- package/_framework/PrefConfigurator.Wasm.jxhayl5imm.wasm.gz +0 -0
- package/_framework/{System.Private.CoreLib.trnhfjg7q2.wasm → System.Private.CoreLib.hpxnem4nhf.wasm} +0 -0
- package/_framework/System.Private.CoreLib.hpxnem4nhf.wasm.br +0 -0
- package/_framework/System.Private.CoreLib.hpxnem4nhf.wasm.gz +0 -0
- package/_framework/dotnet.js +15 -15
- package/_framework/dotnet.js.br +0 -0
- package/_framework/dotnet.js.gz +0 -0
- package/_framework/{dotnet.native.7q01pr7knk.wasm → dotnet.native.vjqclesxwz.wasm} +0 -0
- package/_framework/dotnet.native.vjqclesxwz.wasm.br +0 -0
- package/_framework/{dotnet.native.7q01pr7knk.wasm.gz → dotnet.native.vjqclesxwz.wasm.gz} +0 -0
- package/index.d.ts +0 -6
- package/index.js +2 -4
- package/js/_operation-result.js +37 -0
- package/js/prefconfigurator-api.d.ts +0 -51
- package/js/prefconfigurator-api.js +13 -45
- package/js/sdk-framework-assets.js +7 -7
- package/js/sdk-init.d.ts +30 -15
- package/js/sdk-init.js +1 -2
- package/package.json +22 -22
- package/_framework/PrefConfigurator.Abstractions.gh1jhmxm1o.wasm +0 -0
- package/_framework/PrefConfigurator.Abstractions.gh1jhmxm1o.wasm.br +0 -0
- package/_framework/PrefConfigurator.Abstractions.gh1jhmxm1o.wasm.gz +0 -0
- package/_framework/PrefConfigurator.Application.bz6sx5v9xc.wasm +0 -0
- package/_framework/PrefConfigurator.Application.bz6sx5v9xc.wasm.br +0 -0
- package/_framework/PrefConfigurator.Application.bz6sx5v9xc.wasm.gz +0 -0
- package/_framework/PrefConfigurator.Domain.qnlxa690ve.wasm.br +0 -0
- package/_framework/PrefConfigurator.Domain.qnlxa690ve.wasm.gz +0 -0
- package/_framework/PrefConfigurator.Infrastructure.74fmmqjrqv.wasm.br +0 -0
- package/_framework/PrefConfigurator.Wasm.5apqdynrai.wasm +0 -0
- package/_framework/PrefConfigurator.Wasm.5apqdynrai.wasm.br +0 -0
- package/_framework/PrefConfigurator.Wasm.5apqdynrai.wasm.gz +0 -0
- package/_framework/System.Private.CoreLib.trnhfjg7q2.wasm.br +0 -0
- package/_framework/System.Private.CoreLib.trnhfjg7q2.wasm.gz +0 -0
- package/_framework/dotnet.native.7q01pr7knk.wasm.br +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/_framework/{System.Private.CoreLib.trnhfjg7q2.wasm → System.Private.CoreLib.hpxnem4nhf.wasm}
RENAMED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/_framework/dotnet.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
var e=!1;const t=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),o=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,15,1,13,0,65,1,253,15,65,2,253,15,253,128,2,11])),n=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),r=Symbol.for("wasm promise_control");function i(e,t){let o=null;const n=new Promise((function(n,r){o={isDone:!1,promise:null,resolve:t=>{o.isDone||(o.isDone=!0,n(t),e&&e())},reject:e=>{o.isDone||(o.isDone=!0,r(e),t&&t())}}}));o.promise=n;const i=n;return i[r]=o,{promise:i,promise_control:o}}function s(e){return e[r]}function a(e){e&&function(e){return void 0!==e[r]}(e)||Be(!1,"Promise is not controllable")}const l="__mono_message__",c=["debug","log","trace","warn","info","error"],d="MONO_WASM: ";let u,f,m,g,p,h;function w(e){g=e}function b(e){if(Pe.diagnosticTracing){const t="function"==typeof e?e():e;console.debug(d+t)}}function y(e,...t){console.info(d+e,...t)}function v(e,...t){console.info(e,...t)}function E(e,...t){console.warn(d+e,...t)}function _(e,...t){if(t&&t.length>0&&t[0]&&"object"==typeof t[0]){if(t[0].silent)return;if(t[0].toString)return void console.error(d+e,t[0].toString())}console.error(d+e,...t)}function x(e,t,o){return function(...n){try{let r=n[0];if(void 0===r)r="undefined";else if(null===r)r="null";else if("function"==typeof r)r=r.toString();else if("string"!=typeof r)try{r=JSON.stringify(r)}catch(e){r=r.toString()}t(o?JSON.stringify({method:e,payload:r,arguments:n.slice(1)}):[e+r,...n.slice(1)])}catch(e){m.error(`proxyConsole failed: ${e}`)}}}function j(e,t,o){f=t,g=e,m={...t};const n=`${o}/console`.replace("https://","wss://").replace("http://","ws://");u=new WebSocket(n),u.addEventListener("error",A),u.addEventListener("close",S),function(){for(const e of c)f[e]=x(`console.${e}`,T,!0)}()}function R(e){let t=30;const o=()=>{u?0==u.bufferedAmount||0==t?(e&&v(e),function(){for(const e of c)f[e]=x(`console.${e}`,m.log,!1)}(),u.removeEventListener("error",A),u.removeEventListener("close",S),u.close(1e3,e),u=void 0):(t--,globalThis.setTimeout(o,100)):e&&m&&m.log(e)};o()}function T(e){u&&u.readyState===WebSocket.OPEN?u.send(e):m.log(e)}function A(e){m.error(`[${g}] proxy console websocket error: ${e}`,e)}function S(e){m.debug(`[${g}] proxy console websocket closed: ${e}`,e)}function D(){Pe.preferredIcuAsset=O(Pe.config);let e="invariant"==Pe.config.globalizationMode;if(!e)if(Pe.preferredIcuAsset)Pe.diagnosticTracing&&b("ICU data archive(s) available, disabling invariant mode");else{if("custom"===Pe.config.globalizationMode||"all"===Pe.config.globalizationMode||"sharded"===Pe.config.globalizationMode){const e="invariant globalization mode is inactive and no ICU data archives are available";throw _(`ERROR: ${e}`),new Error(e)}Pe.diagnosticTracing&&b("ICU data archive(s) not available, using invariant globalization mode"),e=!0,Pe.preferredIcuAsset=null}const t="DOTNET_SYSTEM_GLOBALIZATION_INVARIANT",o=Pe.config.environmentVariables;if(void 0===o[t]&&e&&(o[t]="1"),void 0===o.TZ)try{const e=Intl.DateTimeFormat().resolvedOptions().timeZone||null;e&&(o.TZ=e)}catch(e){y("failed to detect timezone, will fallback to UTC")}}function O(e){var t;if((null===(t=e.resources)||void 0===t?void 0:t.icu)&&"invariant"!=e.globalizationMode){const t=e.applicationCulture||(ke?globalThis.navigator&&globalThis.navigator.languages&&globalThis.navigator.languages[0]:Intl.DateTimeFormat().resolvedOptions().locale),o=e.resources.icu;let n=null;if("custom"===e.globalizationMode){if(o.length>=1)return o[0].name}else t&&"all"!==e.globalizationMode?"sharded"===e.globalizationMode&&(n=function(e){const t=e.split("-")[0];return"en"===t||["fr","fr-FR","it","it-IT","de","de-DE","es","es-ES"].includes(e)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(t)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(t)):n="icudt.dat";if(n)for(let e=0;e<o.length;e++){const t=o[e];if(t.virtualPath===n)return t.name}}return e.globalizationMode="invariant",null}(new Date).valueOf();const C=class{constructor(e){this.url=e}toString(){return this.url}};async function k(e,t){try{const o="function"==typeof globalThis.fetch;if(Se){const n=e.startsWith("file://");if(!n&&o)return globalThis.fetch(e,t||{credentials:"same-origin"});p||(h=Ne.require("url"),p=Ne.require("fs")),n&&(e=h.fileURLToPath(e));const r=await p.promises.readFile(e);return{ok:!0,headers:{length:0,get:()=>null},url:e,arrayBuffer:()=>r,json:()=>JSON.parse(r),text:()=>{throw new Error("NotImplementedException")}}}if(o)return globalThis.fetch(e,t||{credentials:"same-origin"});if("function"==typeof read)return{ok:!0,url:e,headers:{length:0,get:()=>null},arrayBuffer:()=>new Uint8Array(read(e,"binary")),json:()=>JSON.parse(read(e,"utf8")),text:()=>read(e,"utf8")}}catch(t){return{ok:!1,url:e,status:500,headers:{length:0,get:()=>null},statusText:"ERR28: "+t,arrayBuffer:()=>{throw t},json:()=>{throw t},text:()=>{throw t}}}throw new Error("No fetch implementation available")}function I(e){return"string"!=typeof e&&Be(!1,"url must be a string"),!M(e)&&0!==e.indexOf("./")&&0!==e.indexOf("../")&&globalThis.URL&&globalThis.document&&globalThis.document.baseURI&&(e=new URL(e,globalThis.document.baseURI).toString()),e}const U=/^[a-zA-Z][a-zA-Z\d+\-.]*?:\/\//,P=/[a-zA-Z]:[\\/]/;function M(e){return Se||Ie?e.startsWith("/")||e.startsWith("\\")||-1!==e.indexOf("///")||P.test(e):U.test(e)}let L,N=0;const $=[],z=[],W=new Map,F={"js-module-threads":!0,"js-module-runtime":!0,"js-module-dotnet":!0,"js-module-native":!0,"js-module-diagnostics":!0},B={...F,"js-module-library-initializer":!0},V={...F,dotnetwasm:!0,heap:!0,manifest:!0},q={...B,manifest:!0},H={...B,dotnetwasm:!0},J={dotnetwasm:!0,symbols:!0},Z={...B,dotnetwasm:!0,symbols:!0},Q={symbols:!0};function G(e){return!("icu"==e.behavior&&e.name!=Pe.preferredIcuAsset)}function K(e,t,o){null!=t||(t=[]),Be(1==t.length,`Expect to have one ${o} asset in resources`);const n=t[0];return n.behavior=o,X(n),e.push(n),n}function X(e){V[e.behavior]&&W.set(e.behavior,e)}function Y(e){Be(V[e],`Unknown single asset behavior ${e}`);const t=W.get(e);if(t&&!t.resolvedUrl)if(t.resolvedUrl=Pe.locateFile(t.name),F[t.behavior]){const e=ge(t);e?("string"!=typeof e&&Be(!1,"loadBootResource response for 'dotnetjs' type should be a URL string"),t.resolvedUrl=e):t.resolvedUrl=ce(t.resolvedUrl,t.behavior)}else if("dotnetwasm"!==t.behavior)throw new Error(`Unknown single asset behavior ${e}`);return t}function ee(e){const t=Y(e);return Be(t,`Single asset for ${e} not found`),t}let te=!1;async function oe(){if(!te){te=!0,Pe.diagnosticTracing&&b("mono_download_assets");try{const e=[],t=[],o=(e,t)=>{!Z[e.behavior]&&G(e)&&Pe.expected_instantiated_assets_count++,!H[e.behavior]&&G(e)&&(Pe.expected_downloaded_assets_count++,t.push(se(e)))};for(const t of $)o(t,e);for(const e of z)o(e,t);Pe.allDownloadsQueued.promise_control.resolve(),Promise.all([...e,...t]).then((()=>{Pe.allDownloadsFinished.promise_control.resolve()})).catch((e=>{throw Pe.err("Error in mono_download_assets: "+e),Xe(1,e),e})),await Pe.runtimeModuleLoaded.promise;const n=async e=>{const t=await e;if(t.buffer){if(!Z[t.behavior]){t.buffer&&"object"==typeof t.buffer||Be(!1,"asset buffer must be array-like or buffer-like or promise of these"),"string"!=typeof t.resolvedUrl&&Be(!1,"resolvedUrl must be string");const e=t.resolvedUrl,o=await t.buffer,n=new Uint8Array(o);pe(t),await Ue.beforeOnRuntimeInitialized.promise,Ue.instantiate_asset(t,e,n)}}else J[t.behavior]?("symbols"===t.behavior&&(await Ue.instantiate_symbols_asset(t),pe(t)),J[t.behavior]&&++Pe.actual_downloaded_assets_count):(t.isOptional||Be(!1,"Expected asset to have the downloaded buffer"),!H[t.behavior]&&G(t)&&Pe.expected_downloaded_assets_count--,!Z[t.behavior]&&G(t)&&Pe.expected_instantiated_assets_count--)},r=[],i=[];for(const t of e)r.push(n(t));for(const e of t)i.push(n(e));Promise.all(r).then((()=>{Ce||Ue.coreAssetsInMemory.promise_control.resolve()})).catch((e=>{throw Pe.err("Error in mono_download_assets: "+e),Xe(1,e),e})),Promise.all(i).then((async()=>{Ce||(await Ue.coreAssetsInMemory.promise,Ue.allAssetsInMemory.promise_control.resolve())})).catch((e=>{throw Pe.err("Error in mono_download_assets: "+e),Xe(1,e),e}))}catch(e){throw Pe.err("Error in mono_download_assets: "+e),e}}}let ne=!1;function re(){if(ne)return;ne=!0;const e=Pe.config,t=[];if(e.assets)for(const t of e.assets)"object"!=typeof t&&Be(!1,`asset must be object, it was ${typeof t} : ${t}`),"string"!=typeof t.behavior&&Be(!1,"asset behavior must be known string"),"string"!=typeof t.name&&Be(!1,"asset name must be string"),t.resolvedUrl&&"string"!=typeof t.resolvedUrl&&Be(!1,"asset resolvedUrl could be string"),t.hash&&"string"!=typeof t.hash&&Be(!1,"asset resolvedUrl could be string"),t.pendingDownload&&"object"!=typeof t.pendingDownload&&Be(!1,"asset pendingDownload could be object"),t.isCore?$.push(t):z.push(t),X(t);else if(e.resources){const o=e.resources;o.wasmNative||Be(!1,"resources.wasmNative must be defined"),o.jsModuleNative||Be(!1,"resources.jsModuleNative must be defined"),o.jsModuleRuntime||Be(!1,"resources.jsModuleRuntime must be defined"),K(z,o.wasmNative,"dotnetwasm"),K(t,o.jsModuleNative,"js-module-native"),K(t,o.jsModuleRuntime,"js-module-runtime"),o.jsModuleDiagnostics&&K(t,o.jsModuleDiagnostics,"js-module-diagnostics");const n=(e,t,o)=>{const n=e;n.behavior=t,o?(n.isCore=!0,$.push(n)):z.push(n)};if(o.coreAssembly)for(let e=0;e<o.coreAssembly.length;e++)n(o.coreAssembly[e],"assembly",!0);if(o.assembly)for(let e=0;e<o.assembly.length;e++)n(o.assembly[e],"assembly",!o.coreAssembly);if(0!=e.debugLevel&&Pe.isDebuggingSupported()){if(o.corePdb)for(let e=0;e<o.corePdb.length;e++)n(o.corePdb[e],"pdb",!0);if(o.pdb)for(let e=0;e<o.pdb.length;e++)n(o.pdb[e],"pdb",!o.corePdb)}if(e.loadAllSatelliteResources&&o.satelliteResources)for(const e in o.satelliteResources)for(let t=0;t<o.satelliteResources[e].length;t++){const r=o.satelliteResources[e][t];r.culture=e,n(r,"resource",!o.coreAssembly)}if(o.coreVfs)for(let e=0;e<o.coreVfs.length;e++)n(o.coreVfs[e],"vfs",!0);if(o.vfs)for(let e=0;e<o.vfs.length;e++)n(o.vfs[e],"vfs",!o.coreVfs);const r=O(e);if(r&&o.icu)for(let e=0;e<o.icu.length;e++){const t=o.icu[e];t.name===r&&n(t,"icu",!1)}if(o.wasmSymbols)for(let e=0;e<o.wasmSymbols.length;e++)n(o.wasmSymbols[e],"symbols",!1)}if(e.appsettings)for(let t=0;t<e.appsettings.length;t++){const o=e.appsettings[t],n=he(o);"appsettings.json"!==n&&n!==`appsettings.${e.applicationEnvironment}.json`||z.push({name:o,behavior:"vfs",cache:"no-cache",useCredentials:!0})}e.assets=[...$,...z,...t]}async function ie(e){const t=await se(e);return await t.pendingDownloadInternal.response,t.buffer}async function se(e){try{return await ae(e)}catch(t){if(!Pe.enableDownloadRetry)throw t;if(Ie||Se)throw t;if(e.pendingDownload&&e.pendingDownloadInternal==e.pendingDownload)throw t;if(e.resolvedUrl&&-1!=e.resolvedUrl.indexOf("file://"))throw t;if(t&&404==t.status)throw t;e.pendingDownloadInternal=void 0,await Pe.allDownloadsQueued.promise;try{return Pe.diagnosticTracing&&b(`Retrying download '${e.name}'`),await ae(e)}catch(t){return e.pendingDownloadInternal=void 0,await new Promise((e=>globalThis.setTimeout(e,100))),Pe.diagnosticTracing&&b(`Retrying download (2) '${e.name}' after delay`),await ae(e)}}}async function ae(e){for(;L;)await L.promise;try{++N,N==Pe.maxParallelDownloads&&(Pe.diagnosticTracing&&b("Throttling further parallel downloads"),L=i());const t=await async function(e){if(e.pendingDownload&&(e.pendingDownloadInternal=e.pendingDownload),e.pendingDownloadInternal&&e.pendingDownloadInternal.response)return e.pendingDownloadInternal.response;if(e.buffer){const t=await e.buffer;return e.resolvedUrl||(e.resolvedUrl="undefined://"+e.name),e.pendingDownloadInternal={url:e.resolvedUrl,name:e.name,response:Promise.resolve({ok:!0,arrayBuffer:()=>t,json:()=>JSON.parse(new TextDecoder("utf-8").decode(t)),text:()=>{throw new Error("NotImplementedException")},headers:{get:()=>{}}})},e.pendingDownloadInternal.response}const t=e.loadRemote&&Pe.config.remoteSources?Pe.config.remoteSources:[""];let o;for(let n of t){n=n.trim(),"./"===n&&(n="");const t=le(e,n);e.name===t?Pe.diagnosticTracing&&b(`Attempting to download '${t}'`):Pe.diagnosticTracing&&b(`Attempting to download '${t}' for ${e.name}`);try{e.resolvedUrl=t;const n=fe(e);if(e.pendingDownloadInternal=n,o=await n.response,!o||!o.ok)continue;return o}catch(e){o||(o={ok:!1,url:t,status:0,statusText:""+e});continue}}const n=e.isOptional||e.name.match(/\.pdb$/)&&Pe.config.ignorePdbLoadErrors;if(o||Be(!1,`Response undefined ${e.name}`),!n){const t=new Error(`download '${o.url}' for ${e.name} failed ${o.status} ${o.statusText}`);throw t.status=o.status,t}y(`optional download '${o.url}' for ${e.name} failed ${o.status} ${o.statusText}`)}(e);return t?(J[e.behavior]||(e.buffer=await t.arrayBuffer(),++Pe.actual_downloaded_assets_count),e):e}finally{if(--N,L&&N==Pe.maxParallelDownloads-1){Pe.diagnosticTracing&&b("Resuming more parallel downloads");const e=L;L=void 0,e.promise_control.resolve()}}}function le(e,t){let o;return null==t&&Be(!1,`sourcePrefix must be provided for ${e.name}`),e.resolvedUrl?o=e.resolvedUrl:(o=""===t?"assembly"===e.behavior||"pdb"===e.behavior?e.name:"resource"===e.behavior&&e.culture&&""!==e.culture?`${e.culture}/${e.name}`:e.name:t+e.name,o=ce(Pe.locateFile(o),e.behavior)),o&&"string"==typeof o||Be(!1,"attemptUrl need to be path or url string"),o}function ce(e,t){return Pe.modulesUniqueQuery&&q[t]&&(e+=Pe.modulesUniqueQuery),e}let de=0;const ue=new Set;function fe(e){try{e.resolvedUrl||Be(!1,"Request's resolvedUrl must be set");const t=function(e){let t=e.resolvedUrl;if(Pe.loadBootResource){const o=ge(e);if(o instanceof Promise)return o;"string"==typeof o&&(t=o)}const o={};return e.cache?o.cache=e.cache:Pe.config.disableNoCacheFetch||(o.cache="no-cache"),e.useCredentials?o.credentials="include":!Pe.config.disableIntegrityCheck&&e.hash&&(o.integrity=e.hash),Pe.fetch_like(t,o)}(e),o={name:e.name,url:e.resolvedUrl,response:t};return ue.add(e.name),o.response.then((()=>{"assembly"==e.behavior&&Pe.loadedAssemblies.push(e.name),de++,Pe.onDownloadResourceProgress&&Pe.onDownloadResourceProgress(de,ue.size)})),o}catch(t){const o={ok:!1,url:e.resolvedUrl,status:500,statusText:"ERR29: "+t,arrayBuffer:()=>{throw t},json:()=>{throw t}};return{name:e.name,url:e.resolvedUrl,response:Promise.resolve(o)}}}const me={resource:"assembly",assembly:"assembly",pdb:"pdb",icu:"globalization",vfs:"configuration",manifest:"manifest",dotnetwasm:"dotnetwasm","js-module-dotnet":"dotnetjs","js-module-native":"dotnetjs","js-module-runtime":"dotnetjs","js-module-threads":"dotnetjs"};function ge(e){var t;if(Pe.loadBootResource){const o=null!==(t=e.hash)&&void 0!==t?t:"",n=e.resolvedUrl,r=me[e.behavior];if(r){const t=Pe.loadBootResource(r,e.name,n,o,e.behavior);return"string"==typeof t?I(t):t}}}function pe(e){e.pendingDownloadInternal=null,e.pendingDownload=null,e.buffer=null,e.moduleExports=null}function he(e){let t=e.lastIndexOf("/");return t>=0&&t++,e.substring(t)}async function we(e){e&&await Promise.all((null!=e?e:[]).map((e=>async function(e){try{const t=e.name;if(!e.moduleExports){const o=ce(Pe.locateFile(t),"js-module-library-initializer");Pe.diagnosticTracing&&b(`Attempting to import '${o}' for ${e}`),e.moduleExports=await import(/*! webpackIgnore: true */o)}Pe.libraryInitializers.push({scriptName:t,exports:e.moduleExports})}catch(t){E(`Failed to import library initializer '${e}': ${t}`)}}(e))))}async function be(e,t){if(!Pe.libraryInitializers)return;const o=[];for(let n=0;n<Pe.libraryInitializers.length;n++){const r=Pe.libraryInitializers[n];r.exports[e]&&o.push(ye(r.scriptName,e,(()=>r.exports[e](...t))))}await Promise.all(o)}async function ye(e,t,o){try{await o()}catch(o){throw E(`Failed to invoke '${t}' on library initializer '${e}': ${o}`),Xe(1,o),o}}function ve(e,t){if(e===t)return e;const o={...t};return void 0!==o.assets&&o.assets!==e.assets&&(o.assets=[...e.assets||[],...o.assets||[]]),void 0!==o.resources&&(o.resources=_e(e.resources||{assembly:[],jsModuleNative:[],jsModuleRuntime:[],wasmNative:[]},o.resources)),void 0!==o.environmentVariables&&(o.environmentVariables={...e.environmentVariables||{},...o.environmentVariables||{}}),void 0!==o.runtimeOptions&&o.runtimeOptions!==e.runtimeOptions&&(o.runtimeOptions=[...e.runtimeOptions||[],...o.runtimeOptions||[]]),Object.assign(e,o)}function Ee(e,t){if(e===t)return e;const o={...t};return o.config&&(e.config||(e.config={}),o.config=ve(e.config,o.config)),Object.assign(e,o)}function _e(e,t){if(e===t)return e;const o={...t};return void 0!==o.coreAssembly&&(o.coreAssembly=[...e.coreAssembly||[],...o.coreAssembly||[]]),void 0!==o.assembly&&(o.assembly=[...e.assembly||[],...o.assembly||[]]),void 0!==o.lazyAssembly&&(o.lazyAssembly=[...e.lazyAssembly||[],...o.lazyAssembly||[]]),void 0!==o.corePdb&&(o.corePdb=[...e.corePdb||[],...o.corePdb||[]]),void 0!==o.pdb&&(o.pdb=[...e.pdb||[],...o.pdb||[]]),void 0!==o.jsModuleWorker&&(o.jsModuleWorker=[...e.jsModuleWorker||[],...o.jsModuleWorker||[]]),void 0!==o.jsModuleNative&&(o.jsModuleNative=[...e.jsModuleNative||[],...o.jsModuleNative||[]]),void 0!==o.jsModuleDiagnostics&&(o.jsModuleDiagnostics=[...e.jsModuleDiagnostics||[],...o.jsModuleDiagnostics||[]]),void 0!==o.jsModuleRuntime&&(o.jsModuleRuntime=[...e.jsModuleRuntime||[],...o.jsModuleRuntime||[]]),void 0!==o.wasmSymbols&&(o.wasmSymbols=[...e.wasmSymbols||[],...o.wasmSymbols||[]]),void 0!==o.wasmNative&&(o.wasmNative=[...e.wasmNative||[],...o.wasmNative||[]]),void 0!==o.icu&&(o.icu=[...e.icu||[],...o.icu||[]]),void 0!==o.satelliteResources&&(o.satelliteResources=function(e,t){if(e===t)return e;for(const o in t)e[o]=[...e[o]||[],...t[o]||[]];return e}(e.satelliteResources||{},o.satelliteResources||{})),void 0!==o.modulesAfterConfigLoaded&&(o.modulesAfterConfigLoaded=[...e.modulesAfterConfigLoaded||[],...o.modulesAfterConfigLoaded||[]]),void 0!==o.modulesAfterRuntimeReady&&(o.modulesAfterRuntimeReady=[...e.modulesAfterRuntimeReady||[],...o.modulesAfterRuntimeReady||[]]),void 0!==o.extensions&&(o.extensions={...e.extensions||{},...o.extensions||{}}),void 0!==o.vfs&&(o.vfs=[...e.vfs||[],...o.vfs||[]]),Object.assign(e,o)}function xe(){const e=Pe.config;if(e.environmentVariables=e.environmentVariables||{},e.runtimeOptions=e.runtimeOptions||[],e.resources=e.resources||{assembly:[],jsModuleNative:[],jsModuleWorker:[],jsModuleRuntime:[],wasmNative:[],vfs:[],satelliteResources:{}},e.assets){Pe.diagnosticTracing&&b("config.assets is deprecated, use config.resources instead");for(const t of e.assets){const o={};switch(t.behavior){case"assembly":o.assembly=[t];break;case"pdb":o.pdb=[t];break;case"resource":o.satelliteResources={},o.satelliteResources[t.culture]=[t];break;case"icu":o.icu=[t];break;case"symbols":o.wasmSymbols=[t];break;case"vfs":o.vfs=[t];break;case"dotnetwasm":o.wasmNative=[t];break;case"js-module-threads":o.jsModuleWorker=[t];break;case"js-module-runtime":o.jsModuleRuntime=[t];break;case"js-module-native":o.jsModuleNative=[t];break;case"js-module-diagnostics":o.jsModuleDiagnostics=[t];break;case"js-module-dotnet":break;default:throw new Error(`Unexpected behavior ${t.behavior} of asset ${t.name}`)}_e(e.resources,o)}}e.debugLevel,e.applicationEnvironment||(e.applicationEnvironment="Production"),e.applicationCulture&&(e.environmentVariables.LANG=`${e.applicationCulture}.UTF-8`),Ue.diagnosticTracing=Pe.diagnosticTracing=!!e.diagnosticTracing,Ue.waitForDebugger=e.waitForDebugger,Pe.maxParallelDownloads=e.maxParallelDownloads||Pe.maxParallelDownloads,Pe.enableDownloadRetry=void 0!==e.enableDownloadRetry?e.enableDownloadRetry:Pe.enableDownloadRetry}let je=!1;async function Re(e){var t;if(je)return void await Pe.afterConfigLoaded.promise;let o;try{if(e.configSrc||Pe.config&&0!==Object.keys(Pe.config).length&&(Pe.config.assets||Pe.config.resources)||(e.configSrc="dotnet.boot.js"),o=e.configSrc,je=!0,o&&(Pe.diagnosticTracing&&b("mono_wasm_load_config"),await async function(e){const t=e.configSrc,o=Pe.locateFile(t);let n=null;void 0!==Pe.loadBootResource&&(n=Pe.loadBootResource("manifest",t,o,"","manifest"));let r,i=null;if(n)if("string"==typeof n)n.includes(".json")?(i=await s(I(n)),r=await Ae(i)):r=(await import(I(n))).config;else{const e=await n;"function"==typeof e.json?(i=e,r=await Ae(i)):r=e.config}else o.includes(".json")?(i=await s(ce(o,"manifest")),r=await Ae(i)):r=(await import(ce(o,"manifest"))).config;function s(e){return Pe.fetch_like(e,{method:"GET",credentials:"include",cache:"no-cache"})}Pe.config.applicationEnvironment&&(r.applicationEnvironment=Pe.config.applicationEnvironment),ve(Pe.config,r)}(e)),xe(),await we(null===(t=Pe.config.resources)||void 0===t?void 0:t.modulesAfterConfigLoaded),await be("onRuntimeConfigLoaded",[Pe.config]),e.onConfigLoaded)try{await e.onConfigLoaded(Pe.config,Le),xe()}catch(e){throw _("onConfigLoaded() failed",e),e}xe(),Pe.afterConfigLoaded.promise_control.resolve(Pe.config)}catch(t){const n=`Failed to load config file ${o} ${t} ${null==t?void 0:t.stack}`;throw Pe.config=e.config=Object.assign(Pe.config,{message:n,error:t,isError:!0}),Xe(1,new Error(n)),t}}function Te(){return!!globalThis.navigator&&(Pe.isChromium||Pe.isFirefox)}async function Ae(e){const t=Pe.config,o=await e.json();t.applicationEnvironment||o.applicationEnvironment||(o.applicationEnvironment=e.headers.get("Blazor-Environment")||e.headers.get("DotNet-Environment")||void 0),o.environmentVariables||(o.environmentVariables={});const n=e.headers.get("DOTNET-MODIFIABLE-ASSEMBLIES");n&&(o.environmentVariables.DOTNET_MODIFIABLE_ASSEMBLIES=n);const r=e.headers.get("ASPNETCORE-BROWSER-TOOLS");return r&&(o.environmentVariables.__ASPNETCORE_BROWSER_TOOLS=r),o}"function"!=typeof importScripts||globalThis.onmessage||(globalThis.dotnetSidecar=!0);const Se="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,De="function"==typeof importScripts,Oe=De&&"undefined"!=typeof dotnetSidecar,Ce=De&&!Oe,ke="object"==typeof window||De&&!Se,Ie=!ke&&!Se;let Ue={},Pe={},Me={},Le={},Ne={},$e=!1;const ze={},We={config:ze},Fe={mono:{},binding:{},internal:Ne,module:We,loaderHelpers:Pe,runtimeHelpers:Ue,diagnosticHelpers:Me,api:Le};function Be(e,t){if(e)return;const o="Assert failed: "+("function"==typeof t?t():t),n=new Error(o);_(o,n),Ue.nativeAbort(n)}function Ve(){return void 0!==Pe.exitCode}function qe(){return Ue.runtimeReady&&!Ve()}function He(){Ve()&&Be(!1,`.NET runtime already exited with ${Pe.exitCode} ${Pe.exitReason}. You can use runtime.runMain() which doesn't exit the runtime.`),Ue.runtimeReady||Be(!1,".NET runtime didn't start yet. Please call dotnet.create() first.")}function Je(){ke&&(globalThis.addEventListener("unhandledrejection",et),globalThis.addEventListener("error",tt))}let Ze,Qe;function Ge(e){Qe&&Qe(e),Xe(e,Pe.exitReason)}function Ke(e){Ze&&Ze(e||Pe.exitReason),Xe(1,e||Pe.exitReason)}function Xe(t,o){var n,r;const i=o&&"object"==typeof o;t=i&&"number"==typeof o.status?o.status:void 0===t?-1:t;const s=i&&"string"==typeof o.message?o.message:""+o;(o=i?o:Ue.ExitStatus?function(e,t){const o=new Ue.ExitStatus(e);return o.message=t,o.toString=()=>t,o}(t,s):new Error("Exit with code "+t+" "+s)).status=t,o.message||(o.message=s);const a=""+(o.stack||(new Error).stack);try{Object.defineProperty(o,"stack",{get:()=>a})}catch(e){}const l=!!o.silent;if(o.silent=!0,Ve())Pe.diagnosticTracing&&b("mono_exit called after exit");else{try{We.onAbort==Ke&&(We.onAbort=Ze),We.onExit==Ge&&(We.onExit=Qe),ke&&(globalThis.removeEventListener("unhandledrejection",et),globalThis.removeEventListener("error",tt)),Ue.runtimeReady?(Ue.jiterpreter_dump_stats&&Ue.jiterpreter_dump_stats(!1),0===t&&(null===(n=Pe.config)||void 0===n?void 0:n.interopCleanupOnExit)&&Ue.forceDisposeProxies(!0,!0),e&&0!==t&&(null===(r=Pe.config)||void 0===r||r.dumpThreadsOnNonZeroExit)):(Pe.diagnosticTracing&&b(`abort_startup, reason: ${o}`),function(e){Pe.allDownloadsQueued.promise_control.reject(e),Pe.allDownloadsFinished.promise_control.reject(e),Pe.afterConfigLoaded.promise_control.reject(e),Pe.wasmCompilePromise.promise_control.reject(e),Pe.runtimeModuleLoaded.promise_control.reject(e),Ue.dotnetReady&&(Ue.dotnetReady.promise_control.reject(e),Ue.afterInstantiateWasm.promise_control.reject(e),Ue.beforePreInit.promise_control.reject(e),Ue.afterPreInit.promise_control.reject(e),Ue.afterPreRun.promise_control.reject(e),Ue.beforeOnRuntimeInitialized.promise_control.reject(e),Ue.afterOnRuntimeInitialized.promise_control.reject(e),Ue.afterPostRun.promise_control.reject(e))}(o))}catch(e){E("mono_exit A failed",e)}try{l||(function(e,t){if(0!==e&&t){const e=Ue.ExitStatus&&t instanceof Ue.ExitStatus?b:_;"string"==typeof t?e(t):(void 0===t.stack&&(t.stack=(new Error).stack+""),t.message?e(Ue.stringify_as_error_with_stack?Ue.stringify_as_error_with_stack(t.message+"\n"+t.stack):t.message+"\n"+t.stack):e(JSON.stringify(t)))}!Ce&&Pe.config&&(Pe.config.logExitCode?Pe.config.forwardConsoleLogsToWS?R("WASM EXIT "+e):v("WASM EXIT "+e):Pe.config.forwardConsoleLogsToWS&&R())}(t,o),function(e){if(ke&&!Ce&&Pe.config&&Pe.config.appendElementOnExit&&document){const t=document.createElement("label");t.id="tests_done",0!==e&&(t.style.background="red"),t.innerHTML=""+e,document.body.appendChild(t)}}(t))}catch(e){E("mono_exit B failed",e)}Pe.exitCode=t,Pe.exitReason||(Pe.exitReason=o),!Ce&&Ue.runtimeReady&&We.runtimeKeepalivePop()}if(Pe.config&&Pe.config.asyncFlushOnExit&&0===t)throw(async()=>{try{await async function(){try{const e=await import(/*! webpackIgnore: true */"process"),t=e=>new Promise(((t,o)=>{e.on("error",o),e.end("","utf8",t)})),o=t(e.stderr),n=t(e.stdout);let r;const i=new Promise((e=>{r=setTimeout((()=>e("timeout")),1e3)}));await Promise.race([Promise.all([n,o]),i]),clearTimeout(r)}catch(e){_(`flushing std* streams failed: ${e}`)}}()}finally{Ye(t,o)}})(),o;Ye(t,o)}function Ye(e,t){if(Ue.runtimeReady&&Ue.nativeExit)try{Ue.nativeExit(e)}catch(e){!Ue.ExitStatus||e instanceof Ue.ExitStatus||E("set_exit_code_and_quit_now failed: "+e.toString())}if(0!==e||!ke)throw Se&&Ne.process?Ne.process.exit(e):Ue.quit&&Ue.quit(e,t),t}function et(e){ot(e,e.reason,"rejection")}function tt(e){ot(e,e.error,"error")}function ot(e,t,o){e.preventDefault();try{t||(t=new Error("Unhandled "+o)),void 0===t.stack&&(t.stack=(new Error).stack),t.stack=t.stack+"",t.silent||(_("Unhandled error:",t),Xe(1,t))}catch(e){}}!function(e){if($e)throw new Error("Loader module already loaded");$e=!0,Ue=e.runtimeHelpers,Pe=e.loaderHelpers,Me=e.diagnosticHelpers,Le=e.api,Ne=e.internal,Object.assign(Le,{INTERNAL:Ne,invokeLibraryInitializers:be}),Object.assign(e.module,{config:ve(ze,{environmentVariables:{}})});const r={mono_wasm_bindings_is_ready:!1,config:e.module.config,diagnosticTracing:!1,nativeAbort:e=>{throw e||new Error("abort")},nativeExit:e=>{throw new Error("exit:"+e)}},l={gitHash:"94ea82652cdd4e0f8046b5bd5becbd11461482ca",config:e.module.config,diagnosticTracing:!1,maxParallelDownloads:16,enableDownloadRetry:!0,_loaded_files:[],loadedFiles:[],loadedAssemblies:[],libraryInitializers:[],workerNextNumber:1,actual_downloaded_assets_count:0,actual_instantiated_assets_count:0,expected_downloaded_assets_count:0,expected_instantiated_assets_count:0,afterConfigLoaded:i(),allDownloadsQueued:i(),allDownloadsFinished:i(),wasmCompilePromise:i(),runtimeModuleLoaded:i(),loadingWorkers:i(),is_exited:Ve,is_runtime_running:qe,assert_runtime_running:He,mono_exit:Xe,createPromiseController:i,getPromiseController:s,assertIsControllablePromise:a,mono_download_assets:oe,resolve_single_asset_path:ee,setup_proxy_console:j,set_thread_prefix:w,installUnhandledErrorHandler:Je,retrieve_asset_download:ie,invokeLibraryInitializers:be,isDebuggingSupported:Te,exceptions:t,simd:n,relaxedSimd:o};Object.assign(Ue,r),Object.assign(Pe,l)}(Fe);let nt,rt,it,st=!1,at=!1;async function lt(e){if(!at){if(at=!0,ke&&Pe.config.forwardConsoleLogsToWS&&void 0!==globalThis.WebSocket&&j("main",globalThis.console,globalThis.location.origin),We||Be(!1,"Null moduleConfig"),Pe.config||Be(!1,"Null moduleConfig.config"),"function"==typeof e){const t=e(Fe.api);if(t.ready)throw new Error("Module.ready couldn't be redefined.");Object.assign(We,t),Ee(We,t)}else{if("object"!=typeof e)throw new Error("Can't use moduleFactory callback of createDotnetRuntime function.");Ee(We,e)}await async function(e){if(Se){const e=await import(/*! webpackIgnore: true */"process"),t=14;if(e.versions.node.split(".")[0]<t)throw new Error(`NodeJS at '${e.execPath}' has too low version '${e.versions.node}', please use at least ${t}. See also https://aka.ms/dotnet-wasm-features`)}const t=/*! webpackIgnore: true */import.meta.url,o=t.indexOf("?");var n;if(o>0&&(Pe.modulesUniqueQuery=t.substring(o)),Pe.scriptUrl=t.replace(/\\/g,"/").replace(/[?#].*/,""),Pe.scriptDirectory=(n=Pe.scriptUrl).slice(0,n.lastIndexOf("/"))+"/",Pe.locateFile=e=>"URL"in globalThis&&globalThis.URL!==C?new URL(e,Pe.scriptDirectory).toString():M(e)?e:Pe.scriptDirectory+e,Pe.fetch_like=k,Pe.out=console.log,Pe.err=console.error,Pe.onDownloadResourceProgress=e.onDownloadResourceProgress,ke&&globalThis.navigator){const e=globalThis.navigator,t=e.userAgentData&&e.userAgentData.brands;t&&t.length>0?Pe.isChromium=t.some((e=>"Google Chrome"===e.brand||"Microsoft Edge"===e.brand||"Chromium"===e.brand)):e.userAgent&&(Pe.isChromium=e.userAgent.includes("Chrome"),Pe.isFirefox=e.userAgent.includes("Firefox"))}Ne.require=Se?await import(/*! webpackIgnore: true */"module").then((e=>e.createRequire(/*! webpackIgnore: true */import.meta.url))):Promise.resolve((()=>{throw new Error("require not supported")})),void 0===globalThis.URL&&(globalThis.URL=C)}(We)}}async function ct(e){return await lt(e),Ze=We.onAbort,Qe=We.onExit,We.onAbort=Ke,We.onExit=Ge,We.ENVIRONMENT_IS_PTHREAD?async function(){(function(){const e=new MessageChannel,t=e.port1,o=e.port2;t.addEventListener("message",(e=>{var n,r;n=JSON.parse(e.data.config),r=JSON.parse(e.data.monoThreadInfo),st?Pe.diagnosticTracing&&b("mono config already received"):(ve(Pe.config,n),Ue.monoThreadInfo=r,xe(),Pe.diagnosticTracing&&b("mono config received"),st=!0,Pe.afterConfigLoaded.promise_control.resolve(Pe.config),ke&&n.forwardConsoleLogsToWS&&void 0!==globalThis.WebSocket&&Pe.setup_proxy_console("worker-idle",console,globalThis.location.origin)),t.close(),o.close()}),{once:!0}),t.start(),self.postMessage({[l]:{monoCmd:"preload",port:o}},[o])})(),await Pe.afterConfigLoaded.promise,function(){const e=Pe.config;e.assets||Be(!1,"config.assets must be defined");for(const t of e.assets)X(t),Q[t.behavior]&&z.push(t)}(),setTimeout((async()=>{try{await oe()}catch(e){Xe(1,e)}}),0);const e=dt(),t=await Promise.all(e);return await ut(t),We}():async function(){var e;await Re(We),re();const t=dt();(async function(){try{const e=ee("dotnetwasm");await se(e),e&&e.pendingDownloadInternal&&e.pendingDownloadInternal.response||Be(!1,"Can't load dotnet.native.wasm");const t=await e.pendingDownloadInternal.response,o=t.headers&&t.headers.get?t.headers.get("Content-Type"):void 0;let n;if("function"==typeof WebAssembly.compileStreaming&&"application/wasm"===o)n=await WebAssembly.compileStreaming(t);else{ke&&"application/wasm"!==o&&E('WebAssembly resource does not have the expected content type "application/wasm", so falling back to slower ArrayBuffer instantiation.');const e=await t.arrayBuffer();Pe.diagnosticTracing&&b("instantiate_wasm_module buffered"),n=Ie?await Promise.resolve(new WebAssembly.Module(e)):await WebAssembly.compile(e)}e.pendingDownloadInternal=null,e.pendingDownload=null,e.buffer=null,e.moduleExports=null,Pe.wasmCompilePromise.promise_control.resolve(n)}catch(e){Pe.wasmCompilePromise.promise_control.reject(e)}})(),setTimeout((async()=>{try{D(),await oe()}catch(e){Xe(1,e)}}),0);const o=await Promise.all(t);return await ut(o),await Ue.dotnetReady.promise,await we(null===(e=Pe.config.resources)||void 0===e?void 0:e.modulesAfterRuntimeReady),await be("onRuntimeReady",[Fe.api]),Le}()}function dt(){const e=ee("js-module-runtime"),t=ee("js-module-native");if(nt&&rt)return[nt,rt,it];"object"==typeof e.moduleExports?nt=e.moduleExports:(Pe.diagnosticTracing&&b(`Attempting to import '${e.resolvedUrl}' for ${e.name}`),nt=import(/*! webpackIgnore: true */e.resolvedUrl)),"object"==typeof t.moduleExports?rt=t.moduleExports:(Pe.diagnosticTracing&&b(`Attempting to import '${t.resolvedUrl}' for ${t.name}`),rt=import(/*! webpackIgnore: true */t.resolvedUrl));const o=Y("js-module-diagnostics");return o&&("object"==typeof o.moduleExports?it=o.moduleExports:(Pe.diagnosticTracing&&b(`Attempting to import '${o.resolvedUrl}' for ${o.name}`),it=import(/*! webpackIgnore: true */o.resolvedUrl))),[nt,rt,it]}async function ut(e){const{initializeExports:t,initializeReplacements:o,configureRuntimeStartup:n,configureEmscriptenStartup:r,configureWorkerStartup:i,setRuntimeGlobals:s,passEmscriptenInternals:a}=e[0],{default:l}=e[1],c=e[2];s(Fe),t(Fe),c&&c.setRuntimeGlobals(Fe),await n(We),Pe.runtimeModuleLoaded.promise_control.resolve(),l((e=>(Object.assign(We,{ready:e.ready,__dotnet_runtime:{initializeReplacements:o,configureEmscriptenStartup:r,configureWorkerStartup:i,passEmscriptenInternals:a}}),We))).catch((e=>{if(e.message&&e.message.toLowerCase().includes("out of memory"))throw new Error(".NET runtime has failed to start, because too much memory was requested. Please decrease the memory by adjusting EmccMaximumHeapSize. See also https://aka.ms/dotnet-wasm-features");throw e}))}const ft=new class{withModuleConfig(e){try{return Ee(We,e),this}catch(e){throw Xe(1,e),e}}withOnConfigLoaded(e){try{return Ee(We,{onConfigLoaded:e}),this}catch(e){throw Xe(1,e),e}}withConsoleForwarding(){try{return ve(ze,{forwardConsoleLogsToWS:!0}),this}catch(e){throw Xe(1,e),e}}withExitOnUnhandledError(){try{return ve(ze,{exitOnUnhandledError:!0}),Je(),this}catch(e){throw Xe(1,e),e}}withAsyncFlushOnExit(){try{return ve(ze,{asyncFlushOnExit:!0}),this}catch(e){throw Xe(1,e),e}}withExitCodeLogging(){try{return ve(ze,{logExitCode:!0}),this}catch(e){throw Xe(1,e),e}}withElementOnExit(){try{return ve(ze,{appendElementOnExit:!0}),this}catch(e){throw Xe(1,e),e}}withInteropCleanupOnExit(){try{return ve(ze,{interopCleanupOnExit:!0}),this}catch(e){throw Xe(1,e),e}}withDumpThreadsOnNonZeroExit(){try{return ve(ze,{dumpThreadsOnNonZeroExit:!0}),this}catch(e){throw Xe(1,e),e}}withWaitingForDebugger(e){try{return ve(ze,{waitForDebugger:e}),this}catch(e){throw Xe(1,e),e}}withInterpreterPgo(e,t){try{return ve(ze,{interpreterPgo:e,interpreterPgoSaveDelay:t}),ze.runtimeOptions?ze.runtimeOptions.push("--interp-pgo-recording"):ze.runtimeOptions=["--interp-pgo-recording"],this}catch(e){throw Xe(1,e),e}}withConfig(e){try{return ve(ze,e),this}catch(e){throw Xe(1,e),e}}withConfigSrc(e){try{return e&&"string"==typeof e||Be(!1,"must be file path or URL"),Ee(We,{configSrc:e}),this}catch(e){throw Xe(1,e),e}}withVirtualWorkingDirectory(e){try{return e&&"string"==typeof e||Be(!1,"must be directory path"),ve(ze,{virtualWorkingDirectory:e}),this}catch(e){throw Xe(1,e),e}}withEnvironmentVariable(e,t){try{const o={};return o[e]=t,ve(ze,{environmentVariables:o}),this}catch(e){throw Xe(1,e),e}}withEnvironmentVariables(e){try{return e&&"object"==typeof e||Be(!1,"must be dictionary object"),ve(ze,{environmentVariables:e}),this}catch(e){throw Xe(1,e),e}}withDiagnosticTracing(e){try{return"boolean"!=typeof e&&Be(!1,"must be boolean"),ve(ze,{diagnosticTracing:e}),this}catch(e){throw Xe(1,e),e}}withDebugging(e){try{return null!=e&&"number"==typeof e||Be(!1,"must be number"),ve(ze,{debugLevel:e}),this}catch(e){throw Xe(1,e),e}}withApplicationArguments(...e){try{return e&&Array.isArray(e)||Be(!1,"must be array of strings"),ve(ze,{applicationArguments:e}),this}catch(e){throw Xe(1,e),e}}withRuntimeOptions(e){try{return e&&Array.isArray(e)||Be(!1,"must be array of strings"),ze.runtimeOptions?ze.runtimeOptions.push(...e):ze.runtimeOptions=e,this}catch(e){throw Xe(1,e),e}}withMainAssembly(e){try{return ve(ze,{mainAssemblyName:e}),this}catch(e){throw Xe(1,e),e}}withApplicationArgumentsFromQuery(){try{if(!globalThis.window)throw new Error("Missing window to the query parameters from");if(void 0===globalThis.URLSearchParams)throw new Error("URLSearchParams is supported");const e=new URLSearchParams(globalThis.window.location.search).getAll("arg");return this.withApplicationArguments(...e)}catch(e){throw Xe(1,e),e}}withApplicationEnvironment(e){try{return ve(ze,{applicationEnvironment:e}),this}catch(e){throw Xe(1,e),e}}withApplicationCulture(e){try{return ve(ze,{applicationCulture:e}),this}catch(e){throw Xe(1,e),e}}withResourceLoader(e){try{return Pe.loadBootResource=e,this}catch(e){throw Xe(1,e),e}}async download(){try{await async function(){lt(We),await Re(We),re(),D(),oe(),await Pe.allDownloadsFinished.promise}()}catch(e){throw Xe(1,e),e}}async create(){try{return this.instance||(this.instance=await async function(){return await ct(We),Fe.api}()),this.instance}catch(e){throw Xe(1,e),e}}async run(){try{return We.config||Be(!1,"Null moduleConfig.config"),this.instance||await this.create(),this.instance.runMainAndExit()}catch(e){throw Xe(1,e),e}}},mt=Xe,gt=ct;Ie||"function"==typeof globalThis.URL||Be(!1,"This browser/engine doesn't support URL API. Please use a modern version. See also https://aka.ms/dotnet-wasm-features"),"function"!=typeof globalThis.BigInt64Array&&Be(!1,"This browser/engine doesn't support BigInt64Array API. Please use a modern version. See also https://aka.ms/dotnet-wasm-features"),ft.withConfig(/*json-start*/{
|
|
5
5
|
"mainAssemblyName": "PrefConfigurator.Wasm",
|
|
6
6
|
"resources": {
|
|
7
|
-
"hash": "sha256-
|
|
7
|
+
"hash": "sha256-1wQLdMtOGdpufzNgj/BVdIcxKYJWpfXjwpW2TgkrrDE=",
|
|
8
8
|
"jsModuleNative": [
|
|
9
9
|
{
|
|
10
10
|
"name": "dotnet.native.u4s0h50lzp.js"
|
|
@@ -17,8 +17,8 @@ var e=!1;const t=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,
|
|
|
17
17
|
],
|
|
18
18
|
"wasmNative": [
|
|
19
19
|
{
|
|
20
|
-
"name": "dotnet.native.
|
|
21
|
-
"hash": "sha256-
|
|
20
|
+
"name": "dotnet.native.vjqclesxwz.wasm",
|
|
21
|
+
"hash": "sha256-lcGP+QlOqBuUcpxAE0hL1F/3K+j3STIHLLjTQgkO3Ms=",
|
|
22
22
|
"cache": "force-cache"
|
|
23
23
|
}
|
|
24
24
|
],
|
|
@@ -45,8 +45,8 @@ var e=!1;const t=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,
|
|
|
45
45
|
"coreAssembly": [
|
|
46
46
|
{
|
|
47
47
|
"virtualPath": "System.Private.CoreLib.wasm",
|
|
48
|
-
"name": "System.Private.CoreLib.
|
|
49
|
-
"hash": "sha256-
|
|
48
|
+
"name": "System.Private.CoreLib.hpxnem4nhf.wasm",
|
|
49
|
+
"hash": "sha256-ZfBS/rPqs8xxru76ynSXL2EYXVjGvwqkx4iKtN/az9w=",
|
|
50
50
|
"cache": "force-cache"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
@@ -233,32 +233,32 @@ var e=!1;const t=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,
|
|
|
233
233
|
},
|
|
234
234
|
{
|
|
235
235
|
"virtualPath": "PrefConfigurator.Abstractions.wasm",
|
|
236
|
-
"name": "PrefConfigurator.Abstractions.
|
|
237
|
-
"hash": "sha256-
|
|
236
|
+
"name": "PrefConfigurator.Abstractions.5unh6plrz8.wasm",
|
|
237
|
+
"hash": "sha256-E5M/w/1HjZagQ1dPhTiSZFppElNGyYyfA0Z0wGGVf0k=",
|
|
238
238
|
"cache": "force-cache"
|
|
239
239
|
},
|
|
240
240
|
{
|
|
241
241
|
"virtualPath": "PrefConfigurator.Application.wasm",
|
|
242
|
-
"name": "PrefConfigurator.Application.
|
|
243
|
-
"hash": "sha256-
|
|
242
|
+
"name": "PrefConfigurator.Application.lht256hpnv.wasm",
|
|
243
|
+
"hash": "sha256-N7Fm3va5ozGMczYJXNb6xbU3qZBoXy/s1TAxedfQJl4=",
|
|
244
244
|
"cache": "force-cache"
|
|
245
245
|
},
|
|
246
246
|
{
|
|
247
247
|
"virtualPath": "PrefConfigurator.Domain.wasm",
|
|
248
|
-
"name": "PrefConfigurator.Domain.
|
|
249
|
-
"hash": "sha256-
|
|
248
|
+
"name": "PrefConfigurator.Domain.vjgzrzrzpr.wasm",
|
|
249
|
+
"hash": "sha256-depfm0qa0naLQiAhYSX0I6RLSZlNgDv60PWlFQxFMgA=",
|
|
250
250
|
"cache": "force-cache"
|
|
251
251
|
},
|
|
252
252
|
{
|
|
253
253
|
"virtualPath": "PrefConfigurator.Infrastructure.wasm",
|
|
254
|
-
"name": "PrefConfigurator.Infrastructure.
|
|
255
|
-
"hash": "sha256-
|
|
254
|
+
"name": "PrefConfigurator.Infrastructure.v493olv9a8.wasm",
|
|
255
|
+
"hash": "sha256-AfPJtQ51ViLXlRfx5f3EvXIhVNBoxTJG0zZsRt+dM0I=",
|
|
256
256
|
"cache": "force-cache"
|
|
257
257
|
},
|
|
258
258
|
{
|
|
259
259
|
"virtualPath": "PrefConfigurator.Wasm.wasm",
|
|
260
|
-
"name": "PrefConfigurator.Wasm.
|
|
261
|
-
"hash": "sha256-
|
|
260
|
+
"name": "PrefConfigurator.Wasm.jxhayl5imm.wasm",
|
|
261
|
+
"hash": "sha256-Rx/4pnXTdwNGcXRIrE2l8AdIn8ofqbNbTZoUH9w1+VM=",
|
|
262
262
|
"cache": "force-cache"
|
|
263
263
|
},
|
|
264
264
|
{
|
package/_framework/dotnet.js.br
CHANGED
|
Binary file
|
package/_framework/dotnet.js.gz
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/index.d.ts
CHANGED
|
@@ -2,15 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
export { init, type InitOptions, type SdkApi, type SdkLifecycle } from "./js/sdk-init";
|
|
4
4
|
export {
|
|
5
|
-
bindApi,
|
|
6
|
-
ensureOk,
|
|
7
|
-
parse,
|
|
8
|
-
type BoundApi,
|
|
9
5
|
type EnvJson,
|
|
10
6
|
type ErrorInfo,
|
|
11
|
-
type JsInteropApiRaw,
|
|
12
7
|
type OperationResult,
|
|
13
|
-
type RawOperation,
|
|
14
8
|
// Domain DTO re-exports — keep this surface in sync with prefconfigurator-api.d.ts.
|
|
15
9
|
type CadRendererData,
|
|
16
10
|
type CreateItemResponse,
|
package/index.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
// PrefConfigurator WASM SDK — package entry point.
|
|
2
2
|
//
|
|
3
|
-
// `init(env)`
|
|
4
|
-
//
|
|
5
|
-
// drive dotnet.js directly.
|
|
3
|
+
// `init(env)` boots the runtime in a Web Worker and returns a typed proxy that
|
|
4
|
+
// JSON.stringify's object args and unwraps OperationResult<T> automatically.
|
|
6
5
|
|
|
7
6
|
export { init } from "./js/sdk-init.js";
|
|
8
|
-
export { bindApi, ensureOk, parse } from "./js/prefconfigurator-api.js";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Internal helpers used by sdk-init.js to parse the OperationResult<T> envelope
|
|
2
|
+
// returned across the WASM interop boundary. NOT part of the public SDK surface —
|
|
3
|
+
// consumers receive plain JS values from the proxy returned by `init()`, which
|
|
4
|
+
// already unwraps the envelope via ensureOk. The leading underscore in the
|
|
5
|
+
// filename signals "internal; do not depend on this from outside the SDK".
|
|
6
|
+
|
|
7
|
+
export function parse(raw) {
|
|
8
|
+
if (raw === undefined || raw === null || raw === "") throw new Error("Empty response from WASM interop.");
|
|
9
|
+
if (typeof raw === "string") {
|
|
10
|
+
try {
|
|
11
|
+
return JSON.parse(raw);
|
|
12
|
+
} catch (e) {
|
|
13
|
+
throw new Error("Malformed JSON from WASM interop.");
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return raw;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function ensureOk(raw) {
|
|
20
|
+
const res = parse(raw);
|
|
21
|
+
const ok = res?.Ok;
|
|
22
|
+
if (ok) return res?.Data ?? null;
|
|
23
|
+
|
|
24
|
+
const errObj = res?.Error;
|
|
25
|
+
const err = new Error(errObj?.Message ?? "Operation failed.");
|
|
26
|
+
err.code = errObj?.Code;
|
|
27
|
+
err.source = errObj?.Source;
|
|
28
|
+
err.httpStatus = errObj?.HttpStatus;
|
|
29
|
+
err.requestId = errObj?.RequestId;
|
|
30
|
+
err.correlationId = errObj?.CorrelationId;
|
|
31
|
+
err.traceParent = errObj?.TraceParent;
|
|
32
|
+
err.detail = errObj?.Detail;
|
|
33
|
+
err.field = errObj?.Field;
|
|
34
|
+
err.callId = res?.CallId;
|
|
35
|
+
err.result = res;
|
|
36
|
+
throw err;
|
|
37
|
+
}
|
|
@@ -316,54 +316,3 @@ export interface UsdImagesRequest {
|
|
|
316
316
|
visualProperties?: string | null;
|
|
317
317
|
}
|
|
318
318
|
|
|
319
|
-
export interface JsInteropApiRaw {
|
|
320
|
-
InitializeFromEnvJson(json: string): void;
|
|
321
|
-
|
|
322
|
-
GetOptions<T = EnhancedOptionList>(itemId?: string): Promise<OperationResult<T> | string>;
|
|
323
|
-
UpdateOptions<T = UpdateOptionsResponse>(optionListJson: string, optionsChangedJson: string, itemId: string): Promise<OperationResult<T> | string>;
|
|
324
|
-
CreateItem<T = CreateItemResponse>(modelCode: string, isPersistable: boolean): Promise<OperationResult<T> | string>;
|
|
325
|
-
SetOptions<T = SetOptionsResponse>(modelId: string, options: SetOptionValueRequest[]): Promise<OperationResult<T> | string>;
|
|
326
|
-
GetModelOptions<T = OptionInfo[]>(modelId: string): Promise<OperationResult<T> | string>;
|
|
327
|
-
GetScene<T = Scene>(sceneName?: string, sceneFormat?: string, texturesRootPath?: string): Promise<OperationResult<T> | string>;
|
|
328
|
-
GetModelImage(modelId: string, modelImageConfigJson: string, sceneName?: string, optionListJson?: string): Promise<OperationResult<string> | string>;
|
|
329
|
-
GetUsdImages<T = string[]>(usdImagesRequestJson: string, optionListJson?: string): Promise<OperationResult<T> | string>;
|
|
330
|
-
GetUsdImagesHcStatus<T = HcProductStatusResult[]>(usdImagesRequestJson: string, optionListJson: string): Promise<OperationResult<T> | string>;
|
|
331
|
-
GetModelImageHcStatus<T = HcProductStatusResult>(modelId: string, modelImageConfigJson: string): Promise<OperationResult<T> | string>;
|
|
332
|
-
GetDefaultMaker(): string;
|
|
333
|
-
GetMakerPrefix(): string;
|
|
334
|
-
GetUiDefinitionName(): string;
|
|
335
|
-
GetOptionListName(): string;
|
|
336
|
-
GetBaseUrl(): string;
|
|
337
|
-
GetUsername(): string;
|
|
338
|
-
GetPassword(): string;
|
|
339
|
-
GetSceneName(): string;
|
|
340
|
-
GetSceneFormat(): string;
|
|
341
|
-
GetTextureRootPath(): string;
|
|
342
|
-
|
|
343
|
-
[key: string]: unknown;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
export type RawOperation<T = JsonValue> = OperationResult<T> | string | null | undefined;
|
|
347
|
-
|
|
348
|
-
export function parse<T = JsonValue>(raw: RawOperation<T>): OperationResult<T>;
|
|
349
|
-
|
|
350
|
-
export function ensureOk<T = JsonValue>(raw: RawOperation<T>): T;
|
|
351
|
-
|
|
352
|
-
type AwaitedReturn<T> = T extends Promise<infer R> ? R : T;
|
|
353
|
-
type ExtractData<R> = AwaitedReturn<R> extends OperationResult<infer D> ? D : JsonValue;
|
|
354
|
-
type BoundMethod<F> = F extends (...args: infer A) => Promise<infer R> ? (...args: A) => Promise<ExtractData<R>> : F;
|
|
355
|
-
|
|
356
|
-
// BOUND API — PUBLIC API CORRECTLY TYPED
|
|
357
|
-
|
|
358
|
-
export type BoundApi<TRaw extends JsInteropApiRaw> = { [K in keyof TRaw]: TRaw[K] extends Function ? BoundMethod<TRaw[K]> : TRaw[K];
|
|
359
|
-
} & {
|
|
360
|
-
InitializeFromEnvJson(config: EnvJson): void;
|
|
361
|
-
UpdateOptions(optionList: OptionList, optionsChanged: string[], itemId: string): Promise<UpdateOptionsResponse>;
|
|
362
|
-
SetOptions(modelId: string, updates: SetOptionValueRequest[]): Promise<SetOptionsResponse>;
|
|
363
|
-
GetModelImage(modelId: string, config: ModelImageConfig, sceneName?: string, optionList?: OptionList): Promise<string>;
|
|
364
|
-
GetUsdImages(request: UsdImagesRequest, optionList?: OptionList): Promise<string[]>;
|
|
365
|
-
GetUsdImagesHcStatus(request: UsdImagesRequest, optionList: OptionList): Promise<HcProductStatusResult[]>;
|
|
366
|
-
GetModelImageHcStatus(modelId: string, config: ModelImageConfig): Promise<HcProductStatusResult>;
|
|
367
|
-
};
|
|
368
|
-
|
|
369
|
-
export function bindApi<TRaw extends JsInteropApiRaw>(rawApi: TRaw): BoundApi<TRaw>;
|
|
@@ -1,45 +1,13 @@
|
|
|
1
|
-
//
|
|
2
|
-
// -
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return raw;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export function ensureOk(raw) {
|
|
18
|
-
const res = parse(raw);
|
|
19
|
-
const ok = res?.Ok;
|
|
20
|
-
if (ok) return res?.Data ?? null;
|
|
21
|
-
|
|
22
|
-
const errObj = res?.Error;
|
|
23
|
-
const err = new Error(errObj?.Message ?? "Operation failed.");
|
|
24
|
-
err.code = errObj?.Code;
|
|
25
|
-
err.source = errObj?.Source;
|
|
26
|
-
err.httpStatus = errObj?.HttpStatus;
|
|
27
|
-
err.requestId = errObj?.RequestId;
|
|
28
|
-
err.correlationId = errObj?.CorrelationId;
|
|
29
|
-
err.traceParent = errObj?.TraceParent;
|
|
30
|
-
err.detail = errObj?.Detail;
|
|
31
|
-
err.field = errObj?.Field;
|
|
32
|
-
err.callId = res?.CallId;
|
|
33
|
-
err.result = res;
|
|
34
|
-
throw err;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export function bindApi(rawApi) {
|
|
38
|
-
return new Proxy(rawApi, {
|
|
39
|
-
get(target, prop) {
|
|
40
|
-
const value = target[prop];
|
|
41
|
-
if (typeof value !== "function") return value;
|
|
42
|
-
return async (...args) => ensureOk(await value(...args));
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
1
|
+
// This module hosts the public TypeScript type declarations for SDK DTOs and the
|
|
2
|
+
// JS-interop method signatures (see prefconfigurator-api.d.ts). The legacy
|
|
3
|
+
// `bindApi` / `ensureOk` / `parse` helpers used to live here and were exported
|
|
4
|
+
// for consumers that drove `dotnet.js` directly; that path is removed — consumers
|
|
5
|
+
// should boot the SDK via `init()` from the package root (`@preference-sl/pref-configurator-sdk`),
|
|
6
|
+
// which returns a typed proxy that already unwraps the OperationResult envelope.
|
|
7
|
+
//
|
|
8
|
+
// The file remains because subpath imports of the public DTO types still resolve
|
|
9
|
+
// against it (e.g. `import type { UpdateOptionsResponse } from
|
|
10
|
+
// "@preference-sl/pref-configurator-sdk/js/prefconfigurator-api"`). Runtime
|
|
11
|
+
// internals moved to `_operation-result.js`.
|
|
12
|
+
|
|
13
|
+
export {};
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
export const FRAMEWORK_ASSETS = Object.freeze({
|
|
15
15
|
"dotnet.js": new URL("../_framework/dotnet.js", import.meta.url),
|
|
16
|
-
"dotnet.native.7q01pr7knk.wasm": new URL("../_framework/dotnet.native.7q01pr7knk.wasm", import.meta.url),
|
|
17
16
|
"dotnet.native.u4s0h50lzp.js": new URL("../_framework/dotnet.native.u4s0h50lzp.js", import.meta.url),
|
|
17
|
+
"dotnet.native.vjqclesxwz.wasm": new URL("../_framework/dotnet.native.vjqclesxwz.wasm", import.meta.url),
|
|
18
18
|
"dotnet.runtime.r2kbxkuujc.js": new URL("../_framework/dotnet.runtime.r2kbxkuujc.js", import.meta.url),
|
|
19
19
|
"icudt_CJK.tjcz0u77k5.dat": new URL("../_framework/icudt_CJK.tjcz0u77k5.dat", import.meta.url),
|
|
20
20
|
"icudt_EFIGS.tptq2av103.dat": new URL("../_framework/icudt_EFIGS.tptq2av103.dat", import.meta.url),
|
|
@@ -48,11 +48,11 @@ export const FRAMEWORK_ASSETS = Object.freeze({
|
|
|
48
48
|
"Microsoft.Extensions.Options.0xyfq7w7oa.wasm": new URL("../_framework/Microsoft.Extensions.Options.0xyfq7w7oa.wasm", import.meta.url),
|
|
49
49
|
"Microsoft.Extensions.Options.ConfigurationExtensions.i146gqqpbz.wasm": new URL("../_framework/Microsoft.Extensions.Options.ConfigurationExtensions.i146gqqpbz.wasm", import.meta.url),
|
|
50
50
|
"Microsoft.Extensions.Primitives.l6yivxpywg.wasm": new URL("../_framework/Microsoft.Extensions.Primitives.l6yivxpywg.wasm", import.meta.url),
|
|
51
|
-
"PrefConfigurator.Abstractions.
|
|
52
|
-
"PrefConfigurator.Application.
|
|
53
|
-
"PrefConfigurator.Domain.
|
|
54
|
-
"PrefConfigurator.Infrastructure.
|
|
55
|
-
"PrefConfigurator.Wasm.
|
|
51
|
+
"PrefConfigurator.Abstractions.5unh6plrz8.wasm": new URL("../_framework/PrefConfigurator.Abstractions.5unh6plrz8.wasm", import.meta.url),
|
|
52
|
+
"PrefConfigurator.Application.lht256hpnv.wasm": new URL("../_framework/PrefConfigurator.Application.lht256hpnv.wasm", import.meta.url),
|
|
53
|
+
"PrefConfigurator.Domain.vjgzrzrzpr.wasm": new URL("../_framework/PrefConfigurator.Domain.vjgzrzrzpr.wasm", import.meta.url),
|
|
54
|
+
"PrefConfigurator.Infrastructure.v493olv9a8.wasm": new URL("../_framework/PrefConfigurator.Infrastructure.v493olv9a8.wasm", import.meta.url),
|
|
55
|
+
"PrefConfigurator.Wasm.jxhayl5imm.wasm": new URL("../_framework/PrefConfigurator.Wasm.jxhayl5imm.wasm", import.meta.url),
|
|
56
56
|
"System.Collections.Concurrent.390ky0pqgl.wasm": new URL("../_framework/System.Collections.Concurrent.390ky0pqgl.wasm", import.meta.url),
|
|
57
57
|
"System.Collections.NonGeneric.i1px07d5x7.wasm": new URL("../_framework/System.Collections.NonGeneric.i1px07d5x7.wasm", import.meta.url),
|
|
58
58
|
"System.Collections.q7fi5ntala.wasm": new URL("../_framework/System.Collections.q7fi5ntala.wasm", import.meta.url),
|
|
@@ -71,7 +71,7 @@ export const FRAMEWORK_ASSETS = Object.freeze({
|
|
|
71
71
|
"System.Net.Http.Json.wc5nuy2zud.wasm": new URL("../_framework/System.Net.Http.Json.wc5nuy2zud.wasm", import.meta.url),
|
|
72
72
|
"System.Net.Primitives.bj9o9f44vt.wasm": new URL("../_framework/System.Net.Primitives.bj9o9f44vt.wasm", import.meta.url),
|
|
73
73
|
"System.ObjectModel.sy91781t7k.wasm": new URL("../_framework/System.ObjectModel.sy91781t7k.wasm", import.meta.url),
|
|
74
|
-
"System.Private.CoreLib.
|
|
74
|
+
"System.Private.CoreLib.hpxnem4nhf.wasm": new URL("../_framework/System.Private.CoreLib.hpxnem4nhf.wasm", import.meta.url),
|
|
75
75
|
"System.Private.Uri.1f4wiknqo8.wasm": new URL("../_framework/System.Private.Uri.1f4wiknqo8.wasm", import.meta.url),
|
|
76
76
|
"System.Private.Xml.77ik27gbdx.wasm": new URL("../_framework/System.Private.Xml.77ik27gbdx.wasm", import.meta.url),
|
|
77
77
|
"System.Private.Xml.Linq.agasw0q3xn.wasm": new URL("../_framework/System.Private.Xml.Linq.agasw0q3xn.wasm", import.meta.url),
|
package/js/sdk-init.d.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
// PrefConfigurator WASM SDK — main-thread entry types.
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type {
|
|
4
|
+
CreateItemResponse,
|
|
5
|
+
EnhancedOptionList,
|
|
6
|
+
EnvJson,
|
|
7
|
+
HcProductStatusResult,
|
|
8
|
+
ModelImageConfig,
|
|
9
|
+
OptionList,
|
|
10
|
+
Scene,
|
|
11
|
+
SetOptionValueRequest,
|
|
12
|
+
SetOptionsResponse,
|
|
13
|
+
UpdateOptionsResponse,
|
|
14
|
+
UsdImagesRequest,
|
|
15
|
+
} from "./prefconfigurator-api";
|
|
4
16
|
|
|
5
17
|
export interface InitOptions {
|
|
6
18
|
/** Override the worker URL. Useful for tests or for serving the worker from a CDN. */
|
|
@@ -10,7 +22,7 @@ export interface InitOptions {
|
|
|
10
22
|
}
|
|
11
23
|
|
|
12
24
|
/**
|
|
13
|
-
* Disposable surface added to the
|
|
25
|
+
* Disposable surface added to the proxy returned by init().
|
|
14
26
|
* Calling either dispose() or terminate() shuts the worker down and rejects all pending calls.
|
|
15
27
|
*/
|
|
16
28
|
export interface SdkLifecycle {
|
|
@@ -19,21 +31,24 @@ export interface SdkLifecycle {
|
|
|
19
31
|
}
|
|
20
32
|
|
|
21
33
|
/**
|
|
22
|
-
* The proxy returned by init().
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* if a consumer calls it directly.
|
|
26
|
-
*
|
|
27
|
-
* NOTE: avoid `Omit<BoundApi<JsInteropApiRaw>, "InitializeFromEnvJson">`. Because
|
|
28
|
-
* JsInteropApiRaw declares a `[key: string]: unknown` index signature, Omit collapses
|
|
29
|
-
* the mapped half of BoundApi to the bare index signature, erasing every typed method.
|
|
30
|
-
* See https://github.com/microsoft/TypeScript/issues/31501.
|
|
34
|
+
* The proxy returned by init(). Each method forwards to the worker, JSON.stringify's
|
|
35
|
+
* object args, and unwraps the OperationResult<T> envelope automatically — consumers
|
|
36
|
+
* receive plain JS values and use try/catch for errors.
|
|
31
37
|
*/
|
|
32
|
-
export
|
|
38
|
+
export interface SdkApi extends SdkLifecycle {
|
|
39
|
+
GetOptions(itemId?: string): Promise<EnhancedOptionList>;
|
|
40
|
+
UpdateOptions(optionList: OptionList, optionsChanged: string[], itemId: string): Promise<UpdateOptionsResponse>;
|
|
41
|
+
CreateItem(modelCode: string, isPersistable: boolean): Promise<CreateItemResponse>;
|
|
42
|
+
SetOptions(modelId: string, updates: SetOptionValueRequest[]): Promise<SetOptionsResponse>;
|
|
43
|
+
GetScene(sceneName?: string, sceneFormat?: string, texturesRootPath?: string): Promise<Scene>;
|
|
44
|
+
GetModelImage(modelId: string, config: ModelImageConfig, sceneName?: string, optionList?: OptionList): Promise<string>;
|
|
45
|
+
GetUsdImages(request: UsdImagesRequest, optionList?: OptionList): Promise<string[]>;
|
|
46
|
+
GetUsdImagesHcStatus(request: UsdImagesRequest, optionList: OptionList): Promise<HcProductStatusResult[]>;
|
|
47
|
+
}
|
|
33
48
|
|
|
34
49
|
/**
|
|
35
|
-
* Boots the SDK runtime inside a Web Worker and resolves to a proxy that
|
|
36
|
-
*
|
|
37
|
-
*
|
|
50
|
+
* Boots the SDK runtime inside a Web Worker and resolves to a proxy that JSON.stringify's
|
|
51
|
+
* object args for the engine and unwraps OperationResult<T> envelopes via the internal
|
|
52
|
+
* ensureOk helper before resolving.
|
|
38
53
|
*/
|
|
39
54
|
export declare function init(env: EnvJson | string, opts?: InitOptions): Promise<SdkApi>;
|
package/js/sdk-init.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
// imports, so the worker is kept leaf and we hand it pre-resolved URLs over the init
|
|
11
11
|
// message. See docs/wasm-worker-init.md.
|
|
12
12
|
|
|
13
|
-
import { ensureOk } from "./
|
|
13
|
+
import { ensureOk } from "./_operation-result.js";
|
|
14
14
|
import { FRAMEWORK_ASSETS } from "./sdk-framework-assets.js";
|
|
15
15
|
|
|
16
16
|
// new URL(literal, import.meta.url) is the bundler-recognized pattern; webpack 5 / Vite /
|
|
@@ -58,7 +58,6 @@ const ARG_ADAPTERS = {
|
|
|
58
58
|
JSON.stringify(request),
|
|
59
59
|
JSON.stringify(optionList ?? null),
|
|
60
60
|
],
|
|
61
|
-
GetModelImageHcStatus: ([modelId, config]) => [modelId, JSON.stringify(config)],
|
|
62
61
|
};
|
|
63
62
|
|
|
64
63
|
// InitializeFromEnvJson is implicit — init() runs it during boot and the Proxy hides it.
|
package/package.json
CHANGED
|
@@ -1,34 +1,36 @@
|
|
|
1
1
|
{
|
|
2
|
+
"private": false,
|
|
2
3
|
"author": "Alex Moreno Palacio <amoreno@preference.es>",
|
|
3
4
|
"exports": {
|
|
4
|
-
"./js/sdk-worker": "./js/sdk-worker.js",
|
|
5
|
-
"./_framework/*": "./_framework/*",
|
|
6
5
|
".": {
|
|
7
|
-
"
|
|
8
|
-
"
|
|
6
|
+
"types": "./index.d.ts",
|
|
7
|
+
"default": "./index.js"
|
|
9
8
|
},
|
|
9
|
+
"./index.html": "./index.html",
|
|
10
|
+
"./package.json": "./package.json",
|
|
10
11
|
"./js/sdk-init": {
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
},
|
|
14
|
-
"./js/prefconfigurator-api": {
|
|
15
|
-
"default": "./js/prefconfigurator-api.js",
|
|
16
|
-
"types": "./js/prefconfigurator-api.d.ts"
|
|
12
|
+
"types": "./js/sdk-init.d.ts",
|
|
13
|
+
"default": "./js/sdk-init.js"
|
|
17
14
|
},
|
|
15
|
+
"./js/sdk-worker": "./js/sdk-worker.js",
|
|
16
|
+
"./_framework/*": "./_framework/*",
|
|
18
17
|
"./js/*": {
|
|
19
|
-
"
|
|
20
|
-
"
|
|
18
|
+
"types": "./js/*.d.ts",
|
|
19
|
+
"default": "./js/*.js"
|
|
21
20
|
},
|
|
22
|
-
"./
|
|
23
|
-
|
|
21
|
+
"./js/prefconfigurator-api": {
|
|
22
|
+
"types": "./js/prefconfigurator-api.d.ts",
|
|
23
|
+
"default": "./js/prefconfigurator-api.js"
|
|
24
|
+
}
|
|
24
25
|
},
|
|
25
|
-
"version": "0.3.0-beta.
|
|
26
|
-
"description": ".NET WebAssembly SDK that embeds Preference's business logic for building product configurators (windows, doors, joinery) in browser-based ecommerce platforms.",
|
|
26
|
+
"version": "0.3.0-beta.15",
|
|
27
27
|
"name": "@preference-sl/pref-configurator-sdk",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
28
|
+
"description": ".NET WebAssembly SDK that embeds Preference's business logic for building product configurators (windows, doors, joinery) in browser-based ecommerce platforms.",
|
|
29
|
+
"license": "MIT",
|
|
30
|
+
"module": "index.js",
|
|
30
31
|
"main": "index.js",
|
|
31
|
-
"
|
|
32
|
+
"sideEffects": false,
|
|
33
|
+
"type": "module",
|
|
32
34
|
"files": [
|
|
33
35
|
"_framework/**",
|
|
34
36
|
"**/*.js",
|
|
@@ -37,7 +39,5 @@
|
|
|
37
39
|
"index.html",
|
|
38
40
|
"README.md"
|
|
39
41
|
],
|
|
40
|
-
"
|
|
41
|
-
"sideEffects": false,
|
|
42
|
-
"license": "MIT"
|
|
42
|
+
"types": "index.d.ts"
|
|
43
43
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|