atriusmaps-node-sdk 3.3.775 → 3.3.776

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.
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "web-engine";
6
- var version = "3.3.775";
6
+ var version = "3.3.776";
7
7
  var license = "UNLICENSED";
8
8
  var type = "module";
9
9
  var main = "src/main.js";
@@ -75,7 +75,7 @@ var dependencies = {
75
75
  "@turf/circle": "^7.2.0",
76
76
  "@turf/helpers": "^7.2.0",
77
77
  "@turf/point-to-line-distance": "^7.2.0",
78
- "@vitejs/plugin-react": "^4.3.4",
78
+ "@vitejs/plugin-react": "^6.0.1",
79
79
  "axe-core": "^4.10.3",
80
80
  browserslist: "^4.27.0",
81
81
  "crypto-browserify": "^3.12.1",
@@ -179,8 +179,8 @@ var devDependencies = {
179
179
  "start-server-and-test": "^2.0.11",
180
180
  storybook: "^8.6.15",
181
181
  typescript: "^5.8.2",
182
- vite: "^4.3.9",
183
- vitest: "^4.0.17",
182
+ vite: "^8.0.5",
183
+ vitest: "^4.1.2",
184
184
  "webpack-merge": "^6.0.1"
185
185
  };
186
186
  var packageManager = "yarn@4.13.0";
@@ -16,21 +16,25 @@ function describeMessageRelation(senderOrigin, iframeOrigin) {
16
16
  return senderOrigin === iframeOrigin ? 'same-origin' : 'cross-origin';
17
17
  }
18
18
 
19
- function logBrowserMessageTelemetry(bus, { messageType, senderOrigin, command }) {
19
+ function logBrowserMessageTelemetry(bus, { messageType, senderOrigin, command, iframeOrigin }) {
20
20
  bus.send('appInsights/log', {
21
21
  name: 'browserMessageObserved',
22
22
  properties: {
23
23
  command,
24
24
  deploymentHost: window.location.host,
25
- iframeOrigin: window.location.origin,
25
+ iframeOrigin,
26
26
  messageType,
27
- relation: describeMessageRelation(senderOrigin, window.location.origin),
27
+ relation: describeMessageRelation(senderOrigin, iframeOrigin),
28
28
  senderOrigin,
29
- wouldRejectCrossOrigin: senderOrigin !== window.location.origin,
29
+ wouldRejectCrossOrigin: !isSameOriginBrowserMessage(senderOrigin, iframeOrigin),
30
30
  },
31
31
  });
32
32
  }
33
33
 
34
+ function isSameOriginBrowserMessage(senderOrigin, iframeOrigin) {
35
+ return senderOrigin === iframeOrigin;
36
+ }
37
+
34
38
  // browser based communication
35
39
  // listens for messages passed through
36
40
  // postMessage and converts them to clientAPI/execute calls..
@@ -77,11 +81,16 @@ function getBrowserCom(app) {
77
81
  function msgHandler(e) {
78
82
  const d = e.data;
79
83
  if (d && d.type === 'LL-client') {
84
+ const iframeOrigin = window.location.origin;
80
85
  logBrowserMessageTelemetry(app.bus, {
81
86
  messageType: 'LL-client',
82
87
  senderOrigin: e.origin,
83
88
  command: d.payload?.command,
89
+ iframeOrigin,
84
90
  });
91
+ if (!isSameOriginBrowserMessage(e.origin, iframeOrigin)) {
92
+ return;
93
+ }
85
94
  // confirm message is from our "client"
86
95
  app.bus
87
96
  .get('clientAPI/execute', d.payload)
@@ -289,4 +298,5 @@ async function create(app, config) {
289
298
 
290
299
  exports.create = create;
291
300
  exports.describeMessageRelation = describeMessageRelation;
301
+ exports.isSameOriginBrowserMessage = isSameOriginBrowserMessage;
292
302
  exports.logBrowserMessageTelemetry = logBrowserMessageTelemetry;
@@ -1 +1 @@
1
- var e="web-engine",t="3.3.775",s="UNLICENSED",r="module",o="src/main.js",i=["demo","deploy","nodesdk","src/extModules/flexapi","services/*","libraries/*"],l={colors:"cat utils/colors1.txt && node utils/processColors.js | pbcopy && cat utils/colors2.txt","cypress:comp":"cypress open --component --browser chrome","cypress:comp:ci":"cypress run --component",demo:"cd demo/ && yarn start",dev:"yarn mol e2e","format:check":"yarn prettier . --check","format:fix":"yarn prettier . --write",goProd:"cd deploy && scripts/goProd.sh",goStaging:"deploy/scripts/goStaging.sh","icons:convert":"node scripts/convertSvgToJsx.mjs",lint:"eslint . --ext .js,.jsx,.ts,.tsx",mod:"demo/startMod.sh",mol:"demo/startMol.sh","mol:build":"demo/startMolBuild.sh",molProd:"cd deploy && yarn buildAndRunMol","playwright:ci":"yarn playwright test --grep-invert sdk","playwright:ci:failed":"yarn playwright test --last-failed --grep-invert sdk","playwright:sdk":"yarn start-server-and-test 'cd ./deploy && yarn buildDev && yarn serveLocal' 8085 'cd ./test/sdk && npx http-server' 8080 'yarn playwright test sdk --ui'","playwright:ui":"yarn playwright test --ui --grep-invert sdk",prepare:"husky",test:"jest --no-cache --verbose","test-watch":"jest --verbose --watch","test:all":"yarn lint && yarn format:check && yarn test && yarn test:vitest && yarn cypress:comp:ci && yarn playwright:ci","test:mod":"playwright test --config=playwright.mod.config.ts","test:vitest":"vitest run",typecheck:"tsc -p tsconfig.checkjs.json",storybook:"storybook dev -p 6006","build-storybook":"storybook build"},a=["defaults"],n={"@azure/event-hubs":"^5.12.2","@csstools/normalize.css":"^11.0.1","@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@locus-labs/mod-badge":"^0.1.102","@locus-labs/mod-footer":"^0.0.111","@locus-labs/mod-header":"^0.0.105","@locus-labs/mod-location-marker":"^0.0.104","@locus-labs/mod-map-legend":"^0.0.104","@locus-labs/mod-offscreen-indicator":"^0.0.104","@locus-labs/mod-pin":"^0.0.104","@locus-labs/mod-qr-code-card":"^0.0.104","@locus-labs/mod-qr-code-window":"^0.0.105","@locus-labs/mod-walk-time-matrix":"^0.0.103","@mapbox/mapbox-gl-draw":"^1.5.0","@mapbox/mapbox-gl-draw-static-mode":"^1.0.1","@microsoft/applicationinsights-web":"^3.3.6","@turf/area":"^7.2.0","@turf/bbox-clip":"^7.2.0","@turf/bbox-polygon":"^7.2.0","@turf/bearing":"^7.2.0","@turf/circle":"^7.2.0","@turf/helpers":"^7.2.0","@turf/point-to-line-distance":"^7.2.0","@vitejs/plugin-react":"^4.3.4","axe-core":"^4.10.3",browserslist:"^4.27.0","crypto-browserify":"^3.12.1","cypress-multi-reporters":"^2.0.5","cypress-real-events":"^1.14.0",dompurify:"^3.3.3","file-loader":"^6.2.0",flexsearch:"^0.7.43","h3-js":"^4.1.0",i18next:"^20.6.1","i18next-browser-languagedetector":"^6.1.1","jest-transform-css":"6.0.2",jsdom:"^25.0.1",jsonschema:"^1.5.0",luxon:"^3.5.0","maplibre-gl":"^4.7.1","mini-css-extract-plugin":"^2.9.2","mocha-junit-reporter":"^2.2.1",mochawesome:"^7.1.3","node-polyfill-webpack-plugin":"^4.1.0","path-browserify":"^1.0.1","prop-types":"^15.8.1","qrcode.react":"^4.2.0",ramda:"^0.30.1",react:"^19.2.4","react-compound-slider":"^3.4.0","react-dom":"^19.2.4","react-json-editor-ajrm":"^2.5.14","react-svg":"^16.3.0","react-virtualized-auto-sizer":"^1.0.25","react-window":"^1.8.11","smoothscroll-polyfill":"^0.4.4","styled-components":"^6.1.15","styled-normalize":"^8.1.1","throttle-debounce":"^5.0.2",trackjs:"^3.10.4","ua-parser-js":"^0.7.40",uuid:"11.1.0",zousan:"^3.0.1","zousan-plus":"^4.0.1"},c={"@applitools/eyes-playwright":"^1.44.1","@axe-core/playwright":"^4.10.2","@azure/identity":"^4.13.0","@azure/playwright":"^1.0.0","@babel/core":"^7.26.10","@babel/eslint-parser":"^7.26.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-syntax-import-assertions":"^7.26.0","@babel/plugin-transform-modules-commonjs":"^7.26.3","@babel/plugin-transform-runtime":"^7.26.10","@babel/preset-env":"^7.26.9","@babel/preset-react":"^7.26.3","@playwright/test":"^1.56.0","@storybook/addon-essentials":"^8.6.15","@storybook/blocks":"^8.6.15","@storybook/react":"^8.6.15","@storybook/react-vite":"^8.6.15","@testing-library/jest-dom":"^6.6.3","@types/react":"^19.0.10","@types/react-dom":"^19.0.4","@typescript-eslint/eslint-plugin":"^8.26.1","@typescript-eslint/parser":"^8.26.1","babel-jest":"^29.7.0","babel-loader":"^10.0.0","babel-plugin-inline-json-import":"^0.3.2","babel-plugin-module-resolver":"^5.0.2","babel-plugin-styled-components":"^2.1.4","chai-colors":"^1.0.1","css-loader":"^7.1.2",cypress:"^14.2.0","cypress-wait-until":"^3.0.2",eslint:"^8.57.1","eslint-config-prettier":"^10.1.8","eslint-config-standard":"^17.1.0","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^3.9.1","eslint-plugin-cypress":"^2.15.2","eslint-plugin-import":"^2.31.0","eslint-plugin-jest":"^28.11.0","eslint-plugin-n":"^17.16.2","eslint-plugin-node":"^11.1.0","eslint-plugin-playwright":"^2.2.2","eslint-plugin-promise":"^5.2.0","eslint-plugin-react":"^7.37.4","eslint-plugin-standard":"^5.0.0","fetch-mock-jest":"^1.5.1",glob:"^11.0.1",husky:"^9.1.7",jest:"29.7.0","jest-environment-jsdom":"^29.7.0","lint-staged":"^15.5.0","node-fetch":"^2.7.0","null-loader":"^4.0.1",nx:"19.8.14","nx-remotecache-azure":"^19.0.0","os-browserify":"^0.3.0",prettier:"3.7.4","start-server-and-test":"^2.0.11",storybook:"^8.6.15",typescript:"^5.8.2",vite:"^4.3.9",vitest:"^4.0.17","webpack-merge":"^6.0.1"},p="yarn@4.13.0",d={node:"24.x"},m={},y={name:e,version:t,private:!0,license:s,type:r,main:o,workspaces:i,scripts:l,"lint-staged":{"*.js":["eslint --fix","prettier --check"],"*.{json,md,css,ts,tsx,jsx}":["prettier --check"]},browserslist:a,dependencies:n,devDependencies:c,packageManager:p,engines:d,nx:m};export{a as browserslist,y as default,n as dependencies,c as devDependencies,d as engines,s as license,o as main,e as name,m as nx,p as packageManager,l as scripts,r as type,t as version,i as workspaces};
1
+ var e="web-engine",t="3.3.776",s="UNLICENSED",r="module",o="src/main.js",i=["demo","deploy","nodesdk","src/extModules/flexapi","services/*","libraries/*"],l={colors:"cat utils/colors1.txt && node utils/processColors.js | pbcopy && cat utils/colors2.txt","cypress:comp":"cypress open --component --browser chrome","cypress:comp:ci":"cypress run --component",demo:"cd demo/ && yarn start",dev:"yarn mol e2e","format:check":"yarn prettier . --check","format:fix":"yarn prettier . --write",goProd:"cd deploy && scripts/goProd.sh",goStaging:"deploy/scripts/goStaging.sh","icons:convert":"node scripts/convertSvgToJsx.mjs",lint:"eslint . --ext .js,.jsx,.ts,.tsx",mod:"demo/startMod.sh",mol:"demo/startMol.sh","mol:build":"demo/startMolBuild.sh",molProd:"cd deploy && yarn buildAndRunMol","playwright:ci":"yarn playwright test --grep-invert sdk","playwright:ci:failed":"yarn playwright test --last-failed --grep-invert sdk","playwright:sdk":"yarn start-server-and-test 'cd ./deploy && yarn buildDev && yarn serveLocal' 8085 'cd ./test/sdk && npx http-server' 8080 'yarn playwright test sdk --ui'","playwright:ui":"yarn playwright test --ui --grep-invert sdk",prepare:"husky",test:"jest --no-cache --verbose","test-watch":"jest --verbose --watch","test:all":"yarn lint && yarn format:check && yarn test && yarn test:vitest && yarn cypress:comp:ci && yarn playwright:ci","test:mod":"playwright test --config=playwright.mod.config.ts","test:vitest":"vitest run",typecheck:"tsc -p tsconfig.checkjs.json",storybook:"storybook dev -p 6006","build-storybook":"storybook build"},a=["defaults"],n={"@azure/event-hubs":"^5.12.2","@csstools/normalize.css":"^11.0.1","@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@locus-labs/mod-badge":"^0.1.102","@locus-labs/mod-footer":"^0.0.111","@locus-labs/mod-header":"^0.0.105","@locus-labs/mod-location-marker":"^0.0.104","@locus-labs/mod-map-legend":"^0.0.104","@locus-labs/mod-offscreen-indicator":"^0.0.104","@locus-labs/mod-pin":"^0.0.104","@locus-labs/mod-qr-code-card":"^0.0.104","@locus-labs/mod-qr-code-window":"^0.0.105","@locus-labs/mod-walk-time-matrix":"^0.0.103","@mapbox/mapbox-gl-draw":"^1.5.0","@mapbox/mapbox-gl-draw-static-mode":"^1.0.1","@microsoft/applicationinsights-web":"^3.3.6","@turf/area":"^7.2.0","@turf/bbox-clip":"^7.2.0","@turf/bbox-polygon":"^7.2.0","@turf/bearing":"^7.2.0","@turf/circle":"^7.2.0","@turf/helpers":"^7.2.0","@turf/point-to-line-distance":"^7.2.0","@vitejs/plugin-react":"^6.0.1","axe-core":"^4.10.3",browserslist:"^4.27.0","crypto-browserify":"^3.12.1","cypress-multi-reporters":"^2.0.5","cypress-real-events":"^1.14.0",dompurify:"^3.3.3","file-loader":"^6.2.0",flexsearch:"^0.7.43","h3-js":"^4.1.0",i18next:"^20.6.1","i18next-browser-languagedetector":"^6.1.1","jest-transform-css":"6.0.2",jsdom:"^25.0.1",jsonschema:"^1.5.0",luxon:"^3.5.0","maplibre-gl":"^4.7.1","mini-css-extract-plugin":"^2.9.2","mocha-junit-reporter":"^2.2.1",mochawesome:"^7.1.3","node-polyfill-webpack-plugin":"^4.1.0","path-browserify":"^1.0.1","prop-types":"^15.8.1","qrcode.react":"^4.2.0",ramda:"^0.30.1",react:"^19.2.4","react-compound-slider":"^3.4.0","react-dom":"^19.2.4","react-json-editor-ajrm":"^2.5.14","react-svg":"^16.3.0","react-virtualized-auto-sizer":"^1.0.25","react-window":"^1.8.11","smoothscroll-polyfill":"^0.4.4","styled-components":"^6.1.15","styled-normalize":"^8.1.1","throttle-debounce":"^5.0.2",trackjs:"^3.10.4","ua-parser-js":"^0.7.40",uuid:"11.1.0",zousan:"^3.0.1","zousan-plus":"^4.0.1"},c={"@applitools/eyes-playwright":"^1.44.1","@axe-core/playwright":"^4.10.2","@azure/identity":"^4.13.0","@azure/playwright":"^1.0.0","@babel/core":"^7.26.10","@babel/eslint-parser":"^7.26.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-syntax-import-assertions":"^7.26.0","@babel/plugin-transform-modules-commonjs":"^7.26.3","@babel/plugin-transform-runtime":"^7.26.10","@babel/preset-env":"^7.26.9","@babel/preset-react":"^7.26.3","@playwright/test":"^1.56.0","@storybook/addon-essentials":"^8.6.15","@storybook/blocks":"^8.6.15","@storybook/react":"^8.6.15","@storybook/react-vite":"^8.6.15","@testing-library/jest-dom":"^6.6.3","@types/react":"^19.0.10","@types/react-dom":"^19.0.4","@typescript-eslint/eslint-plugin":"^8.26.1","@typescript-eslint/parser":"^8.26.1","babel-jest":"^29.7.0","babel-loader":"^10.0.0","babel-plugin-inline-json-import":"^0.3.2","babel-plugin-module-resolver":"^5.0.2","babel-plugin-styled-components":"^2.1.4","chai-colors":"^1.0.1","css-loader":"^7.1.2",cypress:"^14.2.0","cypress-wait-until":"^3.0.2",eslint:"^8.57.1","eslint-config-prettier":"^10.1.8","eslint-config-standard":"^17.1.0","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^3.9.1","eslint-plugin-cypress":"^2.15.2","eslint-plugin-import":"^2.31.0","eslint-plugin-jest":"^28.11.0","eslint-plugin-n":"^17.16.2","eslint-plugin-node":"^11.1.0","eslint-plugin-playwright":"^2.2.2","eslint-plugin-promise":"^5.2.0","eslint-plugin-react":"^7.37.4","eslint-plugin-standard":"^5.0.0","fetch-mock-jest":"^1.5.1",glob:"^11.0.1",husky:"^9.1.7",jest:"29.7.0","jest-environment-jsdom":"^29.7.0","lint-staged":"^15.5.0","node-fetch":"^2.7.0","null-loader":"^4.0.1",nx:"19.8.14","nx-remotecache-azure":"^19.0.0","os-browserify":"^0.3.0",prettier:"3.7.4","start-server-and-test":"^2.0.11",storybook:"^8.6.15",typescript:"^5.8.2",vite:"^8.0.5",vitest:"^4.1.2","webpack-merge":"^6.0.1"},p="yarn@4.13.0",d={node:"24.x"},m={},y={name:e,version:t,private:!0,license:s,type:r,main:o,workspaces:i,scripts:l,"lint-staged":{"*.js":["eslint --fix","prettier --check"],"*.{json,md,css,ts,tsx,jsx}":["prettier --check"]},browserslist:a,dependencies:n,devDependencies:c,packageManager:p,engines:d,nx:m};export{a as browserslist,y as default,n as dependencies,c as devDependencies,d as engines,s as license,o as main,e as name,m as nx,p as packageManager,l as scripts,r as type,t as version,i as workspaces};
@@ -1 +1 @@
1
- import{throttle as e}from"throttle-debounce";import{getStructureAndFloorAtPoint as o}from"../../../src/utils/geom.js";import t from"../../../src/utils/observable.js";import{headlessCommands as n,handleHeadless as a}from"./sdkHeadless.js";let s=null;function i(e,o){return"null"===e?"null-origin":e===o?"same-origin":"cross-origin"}function r(e,{messageType:o,senderOrigin:t,command:n}){e.send("appInsights/log",{name:"browserMessageObserved",properties:{command:n,deploymentHost:window.location.host,iframeOrigin:window.location.origin,messageType:o,relation:i(t,window.location.origin),senderOrigin:t,wouldRejectCrossOrigin:t!==window.location.origin}})}function l(e){const o=(e,o)=>{const t={payload:e,type:"LL-server"};o&&(t.clientMsgId=o);try{window.postMessage(t,"*")}catch(e){window.postMessage((e=>JSON.parse(JSON.stringify(e)))(t),"*")}};function t(t){const n=t.data;n&&"LL-client"===n.type&&(r(e.bus,{messageType:"LL-client",senderOrigin:t.origin,command:n.payload?.command}),e.bus.get("clientAPI/execute",n.payload).then(e=>o(e,n.msgId)).catch(o=>{e.config.debug&&console.error(o),((e,o)=>{const t={error:!0,payload:e,type:"LL-server"};o&&(t.clientMsgId=o),window.postMessage(t,"*")})(o.message,n.msgId)}))}return s&&s(),window.addEventListener("message",t),s=()=>window.removeEventListener("message",t),(e,o)=>{const t={event:e,payload:o,type:"LL-server"};window.postMessage(t,"*")}}async function d(s,i){const r=s.env.isBrowser?l(s):function(e){const o=t();return e.eventListener=o,(e,t)=>o.fire(e,t)}(s);return function(t,n){t.bus.monitor("map/userMoveStart",async({pitch:e,zoom:o,bearing:a})=>{const{lat:s,lng:i,floorId:r,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");n("userMoveStart",{lat:s,lng:i,floorId:r,ord:l,structureId:d,pitch:e,zoom:o,bearing:a})}),t.bus.monitor("map/userMoving",e(500,async({pitch:e,zoom:o,bearing:a})=>{const{lat:s,lng:i,floorId:r,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");n("userMoving",{lat:s,lng:i,floorId:r,ord:l,structureId:d,pitch:e,zoom:o,bearing:a})})),t.bus.monitor("map/moveEnd",async({pitch:e,zoom:o,bearing:a})=>{const{lat:s,lng:i,floorId:r,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");n("moveEnd",{lat:s,lng:i,floorId:r,ord:l,structureId:d,pitch:e,zoom:o,bearing:a})}),t.bus.monitor("map/floorChanged",({structure:e,floor:o})=>n("levelChange",{floorId:o?o.id:null,floorName:o?o.name:null,ord:o?o.ordinal:null,structureId:e?e.id:null,structureName:e?e.name:null})),t.bus.monitor("map/poiClicked",({poi:e})=>n("poiSelected",e)),t.bus.monitor("poiDetails/showPoi",({poi:e})=>n("poiShown",e)),t.bus.monitor("map/click",async({lat:e,lng:a,ord:s})=>{const i=await t.bus.get("venueData/getStructures"),r=await t.bus.get("map/getViewBBox"),{building:l,floor:d}=o(i,e,a,s,r,!0);n("mapClicked",{lat:e,lng:a,ord:s,building:l,floor:d})})}(s,r),{init:async()=>{!function(e){e.bus.send("clientAPI/registerCustomType",{name:"latLngOrdLocation",spec:{type:"object",props:[{name:"lat",type:"float"},{name:"lng",type:"float"},{name:"ord",type:"integer"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"latLngFloorLocation",spec:{type:"object",props:[{name:"lat",type:"float"},{name:"lng",type:"float"},{name:"floorId",type:"string"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"poiIdLocation",spec:{type:"object",props:[{name:"poiId",type:"integer",min:0}]}}),e.bus.send("clientAPI/registerCustomType",{name:"location",spec:{type:"multi",types:[{type:"poiIdLocation"},{type:"latLngOrdLocation"},{type:"latLngFloorLocation"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"viewSettings",spec:{type:"object",props:[{name:"zoom",type:"float",optional:!0},{name:"pitch",type:"float",optional:!0},{name:"bearing",type:"float",optional:!0}]}})}(s),n.forEach(e=>s.bus.send("clientAPI/registerCommand",e)),a(s),i.headless||await import("../../../_virtual/_empty_module_placeholder.js").then(e=>{e.visualCommands.forEach(e=>s.bus.send("clientAPI/registerCommand",e)),e.handleVisual(s,r)});const e=async()=>{await s.bus.send("system/readywhenyouare"),s.bus.get("clientAPI/execute",{command:"getCommandJSON"}).then(e=>r("ready",{commandJSON:e})),!i.headless&&s.config.uiHide&&s.config.uiHide.sidebar&&s.env.isDesktop()&&s.bus.send("map/changePadding",{padding:{left:55,right:55,top:72,bottom:22}})};i.headless?Promise.all([new Promise(e=>s.bus.monitor("venueData/navGraphLoaded",e)),new Promise(e=>s.bus.monitor("venueData/poiDataLoaded",e))]).then(e):s.bus.on("map/mapReadyToShow",e),s.bus.on("sdkServer/sendEvent",({eventName:e,...o})=>r(e,o))}}}export{d as create,i as describeMessageRelation,r as logBrowserMessageTelemetry};
1
+ import{throttle as e}from"throttle-debounce";import{getStructureAndFloorAtPoint as o}from"../../../src/utils/geom.js";import t from"../../../src/utils/observable.js";import{headlessCommands as n,handleHeadless as s}from"./sdkHeadless.js";let a=null;function r(e,o){return"null"===e?"null-origin":e===o?"same-origin":"cross-origin"}function i(e,{messageType:o,senderOrigin:t,command:n,iframeOrigin:s}){e.send("appInsights/log",{name:"browserMessageObserved",properties:{command:n,deploymentHost:window.location.host,iframeOrigin:s,messageType:o,relation:r(t,s),senderOrigin:t,wouldRejectCrossOrigin:!l(t,s)}})}function l(e,o){return e===o}function d(e){const o=(e,o)=>{const t={payload:e,type:"LL-server"};o&&(t.clientMsgId=o);try{window.postMessage(t,"*")}catch(e){window.postMessage((e=>JSON.parse(JSON.stringify(e)))(t),"*")}};function t(t){const n=t.data;if(n&&"LL-client"===n.type){const s=window.location.origin;if(i(e.bus,{messageType:"LL-client",senderOrigin:t.origin,command:n.payload?.command,iframeOrigin:s}),!l(t.origin,s))return;e.bus.get("clientAPI/execute",n.payload).then(e=>o(e,n.msgId)).catch(o=>{e.config.debug&&console.error(o),((e,o)=>{const t={error:!0,payload:e,type:"LL-server"};o&&(t.clientMsgId=o),window.postMessage(t,"*")})(o.message,n.msgId)})}}return a&&a(),window.addEventListener("message",t),a=()=>window.removeEventListener("message",t),(e,o)=>{const t={event:e,payload:o,type:"LL-server"};window.postMessage(t,"*")}}async function m(a,r){const i=a.env.isBrowser?d(a):function(e){const o=t();return e.eventListener=o,(e,t)=>o.fire(e,t)}(a);return function(t,n){t.bus.monitor("map/userMoveStart",async({pitch:e,zoom:o,bearing:s})=>{const{lat:a,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");n("userMoveStart",{lat:a,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:o,bearing:s})}),t.bus.monitor("map/userMoving",e(500,async({pitch:e,zoom:o,bearing:s})=>{const{lat:a,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");n("userMoving",{lat:a,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:o,bearing:s})})),t.bus.monitor("map/moveEnd",async({pitch:e,zoom:o,bearing:s})=>{const{lat:a,lng:r,floorId:i,ordinal:l,structureId:d}=await t.bus.get("map/getMapCenter");n("moveEnd",{lat:a,lng:r,floorId:i,ord:l,structureId:d,pitch:e,zoom:o,bearing:s})}),t.bus.monitor("map/floorChanged",({structure:e,floor:o})=>n("levelChange",{floorId:o?o.id:null,floorName:o?o.name:null,ord:o?o.ordinal:null,structureId:e?e.id:null,structureName:e?e.name:null})),t.bus.monitor("map/poiClicked",({poi:e})=>n("poiSelected",e)),t.bus.monitor("poiDetails/showPoi",({poi:e})=>n("poiShown",e)),t.bus.monitor("map/click",async({lat:e,lng:s,ord:a})=>{const r=await t.bus.get("venueData/getStructures"),i=await t.bus.get("map/getViewBBox"),{building:l,floor:d}=o(r,e,s,a,i,!0);n("mapClicked",{lat:e,lng:s,ord:a,building:l,floor:d})})}(a,i),{init:async()=>{!function(e){e.bus.send("clientAPI/registerCustomType",{name:"latLngOrdLocation",spec:{type:"object",props:[{name:"lat",type:"float"},{name:"lng",type:"float"},{name:"ord",type:"integer"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"latLngFloorLocation",spec:{type:"object",props:[{name:"lat",type:"float"},{name:"lng",type:"float"},{name:"floorId",type:"string"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"poiIdLocation",spec:{type:"object",props:[{name:"poiId",type:"integer",min:0}]}}),e.bus.send("clientAPI/registerCustomType",{name:"location",spec:{type:"multi",types:[{type:"poiIdLocation"},{type:"latLngOrdLocation"},{type:"latLngFloorLocation"}]}}),e.bus.send("clientAPI/registerCustomType",{name:"viewSettings",spec:{type:"object",props:[{name:"zoom",type:"float",optional:!0},{name:"pitch",type:"float",optional:!0},{name:"bearing",type:"float",optional:!0}]}})}(a),n.forEach(e=>a.bus.send("clientAPI/registerCommand",e)),s(a),r.headless||await import("../../../_virtual/_empty_module_placeholder.js").then(e=>{e.visualCommands.forEach(e=>a.bus.send("clientAPI/registerCommand",e)),e.handleVisual(a,i)});const e=async()=>{await a.bus.send("system/readywhenyouare"),a.bus.get("clientAPI/execute",{command:"getCommandJSON"}).then(e=>i("ready",{commandJSON:e})),!r.headless&&a.config.uiHide&&a.config.uiHide.sidebar&&a.env.isDesktop()&&a.bus.send("map/changePadding",{padding:{left:55,right:55,top:72,bottom:22}})};r.headless?Promise.all([new Promise(e=>a.bus.monitor("venueData/navGraphLoaded",e)),new Promise(e=>a.bus.monitor("venueData/poiDataLoaded",e))]).then(e):a.bus.on("map/mapReadyToShow",e),a.bus.on("sdkServer/sendEvent",({eventName:e,...o})=>i(e,o))}}}export{m as create,r as describeMessageRelation,l as isSameOriginBrowserMessage,i as logBrowserMessageTelemetry};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atriusmaps-node-sdk",
3
- "version": "3.3.775",
3
+ "version": "3.3.776",
4
4
  "description": "This project provides an API to Atrius Personal Wayfinder maps within a Node environment. See the README.md for more information",
5
5
  "keywords": [
6
6
  "map",
@@ -58,6 +58,6 @@
58
58
  "@rollup/plugin-json": "^6.1.0",
59
59
  "@rollup/plugin-terser": "^1.0.0",
60
60
  "rollup": "^4.36.0",
61
- "vitest": "^2.1.9"
61
+ "vitest": "^4.1.2"
62
62
  }
63
63
  }