@roomle/web-sdk 5.0.0-alpha.1 → 5.0.0-alpha.3
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/lib/ConfiguratorKernel.wasm +0 -0
- package/lib/RoomleCore.wasm +0 -0
- package/lib/RoomleToolsCore.wasm +0 -0
- package/lib/{api-hQ0uOklW.mjs → api-BxmKgu9j.mjs} +2 -2
- package/lib/{api-hQ0uOklW.mjs.map → api-BxmKgu9j.mjs.map} +1 -1
- package/lib/asset-loader.worker-eqHzNAwa.mjs.map +1 -1
- package/lib/budgeteer.sw-BUMElkO1.mjs.map +1 -1
- package/lib/configurator-C7xmJwai.mjs +2 -0
- package/lib/{configurator-CVg8_f9w.mjs → configurator-C_yEkgLK.mjs} +3 -3
- package/lib/{configurator-CVg8_f9w.mjs.map → configurator-C_yEkgLK.mjs.map} +1 -1
- package/lib/glb-viewer-BGoRQgDS.mjs +2 -0
- package/lib/{glb-viewer-Csx9GwVi.mjs → glb-viewer-eagko6uS.mjs} +3 -3
- package/lib/{glb-viewer-Csx9GwVi.mjs.map → glb-viewer-eagko6uS.mjs.map} +1 -1
- package/lib/{homag-intelligence-Dh4VWYH6.mjs → homag-intelligence-CoVomYm0.mjs} +3 -3
- package/lib/{homag-intelligence-Dh4VWYH6.mjs.map → homag-intelligence-CoVomYm0.mjs.map} +1 -1
- package/lib/{material-viewer-DqUJzRXN.mjs → material-viewer-BKdC2g0S.mjs} +3 -3
- package/lib/{material-viewer-DqUJzRXN.mjs.map → material-viewer-BKdC2g0S.mjs.map} +1 -1
- package/lib/{packages-Bz8iWtUY.mjs → packages-C-_oZzj7.mjs} +5 -5
- package/lib/{packages-Bz8iWtUY.mjs.map → packages-C-_oZzj7.mjs.map} +1 -1
- package/lib/planner-BXuQBuos.mjs +2 -0
- package/lib/{planner-CpcR6z07.mjs → planner-jaBJ_YJc.mjs} +3 -3
- package/lib/{planner-CpcR6z07.mjs.map → planner-jaBJ_YJc.mjs.map} +1 -1
- package/lib/roomle-headless.d.ts +20 -0
- package/lib/roomle-headless.js +7 -7
- package/lib/roomle-renderer-FUqNfNIf.mjs.map +1 -1
- package/lib/{roomle-sdk-BCmaueGp.mjs → roomle-sdk-BmPd9eaY.mjs} +94 -58
- package/lib/roomle-sdk-BmPd9eaY.mjs.map +1 -0
- package/lib/roomle-sdk.d.ts +20 -0
- package/lib/roomle-sdk.js +6 -6
- package/lib/{script-loader-Dmcvx-Qu.mjs → script-loader-BrvaxyRP.mjs} +2 -2
- package/lib/{script-loader-Dmcvx-Qu.mjs.map → script-loader-BrvaxyRP.mjs.map} +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
- package/lib/{tools-core-CRWZtE-S.mjs → tools-core-CMfJ4fmh.mjs} +3 -3
- package/lib/{tools-core-CRWZtE-S.mjs.map → tools-core-CMfJ4fmh.mjs.map} +1 -1
- package/package.json +2 -2
- package/lib/configurator-BM0nny5l.mjs +0 -2
- package/lib/glb-viewer-gEdln_PJ.mjs +0 -2
- package/lib/planner-g06Phdjc.mjs +0 -2
- package/lib/roomle-sdk-BCmaueGp.mjs.map +0 -1
package/lib/roomle-sdk.d.ts
CHANGED
|
@@ -437,6 +437,11 @@ export declare class CameraControl3D extends CameraControl {
|
|
|
437
437
|
private _zoomSpeed;
|
|
438
438
|
minDistance: number;
|
|
439
439
|
maxDistance: number;
|
|
440
|
+
/**
|
|
441
|
+
* When enabled the camera is not stopped by the bounds it was fitted to, it can be
|
|
442
|
+
* zoomed in until {@link _zoomDistance} - see the `configuratorZoom` init param.
|
|
443
|
+
*/
|
|
444
|
+
configuratorZoom: boolean;
|
|
440
445
|
resetDistance: number;
|
|
441
446
|
minPolarAngle: number;
|
|
442
447
|
maxPolarAngle: number;
|
|
@@ -4145,6 +4150,7 @@ export declare class InitData implements Context, Omit<InitDataDefinition, 'colo
|
|
|
4145
4150
|
readonly: boolean;
|
|
4146
4151
|
externalObjectSettings: ExternalObjectApiConfiguration;
|
|
4147
4152
|
plannerIsolationConfigurator: boolean;
|
|
4153
|
+
configuratorZoom: boolean;
|
|
4148
4154
|
/**
|
|
4149
4155
|
* If true, the callbacks will only be called if the geometry is ready.
|
|
4150
4156
|
* Before RML-8368 false was the default. For more info see there
|
|
@@ -5862,6 +5868,14 @@ export declare interface PlannerInitData {
|
|
|
5862
5868
|
* The default value is true.
|
|
5863
5869
|
*/
|
|
5864
5870
|
dockInRoom?: boolean;
|
|
5871
|
+
/**
|
|
5872
|
+
* @description If set to true the 3D planner camera zooms in as close to objects as the configurator does,
|
|
5873
|
+
* instead of stopping at the bounds of the plan. Objects which would be cut by the camera near plane are
|
|
5874
|
+
* hidden while they are cut.
|
|
5875
|
+
* @default false
|
|
5876
|
+
* usage: configuratorZoom=false
|
|
5877
|
+
*/
|
|
5878
|
+
configuratorZoom?: boolean;
|
|
5865
5879
|
}
|
|
5866
5880
|
|
|
5867
5881
|
export declare class PlannerKernelAccess extends ConfiguratorKernelAccess {
|
|
@@ -6291,6 +6305,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
|
|
|
6291
6305
|
private _handleMeasurementLineDraggablePoints;
|
|
6292
6306
|
resetConfiguratorContext(reason: CancelSelectionReasons): void;
|
|
6293
6307
|
protected _setupScene(offset?: CanvasOffset, transparent?: boolean): Promise<void>;
|
|
6308
|
+
protected _changeCameraBehaviour(cameraBehaviour: CameraBehaviour): void;
|
|
6294
6309
|
protected onBeforeRender(): void;
|
|
6295
6310
|
private _resetCameraFacingVisibility;
|
|
6296
6311
|
private _forceWallsAndCeiling;
|
|
@@ -6691,6 +6706,9 @@ export declare class PlanViewModel extends ConfiguratorViewModel implements Plan
|
|
|
6691
6706
|
private _wallAtticsGroup;
|
|
6692
6707
|
private _helpLineGroup;
|
|
6693
6708
|
private _plannerSceneEventHandler;
|
|
6709
|
+
private _cameraHideSphere;
|
|
6710
|
+
private readonly _cameraHideViewModelGroups;
|
|
6711
|
+
private _objectsHiddenByCamera;
|
|
6694
6712
|
private _cameraType;
|
|
6695
6713
|
private _nodeZoom;
|
|
6696
6714
|
private _latestWallPlanObjectViewModel;
|
|
@@ -6811,6 +6829,8 @@ export declare class PlanViewModel extends ConfiguratorViewModel implements Plan
|
|
|
6811
6829
|
getBoundingBoxFromRuntimeIds(runtimeIds: number[]): Box3;
|
|
6812
6830
|
hideAllExceptRuntimeIds(runtimeIds: number[]): void;
|
|
6813
6831
|
hideAllExcept(planObjectId: number): void;
|
|
6832
|
+
hideObjectsCutByCamera(camera: PerspectiveCamera): boolean;
|
|
6833
|
+
restoreObjectsHiddenByCamera(): boolean;
|
|
6814
6834
|
showAll(): void;
|
|
6815
6835
|
planHistoryStateChanged(): void;
|
|
6816
6836
|
setNodeVisibility(visible: boolean): void;
|
package/lib/roomle-sdk.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as e, i as t, n, r, t as i } from "./packages-
|
|
1
|
+
import { a as e, i as t, n, r, t as i } from "./packages-C-_oZzj7.mjs";
|
|
2
2
|
import { i as a, t as o } from "./kernel-BWfRHWkW.mjs";
|
|
3
3
|
import { bt as s, gt as c } from "./threejs-utils-D5DMIzUO.mjs";
|
|
4
|
-
import { F as l, G as u, J as d, K as f, M as p, N as m, P as h, S as g, W as _, b as v, ct as y, dt as b, j as x, k as S, lt as C, mt as w, q as T, t as E, u as D, ut as O, x as k, y as A, z as j } from "./roomle-sdk-
|
|
5
|
-
import { t as M } from "./configurator-
|
|
6
|
-
import { t as N } from "./planner-
|
|
7
|
-
import { n as P, t as F } from "./glb-viewer-
|
|
8
|
-
import { t as I } from "./api-
|
|
4
|
+
import { F as l, G as u, J as d, K as f, M as p, N as m, P as h, S as g, W as _, b as v, ct as y, dt as b, j as x, k as S, lt as C, mt as w, q as T, t as E, u as D, ut as O, x as k, y as A, z as j } from "./roomle-sdk-BmPd9eaY.mjs";
|
|
5
|
+
import { t as M } from "./configurator-C_yEkgLK.mjs";
|
|
6
|
+
import { t as N } from "./planner-jaBJ_YJc.mjs";
|
|
7
|
+
import { n as P, t as F } from "./glb-viewer-eagko6uS.mjs";
|
|
8
|
+
import { t as I } from "./api-BxmKgu9j.mjs";
|
|
9
9
|
export { o as CONFIGURATION_TYPE, c as CORE_EDGE_TYPE, s as CORE_OBJECT_CATEGORY, a as CORE_PERMISSION_TO_DELETE, M as Configurator, x as FloorPlanElementViewModel, F as GlbViewer, j as HI_CONTEXT_ACTION, g as MeasurementLinePlanElementViewModel, A as PLAN_ELEMENT_CHANGE_TYPES, l as PlanElementViewModel, h as PlanObjectViewModel, N as Planner, y as RapiAccess, C as RapiInvalidIdError, O as RapiOfflineError, I as RoomDesignerApi, S as RoomleConfigurator, P as RoomleGLBViewer, w as RoomleLightSource, D as RoomlePlanner, E as RoomleSdk, m as StaticPlanObjectViewModel, p as WallPlanElementViewModel, _ as createExtObj, d as createExtObjId, b as getCatalogIdFromConfigurationHash, u as isExtObjId, f as isExternalObject, v as isFirefox, i as isIdAComponent, n as isIdAConfigurationString, r as isIdAPlan, t as isIdAnItem, e as isPlanSnapshotId, k as isSafari, T as removeExtObjIdPrefix };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as e, r as t, t as n } from "./decorate-CjaqqbUP.mjs";
|
|
2
|
-
import { U as r, it as i } from "./roomle-sdk-
|
|
2
|
+
import { U as r, it as i } from "./roomle-sdk-BmPd9eaY.mjs";
|
|
3
3
|
//#region ../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url
|
|
4
4
|
var a = "" + new URL("ConfiguratorKernel.wasm", import.meta.url).href, o = "" + new URL("ConfiguratorKernel.js", import.meta.url).href, s = "" + new URL("RoomleCore.wasm", import.meta.url).href, c = "" + new URL("RoomleCore.js", import.meta.url).href, l = "" + new URL("RoomleToolsCore.wasm", import.meta.url).href, u = "" + new URL("RoomleToolsCore.js", import.meta.url).href, d = {
|
|
5
5
|
configurator: {
|
|
@@ -83,4 +83,4 @@ n([t, e("design:type", Object)], _.prototype, "_singlePromiseFactory", void 0);
|
|
|
83
83
|
//#endregion
|
|
84
84
|
export { p as n, _ as t };
|
|
85
85
|
|
|
86
|
-
//# sourceMappingURL=script-loader-
|
|
86
|
+
//# sourceMappingURL=script-loader-BrvaxyRP.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-loader-Dmcvx-Qu.mjs","names":[],"sources":["../../../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.js?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.js?no-inline?url","../../packages/common-core/src/static-files/roomle-core.ts","../../packages/common-core/src/script-loader.ts"],"sourcesContent":["export default \"__VITE_ASSET__cLZLOsSELI_GmwKcVOKKRw__\"","export default \"__VITE_ASSET__6kssa3xCT2YlMpIbbRNP$Q__\"","export default \"__VITE_ASSET___ewJD0zO9$SsiDvawfmAUw__\"","export default \"__VITE_ASSET__aLISaAY6NSiJFT$6GdtrfA__\"","export default \"__VITE_ASSET__U2YZxvNlcnuoWcGKwa9Wsw__\"","export default \"__VITE_ASSET__DUq8YoikZLXEejpNZ1KQvg__\"","// @ts-ignore -- Uses vite to reference files as URLs.\nimport CONFIGURATOR_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport CONFIGURATOR_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/ConfiguratorKernel.js?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport PLANNER_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleCore.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport PLANNER_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleCore.js?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport TOOLS_CORE_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport TOOLS_CORE_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleToolsCore.js?no-inline?url';\n\nconst WASM_FILES: Record<string, { loader: string; wasm: string }> = {\n configurator: {\n loader: 'ConfiguratorKernel.js',\n wasm: 'ConfiguratorKernel.wasm',\n },\n planner: { loader: 'RoomleCore.js', wasm: 'RoomleCore.wasm' },\n tools: { loader: 'RoomleToolsCore.js', wasm: 'RoomleToolsCore.wasm' },\n};\n\n// The wasm paths returned by this function are specific to browsers (not headless):\nexport const getWasmPath = (type: 'configurator' | 'planner' | 'tools') => {\n if (type === 'planner') {\n return {\n wasm: PLANNER_WASM_MODERN_FILE_NAME,\n loader: PLANNER_LOADER_MODERN_FILE_NAME,\n };\n }\n if (type === 'tools') {\n return {\n wasm: TOOLS_CORE_WASM_MODERN_FILE_NAME,\n loader: TOOLS_CORE_LOADER_MODERN_FILE_NAME,\n };\n }\n return {\n wasm: CONFIGURATOR_WASM_MODERN_FILE_NAME,\n loader: CONFIGURATOR_LOADER_MODERN_FILE_NAME,\n };\n};\n\n// Resolve WASM module paths for headless (Node.js/Bun) mode.\n// Strategies (tried in order):\n// 1. import.meta.resolve('roomle-core-hsc/...') — works when running from\n// source in the monorepo where roomle-core-hsc is in node_modules, and\n// the module resolver can walk up to it from the current file's location.\n// 2. Files directly in the same directory as this bundle — works when the SDK\n// is consumed as a built package (dist/lib/), where vite-plugin-static-copy\n// places ConfiguratorKernel.wasm etc. alongside the bundle chunks.\n// 3. Legacy static/ subdirectory — kept as a final fallback for older dist\n// layouts where vite-plugin-static-copy targeted dist/lib/static/.\nexport const getHeadlessWasmPath = (\n type: 'configurator' | 'planner' | 'tools',\n): { loader: string; wasm: string } => {\n const entry = WASM_FILES[type];\n const moduleSpecifiers = {\n loader: `roomle-core-hsc/wasm_modern/${entry.loader}`,\n wasm: `roomle-core-hsc/wasm_modern/${entry.wasm}`,\n };\n\n const toPath = (url: string) =>\n url.startsWith('file://') ? url.slice(7) : url;\n\n // Strategy 1: resolve from node_modules (source / monorepo).\n // May fail when the consuming project's module resolver cannot reach\n // roomle-core-hsc (e.g. when web-sdk is installed via a file: reference\n // and symlink resolution stops before reaching the monorepo node_modules).\n try {\n return {\n loader: toPath(import.meta.resolve(moduleSpecifiers.loader)),\n wasm: toPath(import.meta.resolve(moduleSpecifiers.wasm)),\n };\n } catch {\n // roomle-core-hsc not reachable — fall through to bundle-relative lookup\n }\n\n // Strategy 2: files copied directly alongside the bundle (current dist layout).\n // vite-plugin-static-copy places ConfiguratorKernel.wasm / RoomleCore.wasm\n // etc. in dist/lib/ next to the JS chunks. import.meta.url of any chunk in\n // that directory has bundleDir = dist/lib/, so the files are found directly.\n const bundleDir = toPath(import.meta.url).replace(/\\/[^/]+$/, '');\n return {\n loader: `${bundleDir}/${entry.loader}`,\n wasm: `${bundleDir}/${entry.wasm}`,\n };\n};\n\nexport {\n CONFIGURATOR_WASM_MODERN_FILE_NAME,\n CONFIGURATOR_LOADER_MODERN_FILE_NAME,\n PLANNER_WASM_MODERN_FILE_NAME,\n PLANNER_LOADER_MODERN_FILE_NAME,\n TOOLS_CORE_WASM_MODERN_FILE_NAME,\n TOOLS_CORE_LOADER_MODERN_FILE_NAME,\n};\n","import Benchmark from './utils/benchmark';\nimport inject from './di/inject';\nimport type SinglePromiseFactory from './utils/single-promise-factory';\nimport { PROMISE_CATEGORY } from './utils/single-promise-factory';\nimport type { Context } from './di/context';\nimport { getWasmPath } from './static-files/roomle-core';\n\nlet _scriptCache: { [key: string]: boolean } = {};\nlet _idCache: { [key: string]: boolean } = {};\n\nfunction attachScript(\n url: string,\n options: { id: string },\n resolve: (value?: any) => void,\n reject: (error?: any) => void,\n) {\n if (_scriptCache[url]) {\n return resolve();\n }\n if (options.id && _idCache[options.id]) {\n return reject(\n new Error('There is already a script with ID \"' + options.id + '\"'),\n );\n }\n\n const mark = Benchmark.start('load_' + options.id.replace(/-/g, '_'));\n const element = document.createElement('script');\n element.async = false;\n element.src = url;\n element.id = options.id;\n element.onload = () => {\n _scriptCache[url] = true;\n _idCache[options.id] = true;\n Benchmark.end(mark);\n Object.defineProperty(resolve, 'name', { value: 'resolve-' + options.id });\n resolve();\n };\n element.onerror = (error) => {\n reject(error);\n };\n document.body.appendChild(element);\n}\n\nexport interface ScriptData {\n name: string;\n id: string;\n}\n\nexport default class ScriptLoader implements Context {\n public _creator_: string;\n\n @inject\n private _singlePromiseFactory: SinglePromiseFactory;\n\n constructor(creator: string) {\n this._creator_ = creator;\n }\n\n public fetch(url: string, options: { id: string }) {\n return this._singlePromiseFactory.create(\n PROMISE_CATEGORY.FETCH_SCRIPT,\n url,\n (resolve, reject) => {\n attachScript(url, options, resolve, reject);\n },\n );\n }\n\n public loadScripts(scripts: ScriptData[]) {\n const promises: any = [];\n scripts.forEach((script: any) => {\n let scriptLoadPromise = this.fetch(script.name, { id: script.id });\n promises.push(scriptLoadPromise);\n });\n return Promise.all(promises);\n }\n\n public resolveKernelPaths(type: 'configurator' | 'planner' | 'tools'): {\n wasm: string;\n loader: string;\n } {\n return getWasmPath(type);\n }\n\n public cleanUp() {\n for (let key in _idCache) {\n /* istanbul ignore else */\n if (_idCache.hasOwnProperty(key)) {\n const script = document.getElementById(key);\n if (script) {\n script.parentElement?.removeChild(script);\n }\n }\n }\n _scriptCache = {};\n _idCache = {};\n }\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"script-loader-BrvaxyRP.mjs","names":[],"sources":["../../../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.js?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.js?no-inline?url","../../packages/common-core/src/static-files/roomle-core.ts","../../packages/common-core/src/script-loader.ts"],"sourcesContent":["export default \"__VITE_ASSET__m8R6TgWxwop2r_xOIPNRtg__\"","export default \"__VITE_ASSET__dJ$ULFcuzX43djbIEsCZPw__\"","export default \"__VITE_ASSET__rN_1li4k2aIbHGs0zKW8QQ__\"","export default \"__VITE_ASSET__BjjUHagISQHtPWYmu3KuwQ__\"","export default \"__VITE_ASSET___ewJD0zO9$SsiDvawfmAUw__\"","export default \"__VITE_ASSET__6kssa3xCT2YlMpIbbRNP$Q__\"","// @ts-ignore -- Uses vite to reference files as URLs.\nimport CONFIGURATOR_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport CONFIGURATOR_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/ConfiguratorKernel.js?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport PLANNER_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleCore.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport PLANNER_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleCore.js?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport TOOLS_CORE_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport TOOLS_CORE_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleToolsCore.js?no-inline?url';\n\nconst WASM_FILES: Record<string, { loader: string; wasm: string }> = {\n configurator: {\n loader: 'ConfiguratorKernel.js',\n wasm: 'ConfiguratorKernel.wasm',\n },\n planner: { loader: 'RoomleCore.js', wasm: 'RoomleCore.wasm' },\n tools: { loader: 'RoomleToolsCore.js', wasm: 'RoomleToolsCore.wasm' },\n};\n\n// The wasm paths returned by this function are specific to browsers (not headless):\nexport const getWasmPath = (type: 'configurator' | 'planner' | 'tools') => {\n if (type === 'planner') {\n return {\n wasm: PLANNER_WASM_MODERN_FILE_NAME,\n loader: PLANNER_LOADER_MODERN_FILE_NAME,\n };\n }\n if (type === 'tools') {\n return {\n wasm: TOOLS_CORE_WASM_MODERN_FILE_NAME,\n loader: TOOLS_CORE_LOADER_MODERN_FILE_NAME,\n };\n }\n return {\n wasm: CONFIGURATOR_WASM_MODERN_FILE_NAME,\n loader: CONFIGURATOR_LOADER_MODERN_FILE_NAME,\n };\n};\n\n// Resolve WASM module paths for headless (Node.js/Bun) mode.\n// Strategies (tried in order):\n// 1. import.meta.resolve('roomle-core-hsc/...') — works when running from\n// source in the monorepo where roomle-core-hsc is in node_modules, and\n// the module resolver can walk up to it from the current file's location.\n// 2. Files directly in the same directory as this bundle — works when the SDK\n// is consumed as a built package (dist/lib/), where vite-plugin-static-copy\n// places ConfiguratorKernel.wasm etc. alongside the bundle chunks.\n// 3. Legacy static/ subdirectory — kept as a final fallback for older dist\n// layouts where vite-plugin-static-copy targeted dist/lib/static/.\nexport const getHeadlessWasmPath = (\n type: 'configurator' | 'planner' | 'tools',\n): { loader: string; wasm: string } => {\n const entry = WASM_FILES[type];\n const moduleSpecifiers = {\n loader: `roomle-core-hsc/wasm_modern/${entry.loader}`,\n wasm: `roomle-core-hsc/wasm_modern/${entry.wasm}`,\n };\n\n const toPath = (url: string) =>\n url.startsWith('file://') ? url.slice(7) : url;\n\n // Strategy 1: resolve from node_modules (source / monorepo).\n // May fail when the consuming project's module resolver cannot reach\n // roomle-core-hsc (e.g. when web-sdk is installed via a file: reference\n // and symlink resolution stops before reaching the monorepo node_modules).\n try {\n return {\n loader: toPath(import.meta.resolve(moduleSpecifiers.loader)),\n wasm: toPath(import.meta.resolve(moduleSpecifiers.wasm)),\n };\n } catch {\n // roomle-core-hsc not reachable — fall through to bundle-relative lookup\n }\n\n // Strategy 2: files copied directly alongside the bundle (current dist layout).\n // vite-plugin-static-copy places ConfiguratorKernel.wasm / RoomleCore.wasm\n // etc. in dist/lib/ next to the JS chunks. import.meta.url of any chunk in\n // that directory has bundleDir = dist/lib/, so the files are found directly.\n const bundleDir = toPath(import.meta.url).replace(/\\/[^/]+$/, '');\n return {\n loader: `${bundleDir}/${entry.loader}`,\n wasm: `${bundleDir}/${entry.wasm}`,\n };\n};\n\nexport {\n CONFIGURATOR_WASM_MODERN_FILE_NAME,\n CONFIGURATOR_LOADER_MODERN_FILE_NAME,\n PLANNER_WASM_MODERN_FILE_NAME,\n PLANNER_LOADER_MODERN_FILE_NAME,\n TOOLS_CORE_WASM_MODERN_FILE_NAME,\n TOOLS_CORE_LOADER_MODERN_FILE_NAME,\n};\n","import Benchmark from './utils/benchmark';\nimport inject from './di/inject';\nimport type SinglePromiseFactory from './utils/single-promise-factory';\nimport { PROMISE_CATEGORY } from './utils/single-promise-factory';\nimport type { Context } from './di/context';\nimport { getWasmPath } from './static-files/roomle-core';\n\nlet _scriptCache: { [key: string]: boolean } = {};\nlet _idCache: { [key: string]: boolean } = {};\n\nfunction attachScript(\n url: string,\n options: { id: string },\n resolve: (value?: any) => void,\n reject: (error?: any) => void,\n) {\n if (_scriptCache[url]) {\n return resolve();\n }\n if (options.id && _idCache[options.id]) {\n return reject(\n new Error('There is already a script with ID \"' + options.id + '\"'),\n );\n }\n\n const mark = Benchmark.start('load_' + options.id.replace(/-/g, '_'));\n const element = document.createElement('script');\n element.async = false;\n element.src = url;\n element.id = options.id;\n element.onload = () => {\n _scriptCache[url] = true;\n _idCache[options.id] = true;\n Benchmark.end(mark);\n Object.defineProperty(resolve, 'name', { value: 'resolve-' + options.id });\n resolve();\n };\n element.onerror = (error) => {\n reject(error);\n };\n document.body.appendChild(element);\n}\n\nexport interface ScriptData {\n name: string;\n id: string;\n}\n\nexport default class ScriptLoader implements Context {\n public _creator_: string;\n\n @inject\n private _singlePromiseFactory: SinglePromiseFactory;\n\n constructor(creator: string) {\n this._creator_ = creator;\n }\n\n public fetch(url: string, options: { id: string }) {\n return this._singlePromiseFactory.create(\n PROMISE_CATEGORY.FETCH_SCRIPT,\n url,\n (resolve, reject) => {\n attachScript(url, options, resolve, reject);\n },\n );\n }\n\n public loadScripts(scripts: ScriptData[]) {\n const promises: any = [];\n scripts.forEach((script: any) => {\n let scriptLoadPromise = this.fetch(script.name, { id: script.id });\n promises.push(scriptLoadPromise);\n });\n return Promise.all(promises);\n }\n\n public resolveKernelPaths(type: 'configurator' | 'planner' | 'tools'): {\n wasm: string;\n loader: string;\n } {\n return getWasmPath(type);\n }\n\n public cleanUp() {\n for (let key in _idCache) {\n /* istanbul ignore else */\n if (_idCache.hasOwnProperty(key)) {\n const script = document.getElementById(key);\n if (script) {\n script.parentElement?.removeChild(script);\n }\n }\n }\n _scriptCache = {};\n _idCache = {};\n }\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name": "roomle-core-hsc", "version": "2.84.0-alpha.
|
|
1
|
+
{"name": "roomle-core-hsc", "version": "2.84.0-alpha.13" }
|
package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm
CHANGED
|
Binary file
|
|
Binary file
|
package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm
CHANGED
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { H as e, V as t, n, st as r } from "./roomle-sdk-
|
|
2
|
-
import { t as i } from "./script-loader-
|
|
1
|
+
import { H as e, V as t, n, st as r } from "./roomle-sdk-BmPd9eaY.mjs";
|
|
2
|
+
import { t as i } from "./script-loader-BrvaxyRP.mjs";
|
|
3
3
|
//#region packages/tools-core/src/utils/injectables.ts
|
|
4
4
|
var a = [new r("script-loader", i)], o = class extends e {
|
|
5
5
|
setupGlobals() {}
|
|
@@ -27,4 +27,4 @@ var a = [new r("script-loader", i)], o = class extends e {
|
|
|
27
27
|
//#endregion
|
|
28
28
|
export { o as ToolsCore };
|
|
29
29
|
|
|
30
|
-
//# sourceMappingURL=tools-core-
|
|
30
|
+
//# sourceMappingURL=tools-core-CMfJ4fmh.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools-core-
|
|
1
|
+
{"version":3,"file":"tools-core-CMfJ4fmh.mjs","names":[],"sources":["../../packages/tools-core/src/utils/injectables.ts","../../packages/tools-core/src/tools-core.ts"],"sourcesContent":["import ScriptLoader from '../../../common-core/src/script-loader';\nimport { DependencyInjectionAssignment } from '../../../common-core/src/di/container';\n\nexport const INJECTABLES: DependencyInjectionAssignment[] = [\n new DependencyInjectionAssignment('script-loader', ScriptLoader),\n];\n","import './utils/global-definitions';\n\nimport { Main, BASE_CONTEXT } from '../../common-core/src/main';\nimport type Logger from '../../common-core/src/logger';\nimport RoomleDependencyInjection from '../../common-core/src/di/roomle-dependency-injection';\nimport type RoomleToolsCore from './roomle-tools-core';\nimport type ScriptLoader from '../../common-core/src/script-loader';\nimport { INJECTABLES } from './utils/injectables';\n\nexport class ToolsCore extends Main {\n private _tools: RoomleToolsCore | undefined;\n\n protected setupGlobals(): void {\n //globals are initialized in bootFinished()\n }\n\n protected setupDependencies(): void {\n RoomleDependencyInjection.setup(INJECTABLES);\n this.lookup<Logger>('logger', this._context);\n }\n\n protected cleanUpGlobals(): void {\n this._tools = undefined;\n if (window.RoomleToolsCore) {\n delete window.RoomleToolsCore;\n }\n }\n\n protected cleanUpDependencies(): void {\n const scriptLoader = this.lookup<ScriptLoader>('script-loader');\n if (scriptLoader) {\n scriptLoader.cleanUp();\n }\n }\n\n protected async bootFinished(): Promise<void> {\n this._tools = this.lookup<RoomleToolsCore>(\n 'roomle-tools-core',\n this._context,\n );\n\n if (!window.RoomleToolsCore) {\n window.RoomleToolsCore = this._tools;\n }\n }\n\n public getApi(): RoomleToolsCore {\n if (this._tools === undefined) {\n throw new Error('ToolsCore not initialized. Call boot() first.');\n }\n return this._tools;\n }\n\n protected getContextName(): string {\n return BASE_CONTEXT.TOOLS_CORE;\n }\n}\n"],"mappings":";;;AAGA,IAAa,IAA+C,CAC1D,IAAI,EAA8B,iBAAiB,EAAa,CACjE,ECIY,IAAb,cAA+B,EAAK;CAGlC,eAA+B;CAI/B,oBAAoC;AAElC,EADA,EAA0B,MAAM,EAAY,EAC5C,KAAK,OAAe,UAAU,KAAK,SAAS;;CAG9C,iBAAiC;AAE/B,EADA,KAAK,SAAS,KAAA,GACV,OAAO,mBACT,OAAO,OAAO;;CAIlB,sBAAsC;EACpC,IAAM,IAAe,KAAK,OAAqB,gBAAgB;AAC/D,EAAI,KACF,EAAa,SAAS;;CAI1B,MAAgB,eAA8B;AAM5C,EALA,KAAK,SAAS,KAAK,OACjB,qBACA,KAAK,SACN,EAEI,OAAO,oBACV,OAAO,kBAAkB,KAAK;;CAIlC,SAAiC;AAC/B,MAAI,KAAK,WAAW,KAAA,EAClB,OAAU,MAAM,gDAAgD;AAElE,SAAO,KAAK;;CAGd,iBAAmC;AACjC,SAAO,EAAa"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@roomle/web-sdk",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
3
|
+
"version": "5.0.0-alpha.3",
|
|
4
4
|
"description": "Roomle Web SDK",
|
|
5
5
|
"author": "Roomle Development",
|
|
6
|
-
"main": "./lib/roomle-sdk-
|
|
6
|
+
"main": "./lib/roomle-sdk-BmPd9eaY.mjs",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"release": "node ../scripts/run-semantic-release.mjs"
|
|
9
9
|
},
|
package/lib/planner-g06Phdjc.mjs
DELETED