@dcl-regenesislabs/web-editor 0.0.0-stage → 0.1.0
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/editor.css +1 -0
- package/editor.js +33891 -0
- package/package.json +8 -4
- package/prefabs/admin-tools/composite.json +77 -0
- package/prefabs/admin-tools/data.json +28 -0
- package/prefabs/admin-tools/icons/admin-panel-control-button.png +0 -0
- package/prefabs/admin-tools/icons/admin-panel-moderation-control-button.png +0 -0
- package/prefabs/admin-tools/icons/admin-panel-rewards-control-button.png +0 -0
- package/prefabs/admin-tools/icons/admin-panel-smart-item-control-button.png +0 -0
- package/prefabs/admin-tools/icons/admin-panel-text-announcement-control-button.png +0 -0
- package/prefabs/admin-tools/icons/admin-panel-video-control-button.png +0 -0
- package/prefabs/admin-tools/icons/admin-tool-background.png +0 -0
- package/prefabs/admin-tools/icons/announcements/text-announcement-chat-message.png +0 -0
- package/prefabs/admin-tools/icons/announcements/text-announcement-check.png +0 -0
- package/prefabs/admin-tools/icons/announcements/text-announcement-close-button.png +0 -0
- package/prefabs/admin-tools/icons/moderation/admin-panel-verified-user.png +0 -0
- package/prefabs/admin-tools/icons/moderation/ban.png +0 -0
- package/prefabs/admin-tools/icons/moderation/chevron-back.png +0 -0
- package/prefabs/admin-tools/icons/moderation/chevron-forward.png +0 -0
- package/prefabs/admin-tools/icons/moderation/close.png +0 -0
- package/prefabs/admin-tools/icons/moderation/error.png +0 -0
- package/prefabs/admin-tools/icons/moderation/person-outline.png +0 -0
- package/prefabs/admin-tools/icons/moderation-control-icon.png +0 -0
- package/prefabs/admin-tools/icons/rewards/close.png +0 -0
- package/prefabs/admin-tools/icons/rewards/send.png +0 -0
- package/prefabs/admin-tools/icons/rewards-control.png +0 -0
- package/prefabs/admin-tools/icons/smart-item-control.png +0 -0
- package/prefabs/admin-tools/icons/text-announcement-control.png +0 -0
- package/prefabs/admin-tools/icons/video/chevron-down.png +0 -0
- package/prefabs/admin-tools/icons/video/chevron-up.png +0 -0
- package/prefabs/admin-tools/icons/video/copy-to-clipboard.png +0 -0
- package/prefabs/admin-tools/icons/video/error.png +0 -0
- package/prefabs/admin-tools/icons/video/eye-off.png +0 -0
- package/prefabs/admin-tools/icons/video/eye.png +0 -0
- package/prefabs/admin-tools/icons/video/help.png +0 -0
- package/prefabs/admin-tools/icons/video/info.png +0 -0
- package/prefabs/admin-tools/icons/video/person-outline.png +0 -0
- package/prefabs/admin-tools/icons/video/star.png +0 -0
- package/prefabs/admin-tools/icons/video/video-control-dcl-cast.png +0 -0
- package/prefabs/admin-tools/icons/video/video-control-live.png +0 -0
- package/prefabs/admin-tools/icons/video/video-control-loop.png +0 -0
- package/prefabs/admin-tools/icons/video/video-control-mute.png +0 -0
- package/prefabs/admin-tools/icons/video/video-control-pause-button.png +0 -0
- package/prefabs/admin-tools/icons/video/video-control-play-button.png +0 -0
- package/prefabs/admin-tools/icons/video/video-control-video-icon.png +0 -0
- package/prefabs/admin-tools/icons/video/video-control-volume-minus-button.png +0 -0
- package/prefabs/admin-tools/icons/video/video-control-volume-plus-button.png +0 -0
- package/prefabs/admin-tools/icons/video-control.png +0 -0
- package/prefabs/admin-tools/scripts/actions.ts +206 -0
- package/prefabs/admin-tools/scripts/admin.tsx +253 -0
- package/prefabs/admin-tools/scripts/api.ts +125 -0
- package/prefabs/admin-tools/scripts/components.ts +190 -0
- package/prefabs/admin-tools/scripts/icons.ts +53 -0
- package/prefabs/admin-tools/scripts/message-bus.ts +297 -0
- package/prefabs/admin-tools/scripts/state.ts +69 -0
- package/prefabs/admin-tools/scripts/tabs/Moderation.tsx +155 -0
- package/prefabs/admin-tools/scripts/tabs/Rewards.tsx +136 -0
- package/prefabs/admin-tools/scripts/tabs/SmartItemActions.tsx +167 -0
- package/prefabs/admin-tools/scripts/tabs/TextAnnouncements.tsx +195 -0
- package/prefabs/admin-tools/scripts/tabs/VideoControl.tsx +156 -0
- package/prefabs/admin-tools/scripts/tabs/announcements/Overlay.tsx +94 -0
- package/prefabs/admin-tools/scripts/tabs/announcements/icons.ts +15 -0
- package/prefabs/admin-tools/scripts/tabs/announcements/state.ts +71 -0
- package/prefabs/admin-tools/scripts/tabs/announcements/ui.tsx +37 -0
- package/prefabs/admin-tools/scripts/tabs/moderation/AddUserInput.tsx +184 -0
- package/prefabs/admin-tools/scripts/tabs/moderation/RemoveAdminConfirmation.tsx +93 -0
- package/prefabs/admin-tools/scripts/tabs/moderation/UsersList.tsx +228 -0
- package/prefabs/admin-tools/scripts/tabs/moderation/api.ts +35 -0
- package/prefabs/admin-tools/scripts/tabs/moderation/icons.ts +23 -0
- package/prefabs/admin-tools/scripts/tabs/moderation/kick.ts +95 -0
- package/prefabs/admin-tools/scripts/tabs/moderation/state.ts +69 -0
- package/prefabs/admin-tools/scripts/tabs/moderation/ui.tsx +172 -0
- package/prefabs/admin-tools/scripts/tabs/moderation/utils.ts +88 -0
- package/prefabs/admin-tools/scripts/tabs/rewards/Button.tsx +52 -0
- package/prefabs/admin-tools/scripts/tabs/rewards/Captcha.tsx +88 -0
- package/prefabs/admin-tools/scripts/tabs/rewards/api.ts +138 -0
- package/prefabs/admin-tools/scripts/tabs/rewards/claim.ts +99 -0
- package/prefabs/admin-tools/scripts/tabs/rewards/controller.ts +103 -0
- package/prefabs/admin-tools/scripts/tabs/rewards/icons.ts +13 -0
- package/prefabs/admin-tools/scripts/tabs/rewards/state.ts +32 -0
- package/prefabs/admin-tools/scripts/tabs/smart-items/selection.ts +90 -0
- package/prefabs/admin-tools/scripts/tabs/video/DclCast.tsx +226 -0
- package/prefabs/admin-tools/scripts/tabs/video/LiveStream.tsx +284 -0
- package/prefabs/admin-tools/scripts/tabs/video/SpeakerShowcase.tsx +112 -0
- package/prefabs/admin-tools/scripts/tabs/video/VideoUrl.tsx +107 -0
- package/prefabs/admin-tools/scripts/tabs/video/Volume.tsx +69 -0
- package/prefabs/admin-tools/scripts/tabs/video/api.ts +172 -0
- package/prefabs/admin-tools/scripts/tabs/video/controls.ts +108 -0
- package/prefabs/admin-tools/scripts/tabs/video/icons.ts +59 -0
- package/prefabs/admin-tools/scripts/tabs/video/speakers.ts +43 -0
- package/prefabs/admin-tools/scripts/tabs/video/state.ts +82 -0
- package/prefabs/admin-tools/scripts/tabs/video/ui.tsx +243 -0
- package/prefabs/admin-tools/scripts/types.ts +46 -0
- package/prefabs/admin-tools/scripts/ui.tsx +122 -0
- package/prefabs/admin-tools/thumbnail.png +0 -0
- package/prefabs/announcer/ai.md +76 -0
- package/prefabs/announcer/composite.json +31 -0
- package/prefabs/announcer/data.json +35 -0
- package/prefabs/announcer/scripts/announcer.tsx +79 -0
- package/prefabs/announcer/scripts/pure/toast.ts +30 -0
- package/prefabs/announcer/thumbnail.png +0 -0
- package/prefabs/black-chair/HighBackChair.glb +0 -0
- package/prefabs/black-chair/composite.json +74 -0
- package/prefabs/black-chair/data.json +30 -0
- package/prefabs/black-chair/scripts/seat.ts +191 -0
- package/prefabs/black-chair/thumbnail.png +0 -0
- package/prefabs/catalog.json +1 -0
- package/prefabs/classic-bench/Bench_01.glb +0 -0
- package/prefabs/classic-bench/composite.json +100 -0
- package/prefabs/classic-bench/data.json +34 -0
- package/prefabs/classic-bench/file1.png +0 -0
- package/prefabs/classic-bench/scripts/seat.ts +191 -0
- package/prefabs/classic-bench/thumbnail.png +0 -0
- package/prefabs/classic-bench-armrests/Bench 1.glb +0 -0
- package/prefabs/classic-bench-armrests/composite.json +100 -0
- package/prefabs/classic-bench-armrests/data.json +30 -0
- package/prefabs/classic-bench-armrests/scripts/seat.ts +191 -0
- package/prefabs/classic-bench-armrests/thumbnail.png +0 -0
- package/prefabs/classroom-chair/Chair_02.glb +0 -0
- package/prefabs/classroom-chair/composite.json +74 -0
- package/prefabs/classroom-chair/data.json +34 -0
- package/prefabs/classroom-chair/file1.png +0 -0
- package/prefabs/classroom-chair/scripts/seat.ts +191 -0
- package/prefabs/classroom-chair/thumbnail.png +0 -0
- package/prefabs/court-chair/Chair_Wood_01.glb +0 -0
- package/prefabs/court-chair/FanstasyPack_TX.png +0 -0
- package/prefabs/court-chair/composite.json +74 -0
- package/prefabs/court-chair/data.json +34 -0
- package/prefabs/court-chair/scripts/seat.ts +191 -0
- package/prefabs/court-chair/thumbnail.png +0 -0
- package/prefabs/curved-couch/CurvedCouch.glb +0 -0
- package/prefabs/curved-couch/composite.json +100 -0
- package/prefabs/curved-couch/data.json +30 -0
- package/prefabs/curved-couch/scripts/seat.ts +191 -0
- package/prefabs/curved-couch/thumbnail.png +0 -0
- package/prefabs/game-flow/ai.md +94 -0
- package/prefabs/game-flow/composite.json +45 -0
- package/prefabs/game-flow/data.json +27 -0
- package/prefabs/game-flow/scripts/game-flow.ts +168 -0
- package/prefabs/game-flow/scripts/pure/flow.ts +185 -0
- package/prefabs/game-flow/thumbnail.png +0 -0
- package/prefabs/health-respawn/ai.md +76 -0
- package/prefabs/health-respawn/composite.json +31 -0
- package/prefabs/health-respawn/data.json +38 -0
- package/prefabs/health-respawn/scripts/health-respawn.ts +98 -0
- package/prefabs/health-respawn/scripts/health.ts +22 -0
- package/prefabs/health-respawn/scripts/pure/health.ts +60 -0
- package/prefabs/health-respawn/thumbnail.png +0 -0
- package/prefabs/high-stool/HighStool.glb +0 -0
- package/prefabs/high-stool/composite.json +74 -0
- package/prefabs/high-stool/data.json +30 -0
- package/prefabs/high-stool/scripts/seat.ts +191 -0
- package/prefabs/high-stool/thumbnail.png +0 -0
- package/prefabs/large-couch/ThreeSeater_Couch.glb +0 -0
- package/prefabs/large-couch/composite.json +100 -0
- package/prefabs/large-couch/data.json +30 -0
- package/prefabs/large-couch/scripts/seat.ts +191 -0
- package/prefabs/large-couch/thumbnail.png +0 -0
- package/prefabs/leaderboard/ai.md +75 -0
- package/prefabs/leaderboard/board-panel.glb +0 -0
- package/prefabs/leaderboard/composite.json +82 -0
- package/prefabs/leaderboard/data.json +35 -0
- package/prefabs/leaderboard/scripts/leaderboard.ts +66 -0
- package/prefabs/leaderboard/scripts/pure/board.ts +71 -0
- package/prefabs/leaderboard/thumbnail.png +0 -0
- package/prefabs/loveseat/Couch_01.glb +0 -0
- package/prefabs/loveseat/composite.json +100 -0
- package/prefabs/loveseat/data.json +34 -0
- package/prefabs/loveseat/file1.png +0 -0
- package/prefabs/loveseat/scripts/seat.ts +191 -0
- package/prefabs/loveseat/thumbnail.png +0 -0
- package/prefabs/modern-sofa/ModernSofa.glb +0 -0
- package/prefabs/modern-sofa/composite.json +100 -0
- package/prefabs/modern-sofa/data.json +30 -0
- package/prefabs/modern-sofa/scripts/seat.ts +191 -0
- package/prefabs/modern-sofa/thumbnail.png +0 -0
- package/prefabs/outdoor-chair/Chair_07.glb +0 -0
- package/prefabs/outdoor-chair/composite.json +74 -0
- package/prefabs/outdoor-chair/data.json +34 -0
- package/prefabs/outdoor-chair/file1.png +0 -0
- package/prefabs/outdoor-chair/scripts/seat.ts +191 -0
- package/prefabs/outdoor-chair/thumbnail.png +0 -0
- package/prefabs/rustic-bench/Bench_01.glb +0 -0
- package/prefabs/rustic-bench/PiratesPack_TX.png.png +0 -0
- package/prefabs/rustic-bench/composite.json +100 -0
- package/prefabs/rustic-bench/data.json +34 -0
- package/prefabs/rustic-bench/scripts/seat.ts +191 -0
- package/prefabs/rustic-bench/thumbnail.png +0 -0
- package/prefabs/rustic-round-stool/Chairwood_01.glb +0 -0
- package/prefabs/rustic-round-stool/PiratesPack_TX.png.png +0 -0
- package/prefabs/rustic-round-stool/composite.json +74 -0
- package/prefabs/rustic-round-stool/data.json +34 -0
- package/prefabs/rustic-round-stool/scripts/seat.ts +191 -0
- package/prefabs/rustic-round-stool/thumbnail.png +0 -0
- package/prefabs/rustic-square-stool/Chairwood_02.glb +0 -0
- package/prefabs/rustic-square-stool/PiratesPack_TX.png.png +0 -0
- package/prefabs/rustic-square-stool/composite.json +74 -0
- package/prefabs/rustic-square-stool/data.json +34 -0
- package/prefabs/rustic-square-stool/scripts/seat.ts +191 -0
- package/prefabs/rustic-square-stool/thumbnail.png +0 -0
- package/prefabs/server-clock/ai.md +67 -0
- package/prefabs/server-clock/composite.json +45 -0
- package/prefabs/server-clock/data.json +24 -0
- package/prefabs/server-clock/scripts/clock-hud.tsx +55 -0
- package/prefabs/server-clock/scripts/server-clock.ts +71 -0
- package/prefabs/server-clock/thumbnail.png +0 -0
- package/prefabs/simple-chair/Chair_03.glb +0 -0
- package/prefabs/simple-chair/composite.json +74 -0
- package/prefabs/simple-chair/data.json +34 -0
- package/prefabs/simple-chair/file1.png +0 -0
- package/prefabs/simple-chair/scripts/seat.ts +191 -0
- package/prefabs/simple-chair/thumbnail.png +0 -0
- package/prefabs/sit-spot/composite.json +45 -0
- package/prefabs/sit-spot/data.json +30 -0
- package/prefabs/sit-spot/scripts/seat.ts +191 -0
- package/prefabs/sit-spot/thumbnail.png +0 -0
- package/prefabs/sit-spot-edge/composite.json +42 -0
- package/prefabs/sit-spot-edge/data.json +32 -0
- package/prefabs/sit-spot-edge/emotes/Sit_Edge1_emote.glb +0 -0
- package/prefabs/sit-spot-edge/emotes/Sit_Edge2_emote.glb +0 -0
- package/prefabs/sit-spot-edge/scripts/seat.ts +191 -0
- package/prefabs/sit-spot-edge/thumbnail.png +0 -0
- package/prefabs/small-couch/TwoSeater_Couch.glb +0 -0
- package/prefabs/small-couch/composite.json +100 -0
- package/prefabs/small-couch/data.json +30 -0
- package/prefabs/small-couch/scripts/seat.ts +191 -0
- package/prefabs/small-couch/thumbnail.png +0 -0
- package/prefabs/spawner/ai.md +109 -0
- package/prefabs/spawner/composite.json +73 -0
- package/prefabs/spawner/data.json +22 -0
- package/prefabs/spawner/scripts/spawner.ts +380 -0
- package/prefabs/spawner/thumbnail.png +0 -0
- package/prefabs/steampunk-bench/Steampunk Bench.glb +0 -0
- package/prefabs/steampunk-bench/composite.json +100 -0
- package/prefabs/steampunk-bench/data.json +30 -0
- package/prefabs/steampunk-bench/scripts/seat.ts +191 -0
- package/prefabs/steampunk-bench/thumbnail.png +0 -0
- package/prefabs/steampunk-chair/Steampunk Chair.glb +0 -0
- package/prefabs/steampunk-chair/composite.json +74 -0
- package/prefabs/steampunk-chair/data.json +30 -0
- package/prefabs/steampunk-chair/scripts/seat.ts +191 -0
- package/prefabs/steampunk-chair/thumbnail.png +0 -0
- package/prefabs/tall-stool/Stool_D.glb +0 -0
- package/prefabs/tall-stool/composite.json +74 -0
- package/prefabs/tall-stool/data.json +30 -0
- package/prefabs/tall-stool/scripts/seat.ts +191 -0
- package/prefabs/tall-stool/thumbnail.png +0 -0
- package/prefabs/trigger-zone/ai.md +115 -0
- package/prefabs/trigger-zone/composite.json +52 -0
- package/prefabs/trigger-zone/data.json +31 -0
- package/prefabs/trigger-zone/scripts/trigger-zone.ts +89 -0
- package/prefabs/trigger-zone/thumbnail.png +0 -0
- package/prefabs/video-screen/composite.json +98 -0
- package/prefabs/video-screen/data.json +21 -0
- package/prefabs/video-screen/thumbnail.png +0 -0
- package/prefabs/video-screen/video_player.glb +0 -0
- package/prefabs/wooden-chair/Chair 1.glb +0 -0
- package/prefabs/wooden-chair/composite.json +74 -0
- package/prefabs/wooden-chair/data.json +30 -0
- package/prefabs/wooden-chair/scripts/seat.ts +191 -0
- package/prefabs/wooden-chair/thumbnail.png +0 -0
- package/prefabs/wooden-chair-armrests/Chair 3.glb +0 -0
- package/prefabs/wooden-chair-armrests/composite.json +74 -0
- package/prefabs/wooden-chair-armrests/data.json +30 -0
- package/prefabs/wooden-chair-armrests/scripts/seat.ts +191 -0
- package/prefabs/wooden-chair-armrests/thumbnail.png +0 -0
- package/scene/about +17 -0
- package/scene/bafkreias2w4xuqaic6sdcvblrisayi6xg7drfowzpt5ubjkmrk3mx6czc4 +1 -0
- package/scene/bafkreiby2gmthtauf7cckttphmhpecsueyypi2hzlke4lcodg7fm4cm2sq +23 -0
- package/scene/bafkreidhwqwajqk4nsuffef5fkdrgmp5ql6vnn2knpqsuqalyosv5o6lk4 +1 -0
- package/scene/bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku +0 -0
- package/scene/bafybeihw3xlbff4sf5sc3kvmlmlwf2visnty5lfymawlunzt5vrkp5fd7u +90 -0
- package/web-build/esbuild.wasm +0 -0
- package/web-build/index.js +3 -0
- package/web-build/sdk-snapshot.json +1 -0
- package/web-build/worker.js +701 -0
- package/README.md +0 -3
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var Tt=Object.create;var qe=Object.defineProperty;var Ut=Object.getOwnPropertyDescriptor;var Ct=Object.getOwnPropertyNames;var Lt=Object.getPrototypeOf,Mt=Object.prototype.hasOwnProperty;var Nt=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Bt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Ct(e))!Mt.call(t,s)&&s!==n&&qe(t,s,{get:()=>e[s],enumerable:!(r=Ut(e,s))||r.enumerable});return t};var Vt=(t,e,n)=>(n=t!=null?Tt(Lt(t)):{},Bt(e||!t||!t.__esModule?qe(n,"default",{value:t,enumerable:!0}):n,t));var Rt=Nt((_r,xt)=>{function mt(t){return Array.isArray(t)?t:[t]}var Te="",wt=" ",je="\\",Rn=/^\s+$/,En=/(?:[^\\]|^)\\$/,An=/^\\!/,$n=/^\\#/,In=/\r?\n/g,Sn=/^\.*\/|^\.+$/,Oe="/",kt="node-ignore";typeof Symbol<"u"&&(kt=Symbol.for("node-ignore"));var yt=kt,_n=(t,e,n)=>Object.defineProperty(t,e,{value:n}),jn=/([0-z])-([0-z])/g,bt=()=>!1,On=t=>t.replace(jn,(e,n,r)=>n.charCodeAt(0)<=r.charCodeAt(0)?e:Te),Tn=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Un=[[/^\uFEFF/,()=>Te],[/((?:\\\\)*?)(\\?\s+)$/,(t,e,n)=>e+(n.indexOf("\\")===0?wt:Te)],[/(\\+?)\s/g,(t,e)=>{let{length:n}=e;return e.slice(0,n-n%2)+wt}],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,n)=>e+6<n.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)(\\\*)+(?=.+)/g,(t,e,n)=>{let r=n.replace(/\\\*/g,"[^\\/]*");return e+r}],[/\\\\\\(?=[$.|*+(){^])/g,()=>je],[/\\\\/g,()=>je],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,n,r,s)=>e===je?`\\[${n}${Tn(r)}${s}`:s==="]"&&r.length%2===0?`[${On(n)}${r}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],vt=Object.create(null),Cn=(t,e)=>{let n=vt[t];return n||(n=Un.reduce((r,[s,i])=>r.replace(s,i.bind(t)),t),vt[t]=n),e?new RegExp(n,"i"):new RegExp(n)},Le=t=>typeof t=="string",Ln=t=>t&&Le(t)&&!Rn.test(t)&&!En.test(t)&&t.indexOf("#")!==0,Mn=t=>t.split(In),Ue=class{constructor(e,n,r,s){this.origin=e,this.pattern=n,this.negative=r,this.regex=s}},Nn=(t,e)=>{let n=t,r=!1;t.indexOf("!")===0&&(r=!0,t=t.substr(1)),t=t.replace(An,"!").replace($n,"#");let s=Cn(t,e);return new Ue(n,t,r,s)},Bn=(t,e)=>{throw new e(t)},B=(t,e,n)=>Le(t)?t?B.isNotRelative(t)?n(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:n("path must not be empty",TypeError):n(`path must be a string, but got \`${e}\``,TypeError),Pt=t=>Sn.test(t);B.isNotRelative=Pt;B.convert=t=>t;var Ce=class{constructor({ignorecase:e=!0,ignoreCase:n=e,allowRelativePaths:r=!1}={}){_n(this,yt,!0),this._rules=[],this._ignoreCase=n,this._allowRelativePaths=r,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[yt]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Ln(e)){let n=Nn(e,this._ignoreCase);this._added=!0,this._rules.push(n)}}add(e){return this._added=!1,mt(Le(e)?Mn(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,n){let r=!1,s=!1;return this._rules.forEach(i=>{let{negative:c}=i;if(s===c&&r!==s||c&&!r&&!s&&!n)return;i.regex.test(e)&&(r=!c,s=c)}),{ignored:r,unignored:s}}_test(e,n,r,s){let i=e&&B.convert(e);return B(i,e,this._allowRelativePaths?bt:Bn),this._t(i,n,r,s)}_t(e,n,r,s){if(e in n)return n[e];if(s||(s=e.split(Oe)),s.pop(),!s.length)return n[e]=this._testOne(e,r);let i=this._t(s.join(Oe)+Oe,n,r,s);return n[e]=i.ignored?i:this._testOne(e,r)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return mt(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},le=t=>new Ce(t),Vn=t=>B(t&&B.convert(t),t,bt);le.isPathValid=Vn;le.default=le;xt.exports=le;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=n=>/^\\\\\?\\/.test(n)||/["<>|\u0000-\u001F]+/u.test(n)?n:n.replace(/\\/g,"/");B.convert=t;let e=/^[a-z]:\//i;B.isNotRelative=n=>e.test(n)||Pt(n)}});function ue(t){let e=[];for(let n of t.split("/"))n===".."?e.pop():n!==""&&n!=="."&&e.push(n);return"/"+e.join("/")}var L=(t,e)=>ue(t+"/"+e);function N(t){let e=t.lastIndexOf("/");return e<=0?"/":t.slice(0,e)}function Ge(t){let e=t.slice(t.lastIndexOf("/")+1),n=e.lastIndexOf(".");return n<=0?"":e.slice(n)}var Wt=new TextDecoder,te=class{constructor(){this.files=new Map;this.dirs=new Set;this.parsed=new Map}set(e,n){this.files.set(e,n),this.parsed.delete(e);for(let r=N(e);!this.dirs.has(r)&&(this.dirs.add(r),r!=="/");r=N(r));}has(e){return this.files.has(e)}isDir(e){return this.dirs.has(e)}read(e){return this.files.get(e)}text(e){let n=this.files.get(e);return n===void 0||typeof n=="string"?n:Wt.decode(n)}json(e){if(this.parsed.has(e))return this.parsed.get(e);let n,r=this.text(e);if(r!==void 0)try{n=JSON.parse(r)}catch{n=void 0}return this.parsed.set(e,n),n}},P=t=>typeof t=="object"&&t!==null&&!Array.isArray(t);var z=".dcl-package.json",ge=class{constructor(){this.packages=new Map}has(e){return this.packages.has(e)}list(e){return[...this.packages.get(e)?.keys()??[]]}read(e,n){return this.packages.get(e)?.get(n)}write(e,n,r){let s=this.packages.get(e);s===void 0&&this.packages.set(e,s=new Map),s.set(n,r)}remove(e){this.packages.delete(e)}},He=t=>Array.isArray(t)?t.filter(e=>typeof e=="string"):[];async function X(t,e){if(!await t.has(e))return;let n=await t.read(e,z);if(n!==void 0)try{let r=JSON.parse(new TextDecoder().decode(n));return!P(r)||typeof r.integrity!="string"?void 0:{integrity:r.integrity,files:Number(r.files)||0,bytes:Number(r.bytes)||0,installScripts:He(r.installScripts),native:r.native===!0,nodeBuiltins:He(r.nodeBuiltins)}}catch{return}}var Je=async(t,e,n)=>t.write(e,z,new TextEncoder().encode(JSON.stringify(n)));async function pe(t,e,n){let r;try{r=await fetch(t,e===void 0?{}:{integrity:e,mode:"cors"})}catch(s){if(e===void 0)throw s;let i=await fetch(t).then(c=>c.ok,()=>!1);throw new Error(i?`${n} does not match the hash this editor was published with. The editor will not run it: reload the page, and if this persists the files you were served were altered.`:`${n} could not be loaded (${t}). Check the connection and reload the page.`)}if(!r.ok)throw new Error(`${n} could not be loaded: ${r.status} ${t}`);return r}var Xe=/\.(tsx?|mts|cts|jsx?|mjs|cjs|json|composite|css|txt)$/,Dt=/\.d\.[mc]?ts$/;function zt(t){let e=t.get("scene.json");if(e!==void 0)try{let n=JSON.parse(new TextDecoder().decode(e)).main;return typeof n=="string"?n:void 0}catch{return}}async function Ft(t){let{integrity:e}=t;if(e===void 0)return new Worker(t.workerUrl);let n=new URL(t.workerUrl,location.href).href,r=await(await pe(n,e.worker,"web-build/worker.js")).text(),s=URL.createObjectURL(new Blob([r],{type:"text/javascript"})),i=new Worker(s);return setTimeout(()=>URL.revokeObjectURL(s),6e4),i}function Kt(t){let e=Ft(t),n=m=>void e.then(g=>g.postMessage(m),()=>{}),r=new Map,s=1,i=new Map,c=1,l=()=>{},a=()=>{},d=new Promise((m,g)=>{l=m,a=g}),f=m=>{a(new Error(m));for(let[g,v]of r){let E={type:"failed",buildId:g,message:m};t.onEvent?.(E),v.resolve({buildId:g,ok:!1,outputs:new Map,diagnostics:[],events:[...v.events,E],ms:0})}r.clear();for(let g of i.values())g.reject(new Error(m));i.clear()},h=m=>{let g=m.data;if(g.type==="ready")l({sdkVersion:g.sdkVersion,esbuildVersion:g.esbuildVersion,snapshot:{sdkVersion:g.sdkVersion,provided:g.provided}});else if(g.type==="packagesSet"){let v=i.get(g.requestId);i.delete(g.requestId),g.error===void 0?v?.resolve(g.shadowed):v?.reject(new Error(g.error))}else if(g.type==="initFailed")f(g.message);else if(g.type==="event")r.get(g.event.buildId)?.events.push(g.event),t.onEvent?.(g.event);else{let v=r.get(g.buildId);if(v===void 0)return;r.delete(g.buildId),v.resolve({buildId:g.buildId,ok:v.events.some(E=>E.type==="bundleSaved"),outputs:new Map(g.outputs),diagnostics:v.events.flatMap(E=>E.type==="diagnostics"?E.diagnostics:[]),events:v.events,ms:g.ms})}};e.then(m=>{m.onerror=g=>f(g.message||"The build worker failed to start"),m.onmessage=h},m=>f(m instanceof Error?m.message:String(m)));let{integrity:y}=t;return n({type:"init",wasmUrl:new URL(t.wasmUrl,location.href).href,snapshotUrl:new URL(t.snapshotUrl,location.href).href,integrity:y===void 0?void 0:{wasm:y.wasm,snapshot:y.snapshot}}),d.catch(()=>{}),{ready:d,build(m,g={}){let v=s++,E=zt(m),$=[...m].filter(([I])=>Xe.test(I)&&I!==E);return new Promise(I=>{r.set(v,{events:[],resolve:I}),n({type:"build",buildId:v,files:$,options:g})})},async setPackages(m,g){let v=[],E=0;for(let[C,H]of Object.entries(m?.packages??{})){let fe=g===void 0?void 0:await X(g,C);if(g===void 0||fe?.integrity!==H.integrity)throw new Error(`${C} is not in the package store`);for(let _ of await g.list(C)){if(!Xe.test(_)||Dt.test(_)||_===z)continue;let D=await g.read(C,_);if(D===void 0)throw new Error(`${C} is incomplete in the package store: ${_}`);v.push([C,_,D]),E+=D.length}}let $=c++,I=await new Promise((C,H)=>{i.set($,{resolve:C,reject:H}),n({type:"packages",requestId:$,lock:m,files:v})});return{packages:Object.keys(m?.packages??{}).length-I.length,files:v.length,bytes:E,shadowed:I}},dispose(){e.then(m=>m.terminate(),()=>{}),f("The scene builder was disposed")}}}var re="0|[1-9]\\d*",Ze="(?:-([0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z.-]+)?",qt=new RegExp(`^[v=\\s]*(${re})\\.(${re})\\.(${re})${Ze}$`),he=`${re}|[xX*]`,Gt=new RegExp(`^[v=\\s]*(${he})(?:\\.(${he})(?:\\.(${he})${Ze})?)?$`),Ht=/^(<=|>=|<|>|=|\^|~>|~)?\s*(.*)$/,Ye=256;function V(t){if(t.length>Ye)return;let e=qt.exec(t.trim());if(e===null)return;let[n,r,s]=[Number(e[1]),Number(e[2]),Number(e[3])];if([n,r,s].every(Number.isSafeInteger))return{major:n,minor:r,patch:s,prerelease:Qe(e[4])}}var Qe=t=>t===void 0?[]:t.split(".").map(e=>/^\d+$/.test(e)?Number(e):e);function se(t,e){let n=t.major-e.major||t.minor-e.minor||t.patch-e.patch;if(n!==0)return Math.sign(n);if(t.prerelease.length===0||e.prerelease.length===0)return Math.sign(e.prerelease.length-t.prerelease.length);for(let r=0;;r++){let[s,i]=[t.prerelease[r],e.prerelease[r]];if(s===void 0&&i===void 0)return 0;if(s===void 0)return-1;if(i===void 0)return 1;if(s!==i)return typeof s!=typeof i?typeof s=="number"?-1:1:s<i?-1:1}}var ne=(t,e=0,n=0,r=[])=>({major:t,minor:e,patch:n,prerelease:r}),me=t=>t===void 0||/^[xX*]$/.test(t);function we(t,e){let[,n="",r=""]=Ht.exec(t)??[],s=Gt.exec(r);if(s===null)return;let[i,c,l]=[me(s[1]),me(s[2]),me(s[3])],a=i?0:Number(s[1]),d=i||c?0:Number(s[2]),f=i||c||l?0:Number(s[3]),h=!i&&!c&&!l,y=e?[0]:[],m=ne(a,d,f,h?Qe(s[4]):y),g=I=>({op:"<",version:{...I,prerelease:[0]}}),v=ne(a+1),E=ne(a,d+1);if(n==="^"){if(i)return[];let I=ne(a,d,f+1);return a>0||c?I=v:(d>0||l)&&(I=E),[{op:">=",version:m},g(I)]}if(n==="~"||n==="~>")return i?[]:[{op:">=",version:m},g(c?v:E)];if(h)return[{op:n===""?"=":n,version:m}];if(n===""||n==="=")return i?[]:[{op:">=",version:m},g(c?v:E)];if(i)return n==="<"||n===">"?null:[];let $=c?v:E;return n===">"?[{op:">=",version:{...$,prerelease:y}}]:n==="<="?[g($)]:n==="<"?[g(m)]:[{op:">=",version:m}]}function Jt(t,e,n){let r=we(">="+t,n),s=we("<="+e,n);if(r===void 0||s===void 0||r===null||s===null)return;let[i]=r;return n&&i!==void 0&&i.version.prerelease.length===0&&(i.version.prerelease=[0]),[...r,...s]}function et(t,e=!1){if(t.length>Ye)return;let n=[];for(let r of t.split("||")){let s=r.trim(),i=/^(\S+)\s+-\s+(\S+)$/.exec(s);if(i!==null){let a=Jt(i[1],i[2],e);if(a===void 0)return;n.push(a);continue}let c=[],l=!1;for(let a of s.replace(/(<=|>=|<|>|=|\^|~>|~)\s+/g,"$1").split(/\s+/)){if(a==="")continue;let d=we(a,e);if(d===void 0)return;d===null?l=!0:c.push(...d)}l||n.push(c)}return n}var Z=t=>et(t)!==void 0;function Xt(t,{op:e,version:n}){let r=se(t,n);switch(e){case"=":return r===0;case"<":return r<0;case"<=":return r<=0;case">":return r>0;case">=":return r>=0}}function F(t,e,n={}){let r=typeof t=="string"?V(t):t,s=et(e,n.includePrerelease===!0);return r===void 0||s===void 0?!1:s.some(i=>i.every(c=>Xt(r,c))?r.prerelease.length===0||n.includePrerelease===!0?!0:i.some(({version:c})=>c.prerelease.length>0&&c.major===r.major&&c.minor===r.minor&&c.patch===r.patch):!1)}function ye(t,e){let n;for(let r of t){let s=V(r);s===void 0||!F(s,e)||(n===void 0||se(s,n.version)>0)&&(n={text:r,version:s})}return n?.text}var Zt="dcl-editor.lock.json",Yt=/^(?:@[A-Za-z0-9-~][A-Za-z0-9-._~]*\/)?[A-Za-z0-9-~][A-Za-z0-9-._~]*$/,Qt=/^sha512-[A-Za-z0-9+/]{86}==$/,K=t=>t.length<=214&&Yt.test(t);function q(t){let e=t.lastIndexOf("@");if(e<=0)return;let[n,r]=[t.slice(0,e),t.slice(e+1)];return K(n)&&V(r)!==void 0?{name:n,version:r}:void 0}var M=(t,e)=>e.startsWith("npm:")?e.slice(4):`${t}@${e}`,ve=(t,e)=>e.startsWith(t+"@")&&e.lastIndexOf("@")===t.length?e.slice(t.length+1):"npm:"+e;function tt(t){if(t===void 0)return{};if(!P(t))return;let e={};for(let[n,r]of Object.entries(t)){if(typeof r!="string"||!K(n)||q(M(n,r))===void 0)return;e[n]=r}return e}function en(t){if(t===void 0)return;let e;try{e=JSON.parse(typeof t=="string"?t:new TextDecoder().decode(t))}catch{return}if(!P(e)||e.lockfileVersion!==1||typeof e.registry!="string"||!P(e.packages))return;let n=tt(e.dependencies);if(n===void 0)return;let r={};for(let[s,i]of Object.entries(e.packages)){if(q(s)===void 0||!P(i))return;let c=tt(i.dependencies);if(typeof i.resolved!="string"||typeof i.integrity!="string"||!Qt.test(i.integrity)||c===void 0)return;r[s]={resolved:i.resolved,integrity:i.integrity,...Object.keys(c).length>0?{dependencies:c}:{}}}return{lockfileVersion:1,registry:e.registry,dependencies:n,packages:r}}var tn=t=>JSON.stringify(t,null,2)+`
|
|
2
|
+
`;var ke="web",Y=/^[a-z0-9][a-z0-9-]{0,63}$/,nt=/^[A-Za-z0-9_.]{1,64}$/,rt="\0";function st(t){let e="";for(let n of new TextEncoder().encode(t))e+=String.fromCharCode(n);return btoa(e)}function nn(t){return new TextDecoder().decode(Uint8Array.from(atob(t),e=>e.charCodeAt(0)))}function be(t){if(!Y.test(t))throw new Error(`Invalid preview project id "${t}"`);return`/preview/${t}`}function it(t){if(!nt.test(t))throw new Error(`Invalid preview machine id "${t}"`);return"-"+t}var Pe=(t,e=ke)=>"b64-"+st(be(t)+it(e)),xe=(t,e,n,r=ke)=>"b64-"+st(`${be(t)}/${e}${rt}${n}${it(r)}`);function rn(t){if(!t.startsWith("b64-"))return null;let e;try{e=nn(t.slice(4))}catch{return null}let n=e.lastIndexOf("-"),r=e.slice(n+1);if(n===-1||!nt.test(r))return null;let[s,i]=e.slice(0,n).split(rt),c=/^\/preview\/([^/]+)(?:\/(.+))?$/.exec(s);return c===null||!Y.test(c[1])?null:{projectId:c[1],file:c[2]??"",version:i,machineId:r}}var G=t=>t;async function Re(t){let e=new Uint8Array(await crypto.subtle.digest("SHA-256",G(t)));return String(e.slice(0,6).reduce((n,r)=>n*256+r,0))}var Ee="https://registry.npmjs.org";var Ae={packages:200,unpackedBytes:104857600,tarballBytes:20971520},x=class extends Error{constructor(n,r,s){super(r);this.code=n;this.pkg=s;this.name="PackageResolveError"}};var $e=t=>t instanceof Error?t.message:String(t);function ie(t){let e={};if(P(t))for(let[n,r]of Object.entries(t))typeof r=="string"&&(e[n]=r);return e}function oe(t,e){return t<e?-1:t>e?1:0}var W=t=>Object.entries(t).sort(([e],[n])=>oe(e,n));function Q(t){try{return new URL(t).origin}catch{throw new x("invalid",`"${t}" is not a url`)}}function ae(t,e){let n=t,r=e.trim();if(r.startsWith("npm:")){let s=r.lastIndexOf("@");n=s>4?r.slice(4,s):r.slice(4),r=s>4?r.slice(s+1):"latest"}return/^(file|link|portal):/.test(r)?{kind:"local"}:/^[a-z+]+:/.test(r)||r.startsWith("git@")||r.includes("/")||!K(n)?{kind:"unsupported"}:{kind:"registry",name:n,range:r===""?"*":r}}function Ie(t,e){let n=P(e)&&P(e.dist)?e.dist:void 0;if(!P(e)||n===void 0||typeof n.tarball!="string")throw new x("invalid",`the registry has no tarball for ${t}`,t);let r=ie(e.optionalDependencies),s=ie(e.dependencies);for(let d of Object.keys(r))delete s[d];let i=P(e.peerDependenciesMeta)?e.peerDependenciesMeta:{},c={};for(let[d,f]of Object.entries(ie(e.peerDependencies))){let h=i[d];!(P(h)&&h.optional===!0)&&s[d]===void 0&&r[d]===void 0&&(c[d]=f)}let l=e.bundleDependencies??e.bundledDependencies,a=typeof n.integrity=="string"?n.integrity.split(/\s+/).find(d=>d.startsWith("sha512-")):void 0;return{tarball:n.tarball,integrity:a?.split("?")[0],shasum:typeof n.shasum=="string"?n.shasum.toLowerCase():void 0,dependencies:s,optional:r,peers:c,bundled:l===!0?"all":new Set(Array.isArray(l)?l.filter(d=>typeof d=="string"):[]),platform:e.os!==void 0||e.cpu!==void 0||e.libc!==void 0}}async function Se(t,e){return new Uint8Array(await crypto.subtle.digest(t,G(e)))}function ot(t){let e="";for(let n of t)e+=String.fromCharCode(n);return btoa(e)}var at=t=>Array.from(t,e=>e.toString(16).padStart(2,"0")).join("");function ct(t){let e=t.url.replace(/\/+$/,""),n=Q(e),r=new Map,s=0;async function i(a,d){s++;let f;try{f=await t.fetch(a,{headers:d===void 0?void 0:{Accept:d},credentials:"omit",signal:t.signal})}catch(h){throw new x("network",`${a}: ${$e(h)}`)}if(f.url!==""&&Q(f.url)!==n)throw new x("registry-origin",`${a} was answered by ${Q(f.url)}, not by ${n}`);return f}async function c(a){if(t.frozen)throw new x("frozen",`${a} is not pinned by the lock, and the project is frozen`,a);let d=await i(`${e}/${a.replace("/","%2f")}`,"application/vnd.npm.install-v1+json");if(d.status===404)throw new x("not-found",`${a} is not in the registry`,a);if(!d.ok)throw new x("network",`${a}: the registry answered ${d.status}`,a);let f;try{f=await d.json()}catch(h){throw new x("network",`${a}: ${$e(h)}`,a)}if(!P(f)||!P(f.versions))throw new x("invalid",`${a}: the registry sent no versions`,a);return{tags:ie(f["dist-tags"]),versions:f.versions}}async function l(a,d,f){let h=new x("limit",`${d}: the tarball is larger than ${f} bytes`,d);if(Number(a.headers.get("content-length"))>f)throw h;try{let y=a.body?.getReader();if(y===void 0){let $=new Uint8Array(await a.arrayBuffer());if($.length>f)throw h;return $}let m=[],g=0;for(;;){let{done:$,value:I}=await y.read();if($)break;if(g+=I.length,g>f)throw await y.cancel(),h;m.push(I)}let v=new Uint8Array(g),E=0;for(let $ of m)v.set($,E),E+=$.length;return v}catch(y){throw y instanceof x?y:new x("network",`${d}: ${$e(y)}`,d)}}return{url:e,requests:()=>s,packument(a){let d=r.get(a);return d===void 0&&r.set(a,d=c(a)),d},async tarball(a,d,f){if(t.frozen)throw new x("frozen",`${a} is not in the package store, and the project is frozen`,a);if(Q(d)!==n)throw new x("registry-origin",`${a}: its tarball is on ${Q(d)}, not on ${n}`,a);let h=await i(d);if(!h.ok)throw new x("network",`${a}: the registry answered ${h.status}`,a);return l(h,a,f)}}}var sn=12;function on(t,e=new Set){let n=new Map,r=[],s=new Set,i=[],c=(a,d)=>{n.set(a,d),r.push({dir:a,key:d}),i.push({dir:a,key:d})},l=(a,d,f)=>{if(t.packages[f]!==void 0){if(e.has(d)){s.add(f);return}for(let h=a;;){let y=n.get(`${h===""?"":h+"/"}node_modules/${d}`);if(y===f)return;if(y!==void 0){if(a.split("/node_modules/").length>sn)throw new Error(`${f} is part of a cycle of conflicting versions`);c(`${a}/node_modules/${d}`,f);return}if(h==="")break;let m=h.lastIndexOf("/node_modules/");h=m===-1?"":h.slice(0,m)}c("node_modules/"+d,f)}};for(let[a,d]of W(t.dependencies))l("",a,M(a,d));for(let a=i.shift();a!==void 0;a=i.shift())for(let[d,f]of W(t.packages[a.key]?.dependencies??{}))l(a.dir,d,M(d,f));return{placements:r,shadowed:[...s]}}var dt=[".tsx",".ts",".jsx",".js",".css",".json"],lt=[".jsx",".js",".css",".json",".tsx",".ts"],an={".js":[".ts",".tsx"],".jsx":[".ts",".tsx"],".mjs":[".mts"],".cjs":[".cts"]},ft=t=>!/^\.{0,2}\//.test(t)&&t!=="."&&t!=="..",cn=t=>t.split("/",t.startsWith("@")?2:1).join("/"),_e=t=>(t+"/").includes("/node_modules/");function dn(t){let e=t.replace(/^\.\//,""),n=(e.includes("/")?e:"**/"+e).replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*\/|\*\*|\*|\?/g,r=>r==="**/"?"(?:.*/)?":r==="**"?".*":r==="*"?"[^/]*":"[^/]");return new RegExp("^"+n+"$")}var ce=class{constructor(e){this.config=e;this.packages=new Map}resolve(e,n,r){let s=this.locate(e,n,r);return s===void 0?{kind:"missing"}:s.disabled?{kind:"disabled",path:s.path}:{kind:"file",path:s.path,sideEffects:this.hasSideEffects(s.path)}}locate(e,n,r){if(!ft(e))return this.loadPath(e.startsWith("/")?ue(e):L(n,e),r);for(let[c,l]of Object.entries(this.config.aliases??{}))if(e===c||e.startsWith(c+"/"))return this.loadPath(l+e.slice(c.length),r);let s=this.enclosingPackage(n);if(e.startsWith("#"))return s===null?void 0:this.packageImports(s,e,r);if(s!==null&&P(s.json.browser)){let c=s.json.browser[e];if(c===!1)return{path:e,disabled:!0};if(typeof c=="string")return ft(c)?this.loadPackage(c,s.dir,r):this.loadPath(L(s.dir,c),r)}let{tsconfig:i}=this.config;if(i!==void 0&&!_e(n)){let c=this.loadTsconfigPath(i,e,r);if(c!==void 0)return c}return this.loadPackage(e,n,r)}loadTsconfigPath(e,n,r){let s;for(let[i,c]of Object.entries(e.paths??{})){let l=i.indexOf("*");if(l===-1){if(i===n){s={star:"",prefix:1/0,targets:c};break}continue}let a=i.slice(0,l),d=i.slice(l+1);n.length<a.length+d.length||!n.startsWith(a)||!n.endsWith(d)||(s===void 0||a.length>s.prefix)&&(s={star:n.slice(a.length,n.length-d.length),prefix:a.length,targets:c})}if(s!==void 0)for(let i of s.targets){let c=this.loadPath(L(e.pathsBase,i.replace("*",s.star)),r);if(c!==void 0)return c}return e.baseUrl===void 0?void 0:this.loadPath(L(e.baseUrl,n),r)}loadPackage(e,n,r){let s=cn(e),i=e.slice(s.length);for(let c=n;;c=N(c)){if(!c.endsWith("/node_modules")){let l=L(c,"node_modules/"+s),a=this.config.links?.[s];if(!this.config.vfs.isDir(l)&&a!==void 0&&c===this.config.linkRoot&&(l=a),this.config.vfs.isDir(l)){let d=this.packageAt(l)?.json.exports;if(d!=null){let h=this.matchExports(l,d,"."+i,r);return h===void 0?void 0:this.applyBrowserMap(h,r)}let f=this.loadPath(l+i,r);if(f!==void 0)return f}}if(c==="/")return}}packageImports(e,n,r){let{imports:s}=e.json;return P(s)?this.matchSubpath(s,n,r,c=>c.startsWith("./")?this.loadPath(L(e.dir,c),r):this.loadPackage(c,e.dir,r)):void 0}matchExports(e,n,r,s){let i=P(n)&&Object.keys(n).some(l=>l.startsWith("."))?n:{".":n};return this.matchSubpath(i,r,s,l=>{if(!l.startsWith("./"))return;let a=L(e,l);return this.config.vfs.has(a)?{path:a}:void 0})?.path}matchSubpath(e,n,r,s){let i=new Set(["browser","default","module",r]),c=(d,f)=>{if(typeof d=="string")return s(f===null?d:d.split("*").join(f));if(Array.isArray(d)){for(let h of d){let y=c(h,f);if(y!==void 0)return y}return}if(P(d)){for(let[h,y]of Object.entries(d)){if(!i.has(h))continue;let m=c(y,f);if(m!==void 0)return m}return}return d===null?null:void 0};if(Object.prototype.hasOwnProperty.call(e,n)&&!n.includes("*"))return c(e[n],null)??void 0;let l;for(let d of Object.keys(e)){let f=d.indexOf("*"),h=f===-1?d:d.slice(0,f),y=f===-1?"":d.slice(f+1);f===-1&&!d.endsWith("/")||n.length<h.length+y.length||!n.startsWith(h)||!n.endsWith(y)||(l===void 0||d.length>l.key.length)&&(l={key:d,star:n.slice(h.length,n.length-y.length)})}if(l===void 0)return;let a=e[l.key];return l.key.endsWith("/")&&typeof a=="string"?s(a+l.star):c(a,l.star)??void 0}loadPath(e,n){let r=this.loadAsFile(e)??this.loadAsDirectory(e,n);return r===void 0?void 0:this.applyBrowserMap(r,n)}applyBrowserMap(e,n){let r=this.enclosingPackage(N(e));if(r===null||!P(r.json.browser))return{path:e};let s="./"+e.slice(r.dir.length+1),i=s.replace(/\.(js|json)$/,"");for(let c of[s,i,s.slice(2),i.slice(2)]){let l=r.json.browser[c];if(l===!1)return{path:e,disabled:!0};if(typeof l=="string"){let a=L(r.dir,l),d=this.loadAsFile(a)??this.loadAsDirectory(a,n);return d===void 0?void 0:{path:d}}}return{path:e}}loadAsFile(e){let{vfs:n}=this.config;if(n.has(e))return e;for(let s of _e(e)?lt:dt)if(n.has(e+s))return e+s;let r=Ge(e);for(let s of an[r]??[]){let i=e.slice(0,-r.length)+s;if(n.has(i))return i}}loadAsIndex(e){for(let n of _e(e)?lt:dt){let r=e+"/index"+n;if(this.config.vfs.has(r))return r}}loadAsDirectory(e,n){if(!this.config.vfs.isDir(e))return;let r=this.packageAt(e);return(r===null?void 0:this.loadMainField(r,n))??this.loadAsIndex(e)}loadMainField(e,n){let r=l=>{if(typeof l!="string")return;let a=L(e.dir,l);return this.loadAsFile(a)??this.loadAsIndex(a)},s=r(e.json.browser);if(s!==void 0)return s;let i=r(e.json.module);if(i===void 0)return r(e.json.main);let c=e.json.main===void 0?this.loadAsIndex(e.dir):r(e.json.main);return n==="require"&&c!==void 0?c:i}packageAt(e){let n=this.packages.get(e);if(n!==void 0)return n;let r=this.config.vfs.json(e+"/package.json"),s=P(r)?{dir:e,json:r}:null;return this.packages.set(e,s),s}enclosingPackage(e){for(let n=e;;n=N(n)){let r=this.packageAt(n);if(r!==null)return r;if(n==="/")return null}}hasSideEffects(e){let n=this.enclosingPackage(N(e)),r=n?.json.sideEffects;if(n===null||r===void 0||r===!0)return!0;if(!Array.isArray(r))return r!==!1;let s=e.slice(n.dir.length+1);return r.some(i=>typeof i=="string"&&dn(i).test(s))}};var ln=new Set("assert async_hooks buffer child_process cluster console constants crypto dgram diagnostics_channel dns domain events fs http http2 https inspector module net os path perf_hooks process punycode querystring readline repl stream string_decoder sys timers tls trace_events tty url util v8 vm wasi worker_threads zlib".split(" ")),ut=t=>t.startsWith("node:")||ln.has(t.split("/",1)[0]);var fn=/(?<![.\w$])require\(\s*['"]([^'"\n]+)['"]\s*\)|\b(?:import|export)\b[^'"\n;]*?\bfrom\s*['"]([^'"\n]+)['"]|\bimport\s*\(?\s*['"]([^'"\n]+)['"]/g,un=/\.(js|mjs|cjs|json)$/,gn=2e3,pn=1024*1024;function hn(t){let e=t.get("package.json");if(e===void 0)return{};try{let n=JSON.parse(new TextDecoder().decode(e));return P(n)?n:{}}catch{return{}}}function mn(t,e){let n=new te,r="/node_modules/"+t;for(let[d,f]of e)un.test(d)&&f.length<=pn&&n.set(`${r}/${d}`,f);let s=new ce({vfs:n}),i=s.resolve(t,"/","import"),c=new Set,l=new Set,a=i.kind==="file"?[i.path]:[];for(let d=a.pop();d!==void 0&&l.size<gn;d=a.pop())if(!(l.has(d)||d.endsWith(".json"))){l.add(d);for(let f of(n.text(d)??"").matchAll(fn)){let h=f[1]??f[2]??f[3],y=s.resolve(h,N(d),f[1]===void 0?"import":"require");y.kind==="file"?a.push(y.path):y.kind==="missing"&&ut(h)&&c.add(h.replace(/^node:/,"").split("/",1)[0])}}return[...c].sort()}function gt(t,e){let n=hn(e),r=P(n.scripts)?n.scripts:{},s=e.has("binding.gyp")||n.gypfile===!0,i=["preinstall","install","postinstall"].filter(c=>typeof r[c]=="string");return s&&!i.includes("install")&&i.push("install"),{installScripts:i,native:s||[...e.keys()].some(c=>c.endsWith(".node")),nodeBuiltins:mn(t,e)}}var O=class extends Error{constructor(n,r){super(r);this.reason=n}},J=512,de=new TextDecoder;async function pt(t,e){let r=new Blob([G(t)]).stream().pipeThrough(new DecompressionStream("gzip")).getReader(),s=[],i=0;try{for(;;){let{done:a,value:d}=await r.read();if(a)break;if(i+=d.length,i>e)throw await r.cancel(),new O("too-large",`unpacks to more than ${e} bytes`);s.push(d)}}catch(a){throw a instanceof O?a:new O("malformed","is not a gzip archive")}let c=new Uint8Array(i),l=0;for(let a of s)c.set(a,l),l+=a.length;return c}function ee(t,e,n){let r=e;for(;r<e+n&&t[r]!==0;)r++;return de.decode(t.subarray(e,r))}function wn(t){if(t[124]&128)throw new O("too-large","holds an entry larger than 8 GB");let e=parseInt(ee(t,124,12).trim()||"0",8);if(!Number.isSafeInteger(e)||e<0)throw new O("malformed","has an entry with no valid size");return e}function yn(t){let e=0;for(let n=0;n<J;n++)e+=n>=148&&n<156?32:t[n];return e===parseInt(ee(t,148,8).trim(),8)}function vn(t){let e={};for(let n=0;n<t.length;){let r=n;for(;r<t.length&&t[r]!==32;)r++;let s=Number(de.decode(t.subarray(n,r)));if(!Number.isSafeInteger(s)||s<=0)break;let i=de.decode(t.subarray(r+1,n+s-1)),c=i.indexOf("=");c>0&&(e[i.slice(0,c)]=i.slice(c+1)),n+=s}return e}function kn(t){if(t.includes("\0"))throw new O("unsafe-path","has an entry with a NUL in its path");let e=t.split(/[\\/]/);if(t.startsWith("/")||t.startsWith("\\")||/^[A-Za-z]:/.test(t))throw new O("unsafe-path",`has an entry with an absolute path: ${t}`);if(e.includes(".."))throw new O("unsafe-path",`has an entry that leaves the package: ${t}`);let n=e.filter(r=>r!==""&&r!==".").slice(1);return n.length===0?void 0:n.join("/")}function ht(t){let e=new Map,n=[],r,s={};for(let i=0;i+J<=t.length;){let c=t.subarray(i,i+J);if(c.every(g=>g===0))break;if(!yn(c))throw new O("malformed","is not a tar archive");let l=String.fromCharCode(c[156]||48),a=s.size===void 0?wn(c):Number(s.size),d=i+J;if(!Number.isSafeInteger(a)||d+a>t.length)throw new O("malformed","is cut short");let f=t.subarray(d,d+a);if(i=d+Math.ceil(a/J)*J,l==="x"){s=vn(f);continue}if(l==="g")continue;if(l==="L"){r=de.decode(f).replace(/\0+$/,"");continue}if(l==="K")continue;let h=ee(c,257,5)==="ustar"?ee(c,345,155):"",y=s.path??r??(h===""?"":h+"/")+ee(c,0,100);r=void 0,s={};let m=kn(y);if(!(l==="5"||m===void 0)){if(l!=="0"&&l!=="7"){n.push(m);continue}e.set(m,f.slice())}}return{files:e,skipped:n}}var Pn=4;async function xn(t){let e=ct({url:t.registry??Ee,fetch:t.fetch??((o,u)=>fetch(o,u)),frozen:t.frozen===!0,signal:t.signal}),n={...Ae,...t.limits},r=t.snapshot?.provided??{},s=t.lock!==void 0&&t.lock.registry===e.url?t.lock:void 0,i={packages:0,downloaded:0,reused:0,requests:0,tarballBytes:0,unpackedBytes:0},c=[],l=(o,u,p)=>{c.some(w=>w.code===o&&w.message===u)||c.push({code:o,message:u,...p===void 0?{}:{package:p}})},a=new Map,d=new Map,f=new Map,h=[],y={};async function m(o){if(a.has(o)||d.has(o)||s?.packages[o]!==void 0)return;let u=q(o);if(u===void 0)throw new x("invalid",`"${o}" is not a package version`);let p=(await e.packument(u.name)).versions[u.version];if(p===void 0)throw new x("no-version",`${o} is not in the registry`,o);d.set(o,Ie(o,p))}async function g(o,u,p){let w=!Z(u),R=j=>{let A=q(j);return A!==void 0&&A.name===o&&(w||F(A.version,u))},T=j=>a.has(j)||s?.packages[j]!==void 0;if(p!==void 0&&R(p)&&T(p))return p;if(!w){let j=Fe=>{let Ke=ye([...Fe].filter(R).map(Ot=>Ot.slice(o.length+1)),u);return Ke===void 0?void 0:`${o}@${Ke}`},A=j(a.keys())??j(Object.keys(s?.packages??{}));if(A!==void 0)return A}let U=await e.packument(o),k=U.tags.latest,b=w?U.tags[u]:k!==void 0&&F(k,u)?k:ye(Object.keys(U.versions),u);if(b===void 0||V(b)===void 0||U.versions[b]===void 0)throw new x("no-version",`no version of ${o} matches "${u}"`,o);let S=`${o}@${b}`;return!a.has(S)&&!d.has(S)&&d.set(S,Ie(S,U.versions[b])),S}function v(o,u){if(a.has(o))return;if(a.size>=n.packages)throw new x("limit",`the project needs more than ${n.packages} packages`);let p=d.get(o),w=s?.packages[o];if(p!==void 0)a.set(o,{resolved:p.tarball,integrity:p.integrity??"",dependencies:{}});else if(w!==void 0)a.set(o,{resolved:w.resolved,integrity:w.integrity,dependencies:{...w.dependencies}});else throw new x("invalid",`${o} was never resolved`,o);f.set(o,u),h.push(o),t.onProgress?.({type:"resolved",package:o})}function E(o,u){let p=ae(o,u);if(t.frozen===!0||r[o]!==void 0||p.kind!=="registry")return;let w=R=>R.startsWith(p.name+"@")&&Z(p.range)&&F(R.slice(p.name.length+1),p.range);[...a.keys(),...Object.keys(s?.packages??{})].some(w)||e.packument(p.name).catch(()=>{})}function $(o,u,p){let w=r[o];if(w===void 0)return!1;let R=u.trim();return w!==""&&Z(R)&&!F(w,R,{includePrerelease:!0})&&(o==="@dcl/sdk"&&p===void 0?l("sdk-version",`This project pins @dcl/sdk ${R}; it is built here with ${w}.`,o):l("snapshot-version",`${p??"This project"} asks for ${o} ${R}; it gets the ${w} the SDK ships.`,p??o)),!0}function I(o,u){let p=f.get(u),w=(p===void 0?void 0:a.get(p)?.dependencies?.[o])??y[o];return w===void 0?void 0:M(o,w)}async function C(o){let u=a.get(o);if(u===void 0)return;let p=u.dependencies??={},w=d.get(o);if(w===void 0){for(let[k,b]of W({...p})){if(r[k]!==void 0){delete p[k];continue}let S=M(k,b);await m(S),v(S,o)}return}let R=[];for(let[k,b]of Object.entries(w.dependencies))R.push([k,b,"required"]);for(let[k,b]of Object.entries(w.optional))R.push([k,b,"optional"]);for(let[k,b]of Object.entries(w.peers))R.push([k,b,"peer"]);R.sort(([k],[b])=>oe(k,b));let T=k=>w.bundled==="all"||w.bundled.has(k);for(let[k,b,S]of R)S!=="peer"&&!T(k)&&E(k,b);let U=0;for(let[k,b,S]of R){if(S!=="peer"&&T(k)||$(k,b,o))continue;let j=ae(k,b);if(j.kind!=="registry"){l("unsupported-spec",`${o} depends on ${k} as "${b}", which is not a registry version; it was left out.`,o);continue}try{let A=S==="peer"?I(k,o):void 0;if(A===void 0?A=await g(j.name,j.range,void 0):Z(j.range)&&!F(A.slice(A.lastIndexOf("@")+1),j.range)&&l("peer-unmet",`${o} expects ${k} ${j.range}; the project uses ${A}.`,o),S==="optional"&&d.get(A)?.platform===!0&&!a.has(A)){U++;continue}v(A,o),p[k]=ve(k,A)}catch(A){if(!(A instanceof x)||A.code==="limit"||A.code==="frozen"||S==="required")throw A;l(S==="peer"?"peer-unmet":"optional-skipped",`${o}: ${k} was left out (${A.message}).`,o)}}U>0&&l("optional-skipped",`${o}: ${U} optional packages built for one platform were left out.`,o)}for(let[o,u]of Object.entries(t.dependencies))typeof u=="string"&&K(o)&&s?.dependencies[o]===void 0&&E(o,u);for(let[o,u]of W(t.dependencies)){if(typeof u!="string"||$(o,u,void 0))continue;let p=ae(o,u);if(p.kind==="local")continue;if(p.kind==="unsupported"||!K(o)){l("unsupported-spec",`${o}: "${u}" is not a registry version; it was left out.`,o);continue}let w=s?.dependencies[o],R=await g(p.name,p.range,w===void 0?void 0:M(o,w));v(R,void 0),y[o]=ve(o,R)}for(let[o,u]of Object.entries(t.devDependencies??{}))typeof u=="string"&&$(o,u,void 0);for(let o=h.shift();o!==void 0;o=h.shift())await C(o);let H=(o,u)=>{if(i.unpackedBytes+=u,i.unpackedBytes>n.unpackedBytes)throw new x("limit",`the packages unpack to more than ${n.unpackedBytes} bytes (at ${o})`,o)};async function fe(o,u){let p=await e.tarball(o,u.resolved,n.tarballBytes),w="sha512-"+ot(await Se("SHA-512",p));if(u.integrity===""){let b=d.get(o)?.shasum;if(b===void 0||at(await Se("SHA-1",p))!==b)throw new x("integrity",`${o}: the tarball does not match the checksum the registry lists`,o);u.integrity=w,l("weak-integrity",`${o} was published with a SHA-1 checksum only; the lock pins what was downloaded.`,o)}else if(w!==u.integrity)throw new x("integrity",`${o}: the tarball does not match its integrity (${u.integrity})`,o);t.onProgress?.({type:"downloaded",package:o,bytes:p.length});let R;try{R=ht(await pt(p,2*n.unpackedBytes+1048576))}catch(b){throw b instanceof O?new x(b.reason==="too-large"?"limit":"unsafe-tarball",`${o} ${b.message}`,o):b}let{files:T}=R;T.delete(z);let U=0;for(let b of T.values())U+=b.length;H(o,U);let k={integrity:u.integrity,files:T.size,bytes:U,...gt(o.slice(0,o.lastIndexOf("@")),T)};await t.store.remove(o);for(let[b,S]of T)await t.store.write(o,b,S);return await Je(t.store,o,k),R.skipped.length>0&&l("links-skipped",`${o}: ${R.skipped.length} links in the tarball were left out.`,o),i.downloaded++,i.tarballBytes+=p.length,k}let _=[...a.keys()],D=new Map,We=0,De=!1,St=async()=>{for(;We<_.length&&!De;){let o=_[We++],u=a.get(o);if(u!==void 0)try{let p=await X(t.store,o),w=p!==void 0&&p.integrity===u.integrity;w&&(H(o,p.bytes),i.reused++),D.set(o,w?p:await fe(o,u)),t.onProgress?.({type:"stored",package:o,reused:w,done:D.size,total:_.length})}catch(p){throw De=!0,p}}};await Promise.all(Array.from({length:Math.min(Pn,_.length)},St));let _t=new Set(Object.entries(y).map(([o,u])=>M(o,u)));for(let o of _){let u=D.get(o);u!==void 0&&(u.installScripts.length>0&&l("install-script",`${o} declares ${u.installScripts.join(", ")} scripts; they are not run here.`,o),u.native&&l("native",`${o} ships native code, which a scene cannot load.`,o),u.nodeBuiltins.length>0&&_t.has(o)&&l("node-builtins",`${o} uses Node built-ins a scene does not have: ${u.nodeBuiltins.join(", ")}.`,o))}let jt=(o,u)=>{let[p,w]=[q(o),q(u)];if(p===void 0||w===void 0||p.name!==w.name)return oe(o,u);let[R,T]=[V(p.version),V(w.version)];return R===void 0||T===void 0?0:se(R,T)},ze={};for(let o of[..._].sort(jt)){let u=a.get(o);if(u===void 0)continue;let p=Object.fromEntries(W(u.dependencies??{}));ze[o]={resolved:u.resolved,integrity:u.integrity,...Object.keys(p).length>0?{dependencies:p}:{}}}return i.packages=_.length,i.requests=e.requests(),{lock:{lockfileVersion:1,registry:e.url,dependencies:Object.fromEntries(W(y)),packages:ze},warnings:c,stats:i}}var Et=Vt(Rt(),1);var Wn=[".*","package.json","package-lock.json","yarn-lock.json","build.json","export","tsconfig.json","tslint.json","node_modules","dclcontext","**/*.ts","**/*.tsx","Dockerfile","thumbnails","dist","README.md","*.blend","*.fbx","*.zip","*.rar","*.map","node_modules/**","*.md"];function Me(t,e){let n=(0,Et.default)().add([...e?.split(`
|
|
3
|
+
`)??[],...Wn].filter(Boolean)),r=[...t].filter(s=>!s.split("/").some(i=>i.startsWith(".")));return n.filter(r)}function At(t){let e=t.scene;if(!P(e))throw new Error('scene.json has no "scene" section');let{base:n,parcels:r}=e;if(typeof n!="string"||!Array.isArray(r))throw new Error("scene.json needs scene.base and scene.parcels");return[...new Set([n,...r.filter(s=>typeof s=="string")])]}function Ne(t){let e=new Set,n=t.files.map(({path:r,version:s})=>{let i=r.toLowerCase();if(e.has(i))throw new Error(`Two files deploy as "${i}"; scene file names are case-insensitive`);return e.add(i),{file:i,hash:xe(t.projectId,r,s,t.machineId)}});return{version:"v3",type:"scene",id:Pe(t.projectId,t.machineId),pointers:At(t.sceneJson),timestamp:t.timestamp,content:n,metadata:t.sdkVersion===void 0?t.sceneJson:{sdkVersion:t.sdkVersion,...t.sceneJson}}}var $t="dcl-editor-preview-v1",Dn="dcl-editor-storage-v1";function It(t,e){if(!Y.test(e))throw new Error(`Invalid preview project id "${e}"`);return new URL(`preview/${e}/`,t).href}var Be=t=>t+"__manifest",Ve=(t,e)=>`${t}content/contents/${e}`,zn=t=>`/reload ${t}`;async function Fn(t){let e=new URL(t.realmUrl).href;if(e!==It(new URL("../../",e),t.projectId))throw new Error(`"${t.realmUrl}" is not the preview realm of project "${t.projectId}"`);let n=new Map([...t.files,...t.buildOutputs]),r=n.get(".dclignore"),s=Me(n.keys(),r===void 0?void 0:new TextDecoder().decode(r)),i=await Promise.all(s.map(async g=>{let v=n.get(g)??new Uint8Array;return{path:g,bytes:v,version:await Re(v)}})),c=await caches.open($t),a=await(await c.match(Be(e)))?.json().catch(()=>{}),d=P(a)&&typeof a.version=="number"?a.version:0,f=Ne({projectId:t.projectId,sceneJson:t.sceneJson,files:i,timestamp:Date.now(),sdkVersion:t.sdkVersion,machineId:t.machineId}),h=new Set;await Promise.all(f.content.map(async({hash:g},v)=>{let E=Ve(e,g);h.add(new URL(E).href),await c.match(E)===void 0&&await c.put(E,new Response(G(i[v].bytes),{headers:{"Content-Type":"application/octet-stream"}}))}));let y={version:d+1,entity:f};await c.put(Be(e),new Response(JSON.stringify(y),{headers:{"Content-Type":"application/json"}}));let m=Ve(e,"");for(let g of await c.keys())g.url.startsWith(m)&&!h.has(g.url)&&await c.delete(g);return{realmUrl:e,entityId:f.id}}export{Ae as DEFAULT_LIMITS,Ee as DEFAULT_REGISTRY,Zt as LOCK_FILE,ge as MemoryPackageStore,z as PACKAGE_RECEIPT,$t as PREVIEW_CACHE_NAME,ke as PREVIEW_MACHINE_ID,Dn as PREVIEW_STORAGE_CACHE_NAME,Y as PROJECT_ID_PATTERN,x as PackageResolveError,Ne as buildPreviewEntity,Re as contentVersion,Kt as createSceneBuilder,rn as decodePreviewId,pe as fetchVerified,on as layoutPackages,M as lockedKey,en as parseLock,xe as previewContentId,Ve as previewContentUrl,Pe as previewEntityId,Be as previewManifestUrl,be as previewProjectRoot,It as previewRealmUrl,Fn as publishPreview,Me as publishableFiles,X as readReceipt,zn as reloadCommand,xn as resolveDependencies,At as scenePointers,tn as serializeLock};
|