{"_id":"mock-block-dock","_rev":"133-05f0e5d4b288f8161654bb7abbe03690","name":"mock-block-dock","dist-tags":{"beta":"0.0.13-beta","next":"0.0.17-canary.3","canary":"0.1.10-canary-20240314113521","latest":"0.1.10"},"versions":{"0.0.2":{"name":"mock-block-dock","version":"0.0.2","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.2","maintainers":[{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"3a622f94e13aa76ae4c2dcaf1a3dc886c14d271c","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.2.tgz","fileCount":62,"integrity":"sha512-nIoYeuTcm1KFNcUFXLCtw64GlVbsQlwMclDSlT32zhniscytdLVUz1YY+c2qGZTn45bTCkNlGKw19kXOA7z3zw==","signatures":[{"sig":"MEQCIFM9NwE/sorQDh+vSVH2YJmHJob+CAUWBxetx0qEKAlIAiAlS8U5sjF+Yp7lrcxLMz4Vi6leVAoap2Zg5ow0g6op6w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":77155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8rqQCRA9TVsSAnZWagAAvLoP/1l8I4WDNmpXli8QF8Yu\nncVfNyQu+8gcm1/2B8fAOEtQKZtD6V/UNc2mXwscPI/AoYrkocFOLZZM96iL\n4X/PBcbtVGP+3pZLfhfM5s5Fj9Um3de44FQ+j71lsJKdonmFy2w4iky7SoAH\ncoWMLdBHe1qCf/WN/jvL/DLjCybSDWm7woW513EKVYPtTL8NYNyj4GnYscjU\np6dSOkuHbUQdmlRzDAOqO8OedTN3BV59brqaM9yreKvEULbOdze9fFywdeN0\nRxS4UiOsc+D8HaCoCW5CfK87jgPydJ4VqdAyLe9C4T2CkNmpWosKqrPomnE9\nSQ33+lXpnKaGdHUqogxmSHRXB61GrC9lHqyvxC9EgwQKnFbRo/VKzZsnlHKz\nWwlBALqGR8e3P6gzgupVqqCnooKtotWTC/5TUOzccek2O+a+NNmzFpVQBp/N\ne6fn8TMUZKvk5JgdbvlSC01N1FpGQqNRGZefsnopr7U81bC26ZTZ+e2fczmx\nr8sZbg06in5botVTiz/zhzunOKwil9uqmcryM6hO2QvJkCoI6KU8J+17SuP2\niJXGPlow8tpx8W5FGPcmBfdeJwBU+uII1AVIEJTl3qTo4Bh81RNwzyU6O3aN\n2EgPc8NBRWXK8IOMeC59lARhbpXlsbGSaCOGTkCgY9mOuvQlxWj5XB9UHkp0\nvt4t\r\n=9RsV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","browser":"./dist/cjs/index.js","gitHead":"0f49ca0f1e1820bf3df026360685b7b9fdbc30c4","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev -- --watch --verbose\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server -d --port 9090 --open --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.3.2","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"14.17.5","dependencies":{"uuid":"^8.3.2","blockprotocol":"0.0.6"},"_hasShrinkwrap":false,"devDependencies":{"react":"^17.0.2","rimraf":"^3.0.2","core-js":"^2.6.12","webpack":"^4.46.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.16.0","typescript":"^4.5.4","@babel/core":"^7.16.5","webpack-cli":"^3.3.12","babel-loader":"^8.2.3","@babel/runtime":"^7.16.5","@babel/preset-env":"^7.16.5","webpack-dev-server":"^3.11.3","@babel/preset-react":"^7.16.5","html-webpack-plugin":"^4.5.2","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.5","@babel/plugin-transform-runtime":"^7.16.5","@babel/plugin-proposal-class-properties":"^7.16.5"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.2_1643297424047_0.1142272061133649","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"mock-block-dock","version":"0.0.3","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.3","maintainers":[{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"ace4e958d8589600ea9cd2c67ca19d8427627b98","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.3.tgz","fileCount":62,"integrity":"sha512-RTfZq9nCzLMkQLpIaouALrnERq4Ndfg+6kC55cE0qzpZNIuG2bsW5mHKzUtTRKqYsCjR3XRLUaRVOMv1RXxD7w==","signatures":[{"sig":"MEUCIQCPpcn+fEIJMANvu7BiQ8IHp+CbS620MBZfGL8eSiYj3gIgSIdVDWn9XVZLPjqHnRbJ4oAxqIj+tfmdY1ftsWAoLKs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":76990,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8to1CRA9TVsSAnZWagAAJg4P/AoAnVYo0aYqlk4s8tgH\njsTvS7adI3SCr3XvN9GMY/fksGB+5938Q8ygLRRyOw4I6pDBtIWVQYPiXxfu\nJCaORxa55kZVYJM9ouLm0fHLaPn4qG9fcALYctIxLdPZ0iBFZwfAbOsEx+QL\nzYyKXmc0y1/PyyZjpoZADH00+WVjxGSf2IPhdguG9HyL2+I/Zi4U8xFRbFRX\ntM7GfZySsik2aKP6XmPl+kE8CzrUb7HjrbQaMJta6f5FVKArBV8xs1bjhIrJ\ntMkKNnn/NYtMyvkL/6cRIJiyL5E4ft1VC5QpFpLs+YH5KuJTU5jV4AtpamWX\nagrtZDLF1XHTUuFtHcjPHP03QBXKfNYmmUWPe3DyhQiSANlC44+1QPiyxQeb\nDnnIe+97BeewUwM/vK9UERcZPepZmzP0qATqSceEfFjMbBpTkTROOv3YV+Ak\ntg/Cy6uHEcBH6UBDIXwepswOhJKEPKNSWP6SaQm/QSMSXnbIq1YnlKvKzSul\nOV9S92LYUIonQH7rwBCSSCVGMbKVx5W2EmZMRyeEUTDZXCRkO76pHWt1JByY\n0fPvAH3y+AJlS0Dryu6fRQSlym7K2JI1Lz16gMVz7a+Rq+0cuRgoQYCRchmb\n1gU07HhBX9DyMr2lkyPtsr2a2vpt2bKkosFlS7vkt9sGoIaXpfV4XfFpME0X\nxwhU\r\n=r9qC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","browser":"./dist/cjs/index.js","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev -- --watch --verbose\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","postinstall":"yarn build","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server -d --port 9090 --open --config dev/webpack.config.js"},"_npmUser":{"name":"kachkaev","email":"alexander@kachkaev.ru"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"6.14.16","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.13.0","dependencies":{"uuid":"^8.3.2","blockprotocol":"0.0.6"},"_hasShrinkwrap":false,"devDependencies":{"react":"^17.0.2","rimraf":"^3.0.2","core-js":"^2.6.12","webpack":"^4.46.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.16.0","typescript":"^4.5.4","@babel/core":"^7.16.5","webpack-cli":"^3.3.12","babel-loader":"^8.2.3","@babel/runtime":"^7.16.5","@babel/preset-env":"^7.16.5","webpack-dev-server":"^3.11.3","@babel/preset-react":"^7.16.5","html-webpack-plugin":"^4.5.2","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.5","@babel/plugin-transform-runtime":"^7.16.5","@babel/plugin-proposal-class-properties":"^7.16.5"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.3_1643305524844_0.18763135875263348","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"mock-block-dock","version":"0.0.4","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.4","maintainers":[{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"d4399e5c0d8252015cad31c076402a2f30ab0ac4","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.4.tgz","fileCount":62,"integrity":"sha512-FhXVJ5FS7Qr3zmsx8LdI52gfsI+hQO6rzWEdEzS4Mwa0L/TFl+bU0HWyOf8I4U0KkBVXOGMMwin5t3bn42uoFA==","signatures":[{"sig":"MEQCIBFnm+7v5P5+881wBLAYlkouBM7RY5cNtXpMdLul2KFkAiAHRshapYlv4z17KQkHWr74RANE9oBS0Vt5LLDs1Sza/g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":79770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+X0RCRA9TVsSAnZWagAAfPEP/0/hmZD757uInVszh7Rc\n7Ow7YMuCVdMoS1Ey07Nm3+F6D9rPLz1sBKuCSX6KcAMUpGejIA6pHV7qloV9\nVND/T/tH5L3tSCW9nqJeavNps/6sK06iP+2MjWpTT2iz6hcJpLbVpFagS+fc\nmy/ecLug41Nx9k0IyeZIgKWFMkzOGRS2GPsJE3HAxYe3NZuqai7JdtMGyd44\nk34TifTbi7eZvLoGGi2y6BYBNrRQKlWiLjrx1DGkCBbOafZfEqcfacfFh6or\n5WUQP6/+GCb3xTILllFOQlZGs3Ksnq1/EuVqHBhTu9plCPGORiTPV39rOXvP\n3pn70oosz1oFu80pOUkG4/ch4PCW+En+ygfxLftkHAukoy+Ix8ifN5MZMMQn\np6XhO5n1E01JKWYRNmXgYMSTsglR6lpkn+CpW8QsKcNl5/KW0YD4Gvticsf9\nQpqJ6Ynm+YpzriLTnz6zDDuCtxYSliPBmIDZvgjv3317sni7Yktz1rHbrnYJ\nFlPh/jKiWWfDq4MtRVuagXPEyBxnC3iGSB5JklOTzCfmHCzHvRZmRQAocX5E\nXdO8oYeun+ZmhKHoVOc8JWybLYaIO+b1yugzynYIgDiQ+/+ZOScy15OY3Wnd\nIFf5C6KB7FDlvyTUlaZ/I3pxiEFYuyTYny2LJiSuIIL18/Xt5ebexKB26o7w\nP1QP\r\n=jMxJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","browser":"./dist/cjs/index.js","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev -- --watch --verbose\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server -d --port 9090 --open --config dev/webpack.config.js"},"_npmUser":{"name":"kachkaev","email":"alexander@kachkaev.ru"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"6.14.16","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.13.0","dependencies":{"uuid":"^8.3.2","blockprotocol":"0.0.6"},"_hasShrinkwrap":false,"devDependencies":{"react":"^17.0.2","rimraf":"^3.0.2","core-js":"^2.6.12","webpack":"^4.46.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.16.0","typescript":"^4.5.4","@babel/core":"^7.16.5","webpack-cli":"^3.3.12","babel-loader":"^8.2.3","@babel/runtime":"^7.16.5","@babel/preset-env":"^7.16.5","webpack-dev-server":"^3.11.3","@babel/preset-react":"^7.16.5","html-webpack-plugin":"^4.5.2","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.5","@babel/plugin-transform-runtime":"^7.16.5","@babel/plugin-proposal-class-properties":"^7.16.5"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.4_1643740433843_0.28594801509784795","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"mock-block-dock","version":"0.0.5","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.5","maintainers":[{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"c1343d67a19c67e576569523fc26a8889470a845","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.5.tgz","fileCount":62,"integrity":"sha512-dxmOQ7V2buEtZ0ggiCOCJgKbvPw3pabml2lu1BPtte8umEK+FhA8WHxfTZrWnEnx4NEZp9kN0sbMVfpsIka5kA==","signatures":[{"sig":"MEUCIQC5/K7efQygzPA59JlLLK8Z/jQ5j82Xl1vX6+hh1glr0QIgKwSQwZgJbZ22h1ObuAMXOnXAdUBHByUvsTcScK6MUHM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":79942,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiBB36CRA9TVsSAnZWagAAcboP/AqIHeZj4PssbLN95E2a\ndafrn7uQG1BT4wHphr7Rz6Dl3U6nIw91uWBoJhjrw8lTVXPn2xiP/jus5K/l\nrrwA9yLAbE1ZupeeB1NvDPSouHrYjl9sDot4FkgTAv3gLzU9OAqGvn1gHOdx\nmZYf0GodLTJriyuzr+2jcNN2qRHOaOiWyGrIgEddzxGlehYgWn2nc+zGoSds\n3lMXXv5x9NeRMGAtifb1miHuJkZgsAFgNjEM6TUU9Rka4Eg7PYdLfnPFqC2P\nxsJXuWiRa4Wr5XZZc4tUHSo45eNP9St0morWZCRdLV/ap3wRNRoAmNJMnkM+\nNJateYWei66MNPm13kTG2DARLKjCJzJ+xiCX+WlEUVmfXTHU1iJuLXdUf5RS\nctZTTASAHYSbOkbWZAWVYVMGibjRoP4wfhdgGrT+hy6O7SjNGPg44SEewZuT\n/WU8Rk4o0lX7tILrgYAHDRlxcYd1hplLMYJ03BX4emDkguH7IKuBkOa2F+LT\nuOhNoo+Yo8R3+Bve7Pe2tb+AXbhMCO+uf/cjPG6q9D53rHaBHl6pii4iPeR2\nreU6xKUGkYKd8WCq5x20x3VS8twLl4xVTAv0DtvsRr9ghSFHhZYWWD3Z4Ff7\njniMMZ7R6kMYJ2egIMRTg0Aq/EG6Pd3aP8WLT2zlYE3N4+IjcdHOzanqRF58\nrUFw\r\n=LOmz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","browser":"./dist/cjs/index.js","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"kachkaev","email":"alexander@kachkaev.ru"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"6.14.16","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.13.0","dependencies":{"uuid":"^8.3.2","blockprotocol":"0.0.6"},"_hasShrinkwrap":false,"devDependencies":{"react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.0","webpack":"^5.68.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.0","typescript":"^4.5.5","@babel/core":"^7.17.2","webpack-cli":"^4.9.2","babel-loader":"^8.2.3","@babel/runtime":"^7.17.2","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.7.4","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.5_1644436986667_0.011964706588528218","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"mock-block-dock","version":"0.0.6","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.6","maintainers":[{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"86dbc984fffb67e0ae4d442bf716288350d9bf61","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.6.tgz","fileCount":62,"integrity":"sha512-bJNMflnr0wFSzMsV135wRFhkVyFLm76Su267EAl4R+oqb4MbtHnypP8Z/zOOhF3N1+op7COAZhWwk/nsRw4nIQ==","signatures":[{"sig":"MEUCIBCx2IEZ9qh8sXmw0S7FsGMj56UT3Jl1/sL3aVQWy7WtAiEAwbumxv3QTmEoOfZADzFwkDp9hzLVxicqA/sRwY0XHao=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":118931,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiJhEwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmobNg//ZIrspMSEiYDhk7cBt03D3VTFji/dHeqVhAxGHasrRIUZKoRY\r\nuOBaYazjl4Od+ap0OofYiidjbi69rhB3DTkbJjCLdAUT00GVzYUpI7ycLil7\r\n8eTJKO1EhgFNzfe6meJrUDYBo3OmiTiNldfNQtJmM4Am3H85myP7cNQd5dxS\r\nZn2VcQzam173gInmBjmTdwgQPxSMhp0FZBdPUquvlEClhseJqxLZkN9eQOBC\r\nlP6vbkVPpHGkMQf4US5I86LCvC1S4wbyv5ZbMuv1iiNVIlozxS9WRIA2uz3p\r\n3IBwTz9UTmkh3PdX5XJynXFAn1rbFqcS93Z7jnf4IhezF3yoDiWoUs4iLtP9\r\n+a9CyTF//kLzb/8sP29vH9f0E3zapCw80zsbN0A7J6cFl9XfD6c6W6DTN5QH\r\nXz9goYOUtHW40kIDsU+rry2IcO21M/KQU9Ho124o7JBn1rv+Ptera4jcY5sH\r\n433g/vT85FWHkmCtrIlUjm5XEEvCa693SX/YDAt/RdfBGC2CUtpEfUCnYqZ6\r\nEYW04II/XFAKVlHgmSv2j55RVcpTgH2TjOKOsgiWs2qO8wbRwfMbb5PpHsaS\r\nvF5/8ZiMZfz4oDeJg+8/s8ZEb1/wZB9UGn+UsezkPD9HfqhEt+1F0Rc+a/1d\r\neGSNWg+56HsuhNtCs7E3XUTWyYe8rgvSqY8=\r\n=UXK1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","browser":"./dist/cjs/index.js","gitHead":"9550f1373263886be197b39ffd0d94b7dab5d61b","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.3.2","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"14.17.5","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","blockprotocol":"0.0.6"},"_hasShrinkwrap":false,"devDependencies":{"react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.0","webpack":"^5.68.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.0","typescript":"^4.5.5","@babel/core":"^7.17.2","webpack-cli":"^4.9.2","babel-loader":"^8.2.3","@babel/runtime":"^7.17.2","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.7.4","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.6_1646661936416_0.10346955099284316","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"mock-block-dock","version":"0.0.7","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.7","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"f8504c80fd1942b6aa6fbb441f6a89f93627f0de","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.7.tgz","fileCount":62,"integrity":"sha512-iA+1KsRyW1LK2SVYkLlCZpNlUqjg4JZ32M38oFH3jX5LHAjlQjh5snDJQNQLxOUNL4dq2RXCUEsQSLp9guXAaA==","signatures":[{"sig":"MEUCIHhBc1p4cIe7hsullvsYC4bPOwlgrC5e7VSuk6U/O2Y0AiEA1hp7yCLbyA+vBGLFlARDorKaNgyXLY/Qi+Vg4qCWNZI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":120171,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYuDyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJPQ/5AYd8K4s2vSGmkDzYhrcO1BVg/nx1s1ytj7SGRo+C/BmZS6Es\r\nH0gi2I3lijG44kqIzXoHWIZqlH53qsMi/R7uthUVkEImjgXocdpiKrtTWlsS\r\nFzj6Q6JbM6hqxiIMSSXxJtMRXDzkt1aCo0IaUbbFiDrOKMuoCZTQ+E3M388l\r\nHcngwnXOsSN1B71/0j7n67149xAcZyQSZ275YkkjCHhgtFRwt4HQJjzciDB6\r\nLN/YhNE7/cZ5Fe8x3RGVotmkTaEcrbK6NeSjRD+7FDpxcuG2N8ZfOeu+2i55\r\nRDP5Y8RRRsY6ZuBipQ1uhj3XSPNWO6A63nqBPKH58fofrIlSlkOBwPzP9TBF\r\nqo4Cy/gmEFL2RAOdtnyuVAP5PwMlv3kV7x3V7lWjMo5aDu0DPK/4TGytG0Di\r\n+1k+UaQKzNaln3hQa1oRkkeAfj/6YcLUVn+NRexApKleA3pdbcMziVJIcKRs\r\nZNMYZWnwteehP+gYtwXldUu1Tlw0f6AL3ZpoTLvFi5vftGyhIbSYgL2xfpgd\r\ndM545FWma/ZFt2RKpNjPT0+Pp5Lh5ds3tV8OpaWV2LTrZauWf5tJDsnyKaUp\r\n1kGUeyQHbejV/iTJ+CCIDNn+XTQwIIAFGqyTPPPKGLCtPtZo0bWh4+V+Lhr4\r\nMsIR6TrhbAj3S0lUqswfW7NwLqaoQjLcNYc=\r\n=E1r8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"4ae311970e7dc2deed463109a2804b681b4c35cc","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"kachkaev","email":"alexander@kachkaev.ru"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.4.1","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.14.2","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","blockprotocol":"0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"^4.6.3","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.7_1650647282022_0.8134525979628395","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"mock-block-dock","version":"0.0.8","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.8","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"fa96e216475633f208ea3a34a60755cdb1e72821","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.8.tgz","fileCount":62,"integrity":"sha512-CBI83tj546pBgBU7X+ifkh751imPhq22eMNDipsnThGcsxU9MsNYxJwIRS33u8lJLD6ycB1apHSQgaLyJ61zHA==","signatures":[{"sig":"MEUCIQDf69rS0Pv7pvmSxakBCd0SY9thFP3de677Stsedb5OEwIgaRBi1SYXqfSDvT/5IVMqzvEtl1bMzQuutzyzPQmv1Pg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":123147,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZtCJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqeTA//VO+M0uwV1lEXer3Zg6eaKRmllAxzASnbAIZ0L5hPCucaFVAv\r\nSIuOKCmxGoyDF2NYS4+cNpvPp32NQZSezAzDSmjUPU9OzTJv4z1TxZlnQVhP\r\nrl2I00sYd/Vn3zp22p64NIgJvHeeBLNgIOm8bVKKr8o++DxwE637RmN+J8yb\r\n1qwmEPKEoNk/HSmbDa+RtUPIJFT1edp5olmlwfbsfuKw+XdCEJC+8gejRcBN\r\noP/n6JewsMY1MBwHot0OcuvGVm0rvWxS7bV0dTyiN4ff20DOQBulXm9BNJbD\r\nhAQmmSoAG2pqpO/MS3nz2Fe8Ju1vfN05BWyooNyH1/oHISkcCbAH4GJ390Ox\r\nzOYNphOzUVT2ji2aJImrVk3WmFect+3wktdUT+h2SGd4r9NN5ZlwKRA30uSM\r\n4G2g5Za9Bld+Aqf4nNPwI5HBVYR2kUlT7h4Pq4j6L6bCRD0oTsBsJAXJZVXf\r\ny/SqRRlTMTjqa6tbiTD+u/N8W3Vq5VlDZCWVfRIvYTNRkEsEtLQi5X8WNoX2\r\nxU2msUZGaUaperbvBYVSibukfLifmYj8Vf3HFpIDgSXkT42GV9PbvLrDrK4v\r\nZXX6jvhVSeXbMKbyqk9eLTEf0yfZUsJlpq+n8KZSI6quzlmsuXUxv3T9GpXr\r\nFlBlq8sT4MBxU2QxKafcJ5hX1WqphcXKaqI=\r\n=OpMA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"04e6aef6febd7eaa4aca3bbc2d28970af66ec9b4","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.3.2","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"14.17.5","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","blockprotocol":"0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"^4.6.3","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.8_1650905225695_0.5716649313185773","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"mock-block-dock","version":"0.0.9","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.9","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"2197dae3159c7591032cb19e3ebcc7c096129a07","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.9.tgz","fileCount":74,"integrity":"sha512-sLLEx2Nn73vTqDeR/wYGdFsvX50K9M1FBUK8KA28cBwOROwjxxOMJdZJ0P1AjDRBOpeh/l5oRzOPL7Bwuau/1A==","signatures":[{"sig":"MEYCIQDP3pFOfC8WDE7ppIpL7Jcj8VX9pDjkaFJBvC2AfU6G9QIhAI/4qUNwDoJABAzC4IW7uo7Yc/rXR4rFd9cayvH6kcQX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":163768,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiehsnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpW3Q//ZRGwpq1WpIItBtuUI9hm/QqjDMU3Zy/azoH96FhMqgzCLAXw\r\nXozQWKmseGLs6Lu6mCJMpqm363f2ogjq/TYzy0Jw0kHLy/HcoYkpctY97MaF\r\nDLD49TR9rLbNgUdk3+2AfTtrAGGW/ZoVBNtEeEQ7BgO4R5o+ZcdJRUq59zSt\r\nbyF71Do1yg3sC6N7Y2hy3efccVswb2WqphWV54w2TWuZ5YwWFDpkb2pnmi0i\r\nqFfGhnU2xnsmwFBbpVifDa5nYBZuuCMqnlpGjfaIyfpOxZ2OzBcsTgqkDp5n\r\nRXEPtr8Hf7NOsFgIVqbdlV3DzeEXxdNRFT7uYtcSDqLdQqfdClk3kwvf0Exx\r\nLqzMdVvqE2MxUEFZfkF3x53dm6R0w4nBXu6tup2L+7QLGf8wABb0yQ94u7qj\r\nKt0Kj1NxiItdOYEHbwwthQvbQ25BeyGNkatWpAnl0tnvO29M5LL9c5c/D8nW\r\nB0fsYMB9UcibP2pBfzSKCB2MuXe0CYs9ggqXMGH3uQqDoEyZTxRynR2ppCp6\r\nubiwHgSkgxijT7Flw5W/yWKTl5xeUdjlARbGMO8S2K0RUNUVv2cI5NtFbQVa\r\ngYKX3g7AXzEWwHPteXcfFk59Kokk1HY/fhAmp9b9fYR84fMDTmjcE9U9up9F\r\nuHWXR4Cv+n+Kj1UyS2eBzFaCrsq6ZGiL3/k=\r\n=ifBZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"647a2523f7276c3b2852f8df6a437f81d31a79a6","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.1.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.13.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","blockprotocol":"0.0.9"},"_hasShrinkwrap":false,"devDependencies":{"react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"^4.6.3","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.9_1652169511338_0.8685662596878321","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"mock-block-dock","version":"0.0.10","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.10","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"767a23d9743bba77ca7b60f6041d4e4b629e2d2f","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.10.tgz","fileCount":74,"integrity":"sha512-PCbiBXGHLiJuJrls+30aqSYTRmp37rGXjGAqfr4US48PsjSsjV0GJUUH7/6HrXsXrndDaZeL+kj2oh8hoid/GQ==","signatures":[{"sig":"MEUCIHnf0yXo1acV0rLdgDcfoyesBd2qUQcZXjTEYOH4q7QZAiEA2jdyaW5Zp3X2AC7kXGm7nLzbPG/o2076vVCmf6JoTjM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":164037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimQkhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoNCw//W8DLf0Lg4FCrTw2XvljgbXlNvAUoEazcDBNz9MB8NjX4yeDH\r\n+0eLCqHqLFTsqFx4e+aVvFFd2kzTHiEliGfPxQwOgOXcG/IKrMbXCi1eEdU7\r\nFi7xwRa4m+CCJts3Oa4cfsm20eA6RKNTSo5DAqWkl0ryICkEJoBrrKHeffYl\r\n06L7/G1s7aLNyghveLXHEuPE+98ZGxCapsTQbgzvdl9VDgWxEZJ5uySK+uZ/\r\nkCs8M8WrAuI06QBXc7amoSpW5d2tAXbUCV7ao0JxBV7DXs2e8VJTkdFnF/Rc\r\n+3SI+MjBmlO0wYYPtxBTWfPjlwO/O25MpJ+MWG70EHGAurOIrex9Ry7qQyQG\r\n7p68kxhrXxuw3/KIazAYw6y5jFv51EeURadk+E69fYun7MhDbtCaxwkZC8su\r\nli2wVGBATK8iu1L6yXL9kczNczUVxh1NmQK90TwU7rYpZLabY2nz9aM9Nq3D\r\nda1ViOzKoNuvmab7kEEi/w8YtINILTeXDea3oUpf+dg/w9edzywaZ0LtGAZJ\r\neVg6gGyi/Rz7OKT6Jo2megNyqsvew6GEcoMwl7EnF3XEDaYmRdRGxcqN0nZe\r\nj5yJo6W2ZFBtU/aRpaO+qNqQ0fIZAvn4LUuZgqfx2i5g+BjwM/a1VsTaF6Zu\r\nEbnavDKKwmEr1si7aPWg7qdIYXFpNCJh1ts=\r\n=k7ej\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"41edafb42b8cf9f70e6e15d94f9d44263d3c214c","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"kachkaev","email":"alexander@kachkaev.ru"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.8.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.1.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","blockprotocol":"0.0.10"},"_hasShrinkwrap":false,"devDependencies":{"react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"^4.6.3","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.10_1654196513290_0.7624532637208912","host":"s3://npm-registry-packages"}},"0.0.11-beta":{"name":"mock-block-dock","version":"0.0.11-beta","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.11-beta","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"b6d5ab59e11cc0381f6e803a48e1186fbee89a8f","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.11-beta.tgz","fileCount":80,"integrity":"sha512-X5CPpZA9omMkqEV4s7P3lm92CwL3x9+lssBJ61Dq6iESuiTU5mji+ZKWignKWCtrWpXeH22fz6wc4d2xWxyZJA==","signatures":[{"sig":"MEUCIQCpMFXh4sfojfMwVSfVhmx6LbkJE2Cid/R/z+9blBT1jgIgUiJxEskrQQZwRC3IjVe3AFK9hhdiqanlAThBZBJ1gwY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":196048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioIOsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqsqw/8CCD/ewP1npZjeE+DLPUXirYSX4eehafjqXaGM/ovff8mfZrO\r\n2dpG5Pp3yVsq94nKHvLz1qu/cTWDi9dFQuI3ZizD1wLDRgy26lUVbpvRrN3W\r\nQS7+nl4liO2pRkMG41eTKSA3I72ccKEJpCOokITyBiI3YKdwF17Dhhmcndet\r\nqql7LeSDtVv3imFko8oVj8xxE3AjZtsJ0Y15Qw2W05yfvKQpzueIN0oLa3LT\r\nIrKn+Awf+aRdpfvRPDyt+CgaOW8p8M/LzIB3FDHR3iPBXgRjL9n2tq5cOL97\r\n8FEB9IFMKl9bXEWNoui2/OJzWBWULbiJ3Wgahwl86Nzkasj2DIBzosuCnFRw\r\nNKWOiaWyggSmk37ioPbhmbMuIdl+vndTvaGl0jFX1uavssadwzsiv9RGkPP+\r\nsb+OHLXW3HZTUQtWLwzddbLGHW740Hf2L3BdF1NMUEVV0c6CdK9MDvvQll/t\r\n5Bqzakec3jshfdQqo3QGHQj73AUEIp3Jw8B9p4OFL0T9jgzTLGnJ1zaVwFgq\r\nXQfflTbQxjGs9GkPLS92SeRWFad/aP7ltYdmUNf0UVfAi70HHfhWWnbnZl0r\r\nCrjrQuvc1pywEzjkm6zX2eaoEtaC+kr1HwMnjLNrriwcUZpgq0hfWJ0mLcsI\r\nIjuYs8IiiuBcN+cRWo9bqckt/xwtUUi3Xaw=\r\n=6sHO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and functions for testing [Block Protocol](https://blockprotocol.org) blocks.\n\nUse as a component to wrap your block, or as a hook.\n\n`yarn add mock-block-dock`\n\n## Usage\n\n### Wrapper component\n\nWhen developing a block, wrap it in `MockBlockDock` and pass your block its initial props:\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\n<MockBlockDock>\n  <TestBlock\n    entityId=\"optional-custom-entity-id\"\n    {...blocksStartingProperties}\n  />\n</MockBlockDock>;\n```\n\n`MockBlockDock` will automatically pass the following Block Protocol functions to your block:\n\n- `aggregateEntities`\n- `aggregateEntityTypes`\n- `getEntities`\n- `createEntities`\n- `deleteEntities`\n- `updateEntities`\n- `getLinks`\n- `createLinks`\n- `deleteLinks`\n- `updateLinks`\n- `getLinkedAggregations`\n- `createLinkedAggregations`\n- `deleteLinkedAggregations`\n- `updateLinkedAggregations`\n- `uploadFile`\n\n...as well as the starting properties you pass to your block (if any),\nand a fallback `entityId` if you do not provide one as part of the block's starting properties.\n\nFor example, to update your block's props, get `entityId` and `updateEntities` from props and call:\n\n```typescript\nupdateEntities?.([{ entityId, data: { ...newProps } }]);\n```\n\nYour block will be re-rendered with its new properties.\n\n`MockBlockDock` will also pass:\n\n- `linkGroups` and `linkedEntities`, which will be populated once you create a `Link` between entities using `createLinks` (see [linking entities](https://blockprotocol.org/spec/block-types#linking-entities) for more).\n- `linkedAggregations`, which will be populated if you create a `LinkedAggregation` from an entity to an aggregation of entities, using `createLinkedAggregations` – this includes both the definition of the aggregation operation, and the results of the operation.\n\nThe block will also be re-rendered with new properties if you update them on the child directly (e.g. if you are supplying the block component wrapped by `MockBlockDock` with props from some outside state).\n\n`MockBlockDock` is automatically included in [block-template](https://www.npmjs.com/package/block-template), which you can copy via [create-block-app](https://www.npmjs.com/package/create-block-app)\n\n### Hook\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\nAs with the component, you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\n## Mock entities\n\n`MockBlockDock` automatically supplies additional dummy entities and entity types in `src/data/entities.ts` and `src/data/entityTypes.ts`, and links between entities in `src/data/links.ts`.\n\nThese dummy entities/links will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\nIf you prefer, you can provide your own `initialEntities` and/or `initialEntityTypes` and/or `initialLinks` and/or `initialLinkedAggregations` as props.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"fff323a01b21fe9dd5aec03a4dc8c04a528b5996","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.1.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.13.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","blockprotocol":"0.0.10","@blockprotocol/graph":"^0.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.11-beta_1654686636561_0.467274338954236","host":"s3://npm-registry-packages"}},"0.0.12-beta":{"name":"mock-block-dock","version":"0.0.12-beta","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.12-beta","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"e8f27e797e71313c66550058c89b818f61e160fa","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.12-beta.tgz","fileCount":80,"integrity":"sha512-rTksVsEn4Dt6bFTF5OTMdGvLBQ7vs1/wjGjcRRgPzUqrYFzVCkpmHm/GyeCdvKJJaPGSuJ5OlA4dNVWafriu0A==","signatures":[{"sig":"MEQCIA/wHKdz/+6uVqexdwQyBRGsZCUh161Yhtv3t9q+sAaNAiAqYz697frcxZ4lMPXgh8MKpFuvWOSztfrk9muK7N2QRg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":196031,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioamvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoC5A//b+AHsTKoYmw7hMd2MIeFl5q6RyZt9R0I59tdTjOgtr7qwPqE\r\nJIS7mscVBKWSBq4ZO1ThupxtL533zL8qiE+WhVLZ5QrVvMODoo73IGaaGsVT\r\nmAJ7Rivz4TjlFA/an6+CI6SDyyhmudwyxFCYaCt9sGAp5JPWTSM+24h42B33\r\nJSs/cCbXb8JsimjocjBA72zeZk3shf9hXpkJ9svHwrXJQW3Wenmz6+ABdWRr\r\nsJcLLLzycqkKOQQXQzhbHRDUPj78sDqPTRmUEE2vlavNM6m1vMPCrlusRtpv\r\nlU9pS+4Kp2KjgRmH1Fgz0Gt7wmXEgTz/LtQhrNYtw0uzhqgL9tV0CvYzOwgX\r\nIbps9tj3pbe8hXNPincXye6jsjTkG22rciM98UaYXCaGstXtrj9AiAVVnccT\r\nlFvjzHl4yUkFrnKqLzENVnTCow6dVmRBsQD+MCQWlkbBhVeUopBwi/pxiAgO\r\npV2WKAn7saHrRboNOFWclyObpyNlOXv187VgU15KjMa0hbNMAl8ID2u3ugI/\r\nyJNbVEYwEVxnkrEgT1ukNaaF6+L3dnGpT03LXgVW9MtU0L5mjiDZPQmE+XCU\r\nTMOUcwQvDwNJzDM7m9NZ2unYJr+cyG64wp/EOwOoDh373fT1m6xmNVBvrXFE\r\nQ4DM7hPDwFjpt+z5dHjt0fsOv+/gLuK+PHk=\r\n=Z7bR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and functions for testing [Block Protocol](https://blockprotocol.org) blocks.\n\nUse as a component to wrap your block, or as a hook.\n\n`yarn add mock-block-dock`\n\n## Usage\n\n### Wrapper component\n\nWhen developing a block, wrap it in `MockBlockDock` and pass your block its initial props:\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\n<MockBlockDock>\n  <TestBlock\n    entityId=\"optional-custom-entity-id\"\n    {...blocksStartingProperties}\n  />\n</MockBlockDock>;\n```\n\n`MockBlockDock` will automatically pass the following Block Protocol functions to your block:\n\n- `aggregateEntities`\n- `aggregateEntityTypes`\n- `getEntities`\n- `createEntities`\n- `deleteEntities`\n- `updateEntities`\n- `getLinks`\n- `createLinks`\n- `deleteLinks`\n- `updateLinks`\n- `getLinkedAggregations`\n- `createLinkedAggregations`\n- `deleteLinkedAggregations`\n- `updateLinkedAggregations`\n- `uploadFile`\n\n...as well as the starting properties you pass to your block (if any),\nand a fallback `entityId` if you do not provide one as part of the block's starting properties.\n\nFor example, to update your block's props, get `entityId` and `updateEntities` from props and call:\n\n```typescript\nupdateEntities?.([{ entityId, data: { ...newProps } }]);\n```\n\nYour block will be re-rendered with its new properties.\n\n`MockBlockDock` will also pass:\n\n- `linkGroups` and `linkedEntities`, which will be populated once you create a `Link` between entities using `createLinks` (see [linking entities](https://blockprotocol.org/spec/block-types#linking-entities) for more).\n- `linkedAggregations`, which will be populated if you create a `LinkedAggregation` from an entity to an aggregation of entities, using `createLinkedAggregations` – this includes both the definition of the aggregation operation, and the results of the operation.\n\nThe block will also be re-rendered with new properties if you update them on the child directly (e.g. if you are supplying the block component wrapped by `MockBlockDock` with props from some outside state).\n\n`MockBlockDock` is automatically included in [block-template](https://www.npmjs.com/package/block-template), which you can copy via [create-block-app](https://www.npmjs.com/package/create-block-app)\n\n### Hook\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\nAs with the component, you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\n## Mock entities\n\n`MockBlockDock` automatically supplies additional dummy entities and entity types in `src/data/entities.ts` and `src/data/entityTypes.ts`, and links between entities in `src/data/links.ts`.\n\nThese dummy entities/links will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\nIf you prefer, you can provide your own `initialEntities` and/or `initialEntityTypes` and/or `initialLinks` and/or `initialLinkedAggregations` as props.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"632d4db5817b3489030fa9a87570cdf5334d183e","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.1.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.13.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","blockprotocol":"0.0.10","@blockprotocol/graph":"0.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.12-beta_1654761902287_0.9884172536932239","host":"s3://npm-registry-packages"}},"0.0.13-beta":{"name":"mock-block-dock","version":"0.0.13-beta","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.13-beta","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"efd8fba37c2817931cd39e13ba37f297a713a82b","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.13-beta.tgz","fileCount":80,"integrity":"sha512-QIk3jkwjbAseyfGsVvzLuO5Vbj6jngkhdldaJn4xTDAo45hovnYPpQhaEqhORIxO4jk8RDBrJeM2HaozQtS7yQ==","signatures":[{"sig":"MEUCIEU6ceJwEzkZfW2J/DTapia5GmWCPl3W6orGebAVtCM7AiEApl6ECOSW60BLIccA7EbBTRTsDl1fUp/WXryq+nIiopU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":195966,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiodN2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqn4w/9GlU0X3cczj1RvH15yhZ0huTZpFtO1niUfsdoVg0iVZuWvMpM\r\nYSQDdBsJMtFSNaH0ooKIhLinkp3tTaSElSAki0EapGGZQa23V2JgEM3HABjL\r\n2Z9sE9MeATw+jWifsXLiGOGYIjm01/n4fH7/2WkT++RxkT+JzmYOUDGaItgH\r\nNYqRNSYoPoS2CHNqcY2TFNqI5CCHRzXfHmqXeCU3M/zMyPABtV5FAWxRLSQt\r\nn3A8ZzGScsM05W2XJOYb+eczbYaoLL1iAJSWod6afcynvBz4CG5YUdrstXbh\r\nsHiQsTMX4Jkh22GR48DGumqyK5S4gCYVmnZoBaeqVPv3AJYxGQ4BLuc8FGLL\r\n0AQwmZ6pOf8hRUj9vdyQkp1Bh0e5m17TJGn5vr15/76TqC8uc912+O4X+r4P\r\nh86xS1zFSDjx77UcRbBWNshz4qh9MQb2kV/0yLqnVJD5RQicH1m+UmvRwcwQ\r\nFZF8weIRrhcjNiRZjvLqOZYr9qGxF7lNBRn78XkVhxbmS8tMzAshQ+mTT22q\r\nVGaYvHwKNhX02pHY0SUXX76ndQJDdj4mGWZAxnhRXN5GYhyx09waJHPv38Dv\r\nZLtd070KAZCZ1jz0UmvHnbW5GG4gg1YHFD+3KqLVEAVsT3dLho2KJOLWAYCW\r\nasj8aM6PBw6wXPIUdrWtALzA6IA+cPC7u4c=\r\n=0DVa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and functions for testing [Block Protocol](https://blockprotocol.org) blocks.\n\nUse as a component to wrap your block, or as a hook.\n\n`yarn add mock-block-dock`\n\n## Usage\n\n### Wrapper component\n\nWhen developing a block, wrap it in `MockBlockDock` and pass your block its initial props:\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\n<MockBlockDock>\n  <TestBlock\n    entityId=\"optional-custom-entity-id\"\n    {...blocksStartingProperties}\n  />\n</MockBlockDock>;\n```\n\n`MockBlockDock` will automatically pass the following Block Protocol functions to your block:\n\n- `aggregateEntities`\n- `aggregateEntityTypes`\n- `getEntities`\n- `createEntities`\n- `deleteEntities`\n- `updateEntities`\n- `getLinks`\n- `createLinks`\n- `deleteLinks`\n- `updateLinks`\n- `getLinkedAggregations`\n- `createLinkedAggregations`\n- `deleteLinkedAggregations`\n- `updateLinkedAggregations`\n- `uploadFile`\n\n...as well as the starting properties you pass to your block (if any),\nand a fallback `entityId` if you do not provide one as part of the block's starting properties.\n\nFor example, to update your block's props, get `entityId` and `updateEntities` from props and call:\n\n```typescript\nupdateEntities?.([{ entityId, data: { ...newProps } }]);\n```\n\nYour block will be re-rendered with its new properties.\n\n`MockBlockDock` will also pass:\n\n- `linkGroups` and `linkedEntities`, which will be populated once you create a `Link` between entities using `createLinks` (see [linking entities](https://blockprotocol.org/spec/block-types#linking-entities) for more).\n- `linkedAggregations`, which will be populated if you create a `LinkedAggregation` from an entity to an aggregation of entities, using `createLinkedAggregations` – this includes both the definition of the aggregation operation, and the results of the operation.\n\nThe block will also be re-rendered with new properties if you update them on the child directly (e.g. if you are supplying the block component wrapped by `MockBlockDock` with props from some outside state).\n\n`MockBlockDock` is automatically included in [block-template](https://www.npmjs.com/package/block-template), which you can copy via [create-block-app](https://www.npmjs.com/package/create-block-app)\n\n### Hook\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\nAs with the component, you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\n## Mock entities\n\n`MockBlockDock` automatically supplies additional dummy entities and entity types in `src/data/entities.ts` and `src/data/entityTypes.ts`, and links between entities in `src/data/links.ts`.\n\nThese dummy entities/links will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\nIf you prefer, you can provide your own `initialEntities` and/or `initialEntityTypes` and/or `initialLinks` and/or `initialLinkedAggregations` as props.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"2b2674a868e0901832f487a0684a13784c264772","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.1.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.13.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@blockprotocol/graph":"0.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.13-beta_1654772598205_0.06884073354285092","host":"s3://npm-registry-packages"}},"0.0.14-next.0":{"name":"mock-block-dock","version":"0.0.14-next.0","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.14-next.0","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"7f03a423322abba29189f26172ba6fcdf5989c39","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.14-next.0.tgz","fileCount":98,"integrity":"sha512-a0ytRBUiPJ8qcl3onO5seeJf1LlCfJJmy3rPRtIvDDOyySt9sWYijPCUZx2PokCp4Gr3yxf80ZTIT/gmcCMymw==","signatures":[{"sig":"MEQCICTZ6LEcZaUCxfZzq4yoP6rXQ3hc1w5yB4+xvVK8iyFBAiA8lFtcCIMdx55+RS/nVdPxSQ49PoiZCawTfkGUluiYBA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":222171,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJipeFoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrvMQ//VWJmCBY5AueqzF8DSFhZDw7thaIYagcAJLga6PYIfdJRKLId\r\nTBgaXlK/O7+A08Bayl97WfYSUSC4mAm/T628HhtQ44F05RL3Qcy4/gCWwb2H\r\nbmsEu8uOLmgCKSPkp5OwOOCVcx0kKvQGxJm/5fDvLGyWumnXtYbqf2B/9uKY\r\nh1KlaFxiv5g9tawuzGVlZfJuRrwXxGq/cZlA6LSBUS5Sxqcc6E2EFX3lYwI2\r\nSGANXwIYKl14m7IQoz1m5gPfzxmEMMfU5wVSzAsm41AExMofwR4KdGxYll0c\r\n5RS5qT+zd64fi0fa0TvZBunmLozM/tLH+v8IGd+oJmvW+R4OEccB0s0SugFZ\r\n4MNC2FnjE0kgH90gAQFxWLLilfhzbznIV9HK0DrLRKdNdOE6052GZ/cEZvVu\r\nBcebRtm8lmFurME4p5FZ9TrvmJx9LHcdVS/n4mahFdXmVFVtzM/HuM5Pplz9\r\n7jk4OCO7iHxW8leveVmGmR5akrEQzBNtTvhh18WRs7p4BttrxBGAu82zEerl\r\nBBiBj58ttnEZNy3bf8OPAR5cKrcipI12F/kZRzLiWZs0bSv9CsBfkRXoaH8n\r\nqNnlJQV7xxVQkxkHkcpzvfSd/vqErSS+Iys/WupXB7/aWHvtgawfU4j4AibW\r\nQBh7uRVseh0gxMxUblJFw0wJgBa/tbpUI3w=\r\n=xbJ6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"2a8dea8808906b9be1558a00bf6d956d0c8cc793","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.1.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.13.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/graph":"0.0.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.14-next.0_1655038312602_0.2579198183306375","host":"s3://npm-registry-packages"}},"0.0.14-next.1":{"name":"mock-block-dock","version":"0.0.14-next.1","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.14-next.1","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"3037bc540fe19869e9f5e9714e1279d9e9fa1fd7","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.14-next.1.tgz","fileCount":98,"integrity":"sha512-WnZB9RTxu5LCNXRXTQ1AqB3Yg9FumM65mnlcMP/dqc3G0UolBs/XkqIQCzeHYlThrI3YRQfnGw0NJqdtUiM3JA==","signatures":[{"sig":"MEYCIQDBcarVa4vNlN8TPusuw/kaBBu5PvD1LOI/XwUbFHYukAIhAKkNnp6cyKxdHFZ6f6dcTJ14wpmZMGPagGBblMcoXoiL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":230853,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJipy92ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq63A//TflWb12/bT4lzknkRrsLQnsbrrXqhRQvACcSYA36NNBFjTud\r\n87EWPiZZ4Vnk9xIGXlBCyKM7A2E2//eiZxWLaMwubxLvKkbT84YJgPlwlKvp\r\nyEnR/jEijwguK1j455MsvmaXPLRDhONoEbQN0XuG0u8Mg4DWR46UJkB7bmPd\r\n84XASj/UGqJGRfo+32/Ijo9JpC/W3a7erqbqBP5txA6x7BkLrwF8/2NsPG6P\r\n+xxZINhSlR4XCi/2EOmlV5OWcBM0Ka9olvdzN69y4sH7+SBzwf9C2mqR/E7i\r\nR5JKWivxGYPRxXT3zuVLfRKhDrNS+PoBPIH/tNsKZhujIb/huTZ5IbFyeZkD\r\nEoYYeaFsPJSV/mzWc3BUzVVc7G9FRz9cerradKcOFzU1WPKnGPmqhVcv/WhF\r\n07cxED3pHi1FtXCUflAy7QQX8bgHyT7Mq1JZbzgJUJmPeFLKnYsZ0425wtCq\r\nl1SZLzwFKgN4HPO2JobMam/mov8T5U6yeYcBVDjOlokNaUHzf2nQcg0taPHq\r\nXofeugOWpoIg7+CYWA/hHBdPUU1nfW2zShVdXyEEM8222dfDGFo8Ekfbpr2K\r\nDlNfvJ002C8DH0WrUOnWPge6uoQr53mIPLOtK/3eaFV1dTJ8WFA9oa5F8D6d\r\nWN1qjXMzAJYX8IgJ1tVvvvfzoWOa9RFVD8c=\r\n=no9P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"a8780a7d94dd66e8a4d8abb18b4009a6a670dc88","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean; yarn build:cjs; yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean; cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.1.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.13.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/graph":"0.0.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.14-next.1_1655123830613_0.9549344080775872","host":"s3://npm-registry-packages"}},"0.0.14":{"name":"mock-block-dock","version":"0.0.14","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.14","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"af563425414ef7eca865f0f6639ac85495561533","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.14.tgz","fileCount":98,"integrity":"sha512-zafcaTg7XhJFru47jIl/ukFCvYm3KecHu/br3Oe2Al4L2EQMrlzZlw4wBfnQFJPwX3LwtDI+QDVKbCtcDekZKw==","signatures":[{"sig":"MEUCIQDTcEj1bbWy5hgPH4yhHRrgmTE3ukfO2zDs25g68RWm3gIgfL48haJQoY7/388bVzWyKxbCHQFUgZmr/znSmbxUqWs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":231130,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqQ7PACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqDCg/6ArM/I2P9kGNFreNaSgNF/plGIb1qjJXLH4CXOc2A47xSx383\r\n9LWcL2hjo6q1yVefUMxYLOZd2yvhUwRP0ujwof06o2sNvYiv/3Os7Yc9WO+/\r\nDhF7DbNSTdthcerOOFXyhO+VLmGLzjstDQs+rVo9lCwcHMwghBS27+2MGAp6\r\nsgKhO37KBniii9Lj8JtMyd+tMo3ancFhugH/SDhj8N8LyRUot+93tlAbnjR6\r\nbtlxNHmemEfRE3sHzSAfV//8FimuvwpyTw9j/m6th7ZqIFDMNn6Urki+j1m6\r\nKD7CvwEkhm97VUIpdrH0H3MPVjw9YPXRbKw9RxF9GF8NpXsGbvB8Uh+Nfmy8\r\nYdQpg2Qct6OOBXpNT/swQzl/nWspLylebz6qLQWvBT9uR6Vou4YvoYMXu50i\r\nFmK9xrA70qhD7FNqBicvgG9J871p9LznHGCw9dURmWC0QDaAmjcK6DKATX4G\r\ndmgpgW9FNcvCPRqkL7s9zei7SvlQ4AefrI29yJO66+RX+Y4CksaUY54T1R66\r\ndtapIcKKRi0h+4Y+Zr6kSwtV8HO9I2Ee16stST1WNLslnfQfw4JPLtm4DqNp\r\nbImuPA74KaYb2IUzb0envjkmzxx2FkJgr4Q0LwBSMXKjOHmMCQUfKUXq0U2L\r\np/cyGNgZy2egbK88xAo0oXrRPZTqLA48VR8=\r\n=E89X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"3a4e6a680a4b7c8a268aee28d1c00cffeaeba973","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.3.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/graph":"0.0.7"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.14_1655246543441_0.5032299214126097","host":"s3://npm-registry-packages"}},"0.0.15":{"name":"mock-block-dock","version":"0.0.15","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.15","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"8a29aab676ebc81dd12f2d4264129f606246ec99","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.15.tgz","fileCount":104,"integrity":"sha512-tGjV5niAjjUSmHxLokwgHogjavTF/HfTEvOOjnx04ssdnLeOKYrbocExrtgNc8uH2Oe6Oz6NpkrPSn/2zwx07A==","signatures":[{"sig":"MEUCIAXHv4xwJeQrPHkNYTE7ln8XJBzmYVTQQwYuFLyUsGx5AiEAt5sKTEAX0khYfrvkPPZNEsJejE0wcX6lrf8ai1YeiDg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqZodACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqrtg//QpZvj5c73z/tGND4nbYKjwvkoxOd271iRXTowfAJ03vdg1NN\r\nzGvIAHgT+B78RaJHKoPH37KuV1GisgwR9hmoasUi3Bn/TZPooZNj3X3cW034\r\njQQNUIlIgemla191loczQTqNeAj9IkHug/v1bR43UDBdlMjOGxmwXu0DUsTz\r\nepQqeTzXn1pGHpSZsRgbMMYGJAG3uPxmLsdM8idjD3qmXzEw0Rtt65ZR7SJd\r\ngfBlhEKAvAEZmUSzRaVaMS/UmFGDA6/zsTZHItHrtS4NFIBp+ItqjXRS99ak\r\nf+iTyvFPzovnjRRreVOAsl0UOzwbhNO09i1OosKw1+5EP9qUYPxeZ+ZclAwj\r\nobdpUB+pfrD1bX10t6ssx3kqwDbmFy7Is6llL6gA0PCVYMjAJQDsaBM/TdKU\r\nUqxLkd30CwMR3lvOaCxnsFDN4FIZPWC3l3WVexkq2CEIkFgRmnSHEme8kRd2\r\nvfSjn6+6Lzb0AYt/RjfsayOfiiCaZsw8uxheyMkHcgMmppxYIl9SrCKCDmo4\r\nN8/RI2umbhla2L90mo5J9cFQDVhdgM1b1cykAZAPBYL8QqObqOlB8Zy0Pv/G\r\nsCrSmc6/QrLblbYdKuC0zsW+mzwL3GDlxXFvkGF28BAfxvfZrDdi+GUPDlKl\r\nfyoZAy0LB2iW9SWP3ZCdU0I8bqHwWnB6L/U=\r\n=WosY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"6c2301c964953b5a3cf90d36c41caca886c0ca25","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.3.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.6","@blockprotocol/graph":"0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.15_1655282204838_0.19100268838756929","host":"s3://npm-registry-packages"}},"0.0.16":{"name":"mock-block-dock","version":"0.0.16","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.16","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"700efc52478e58e32a8781911a9ce7b2601f678c","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.16.tgz","fileCount":104,"integrity":"sha512-qQxzr1h8QyYF3S+5MOEDaWMDDWj/Fg1QtMt3tffl/e+19M8AsLQsSTlv1v6Nm5bz/5LXllMk5N8K7EqoKnQfNw==","signatures":[{"sig":"MEUCIAySAo4SNLpnj63kp176G+7u3Y2SBO8Oiz1L1NWtb8ccAiEAkp3CGH5OB9qSGg+nFSd+qie924q2izvPBN4AgVHkC+8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitHTVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdAw/+IwJl9z/9w6oiKYe6JHc1R9g7L6PRVfFmZd+uNRuYcGs2I+Cc\r\nwKa5taW4u/UJ7lqJUMZVIQJrv47z+q6H0R+RLCrIqrXsb34M9rqzU3TW3TRG\r\nzgHgu+vmbfq34kc6K7lTQJj5/eWwm+5qTbJKA+Aca0i2sJ9UG8BKvheiXD3x\r\n/pKtqyw1ZXoikUmu4yMUh3fnWKlplvPAlptAi+5lXnhK94mLi/MDXrz/74fU\r\nyfCkb4XgnTvFn4qwapkasD4f/ZSTgR3FmzU9GcfPSlN6g3hyNX9q5E4Awvys\r\nlMgkop7Y/20eS2iF6RS7mq9i0ThdUfwYk9bZ9BcHZLD8cexpcHjhec4AtdvO\r\nTyC/vw1ptdeo91srMneAd+u26Uu1fp4IbQyqcjgnopM88TH4AHCkLOaK7D66\r\nCOpUxBBWQb5Y0/3wWd4JBECi/qDjqMtTzEKZ5Ud/Kmu+7LcN/e+NZOZ+wqd2\r\nIet7q1WztiefbmRMNy13oq5UY2qUsO7B20hcFzcpxhfYKErfibMJAXwqTgKQ\r\nWsySHtNMMPQkTh9OpBB4SPBqNE0Pz++A3f0HzT/s/eruKyK/MGL6QFqXG8BQ\r\nrzcZA2kgQZ+9WKlE3WJO/Z65zDesB5mYRWzdOCD0E3y6PCaxe8tkrDaO1Dgy\r\n2Hfvnkd/S+Oqk87DpvHfTh7Z53fn+4KchSI=\r\n=5Agx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"9645db355f270468c1473ca41f714ba522e13b86","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.3.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.7","@blockprotocol/graph":"0.0.9"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.16_1655993557522_0.7230508815892931","host":"s3://npm-registry-packages"}},"0.0.16-next.0":{"name":"mock-block-dock","version":"0.0.16-next.0","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.16-next.0","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"1b403abd69866fb99f68115b67adb2a139444c1d","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.16-next.0.tgz","fileCount":104,"integrity":"sha512-T6wDL+E/2iOeV/SOShB0wIDeSoYDbYvLGxfHzYfsRp5UHQnJig9+j/o1FxKwYDLB+hgCrf9Yvr7/+nb2sEFjzQ==","signatures":[{"sig":"MEYCIQDsxSmq3VstUlCn8PG+0/Hl2bRoIs6HMYaQEUB69M2rsQIhALr3hPuKOs55YbCa3YwtaeuY4AqUi7ycnAfVN8sbhEy0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":237054,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiucoFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpqoA//X9OyGQWgIb5+68yoM33ktgo0v8cR6+P5lYYEImfVCTn7waco\r\nM5C2O/2BZ9QVO/847Nt7QNzKd8Dzhtwnf98OBUxiB+HqIlim3jZwxyHpJXD6\r\nRtKuokpO3yX340Ng56+ntqJs3S+aQpMYo80GpSJSUKU90S+KtX59LdKb/IAH\r\niBsXaM7/zI3kiPNdnnjSFq33EMWZWF+BNYeSXVpwumTgIaSeberEfsdYIMjd\r\nxVop6IKWCD56zlPhZAH7hl40j04VN2bjHUoXW9n215G1grmCK7aSEzL1v0lL\r\n202pYt9rQrWi9+qGj73gvhVI/gIMa59H0MNSh1JGqUzQ5BcSH0qbFYdlZZwl\r\nlAyHY0E23C5R3Pv3FcxK0jdZ/Mn+nJ/cLjYyfTOZp5mgtpoSId8pwInz6ghF\r\nfBe8x5n2TTof3sFTMTmKvp78TMHRilKjz+2OWbZDpQ+COtOOh5HvQ7AN5XYj\r\nxyvuYgkAY/CaD57dq2szERkm5HbuQSWojdzVSZ39iD7fBp/JdXEpGncG3neM\r\nyW4UFSiYQC8KWql93GhheuEij3ToFo68As+fAtQFby507N9Ijrjmx/Tkm7Wa\r\ng3/09BJ2nRtCPYNdAM1+53oR75Ebg10Wy/hcHF/1wRg4XxG+VLQqPeIXClcP\r\nqIrkml88jy16MUZOL1DvTPfEejLrGBeCSO0=\r\n=U0wx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"5744f098e0fc199e0c314e9d0d927343f0591b3f","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"nathggns","email":"nat@nath.is"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.3.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.7-next.0","@blockprotocol/graph":"0.0.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.16-next.0_1656343045035_0.9529393894305906","host":"s3://npm-registry-packages"}},"0.0.17-canary.0":{"name":"mock-block-dock","version":"0.0.17-canary.0","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.17-canary.0","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"50304950e59cd8b2304173d4a24aa4b7a3847a8e","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.17-canary.0.tgz","fileCount":104,"integrity":"sha512-ILAyiFzd7h9dXaeWXXbZW7K0WVVW7fl9/c18O/SEZfY8VlTD9dop+3jw5TPrTndYGqG7U3FQ6JMnh+dd+7NtGw==","signatures":[{"sig":"MEUCIGm9EUOPPfDmvVMzdNJkxckGcj9iwbrdvzj9dgxuZM5gAiEArqk1wA6ThrDbs8owAsSrrqz7hmDOVQRl8JrjEkQk968=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivqxwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqzmw//Vs5Ik2dQZ/9VSMAfsjuOCCUCsnuDpqlAxc+KouS6W4lycsUd\r\nxL0xMj+i1qnHcG0g1e3JZbuktK8wBp00pHVOuPvfyp8JyF/QZ5RwB3cr4YoC\r\nTGaK0k6Y3V8vPXkUBJieCyAQvtU1Qz/VHH4/AXFuuFWbBzSozcpnTAXFUMUP\r\nuxvSWFcQH4Hd0zRtQoEWLNjfWlesh+XUIdvRw9NngJ3RfDRzYy3PbD0r7qMb\r\ndI51kEzQzqQhnNjnJwmiODyLaskBhgoyu+aXDyLqYusWI9mNzKXHRE8S0S+h\r\niUn2U2Vvqm7DFgCyoRVzE7AsvkUuFuou4anV2/evtwyAUjGMJjTaYCYVAJ7+\r\n3CtQ6HRNM28S7cWoE8lmer8rdDfEhc9XNVTpuFsDnGRx6TEgBl+Za6gkursF\r\ndsf6fbbYHRnLwebHwXdX7gjPGwn97Q5dJ3NEr8iCTdfzglTNOQFgyT9YXQSk\r\nDgHElBFH4W32GDuCWDcEk4pPRBx5uSkGk1834CfLMMZVfGMcBdrdvwi+a0di\r\nBuFFS++KYrN6G+gTsNsSc9P0LgQae91F1JiyLm4puIbyghXkGCFDHaCeBKRD\r\nvRsFRvs3LdphnWGNIr3MxH61fGHmtpwIH81n0wWg5UVgQEnvRzR87VDO4Awj\r\nt2xwaIm1eXJfhhIkRlgpWe72tLaNVxR1f5c=\r\n=Ai1g\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"e04f3f40bbdd71b52c5d652f16345ee480d834a8","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.3.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.8","@blockprotocol/graph":"0.0.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.17-canary.0_1656663152388_0.5923771850375044","host":"s3://npm-registry-packages"}},"0.0.17-canary.1":{"name":"mock-block-dock","version":"0.0.17-canary.1","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.17-canary.1","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"1f6de12cf9dc3508f799fdb810460a0c6552073e","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.17-canary.1.tgz","fileCount":104,"integrity":"sha512-SgS0DvEN/m+NEV0WQYwfOTAzzr+WnGNbDMv65uvrYqPoOhwKviMzdiNXNdYrft9BFhr+2QyeXw2f95j3QEE8nQ==","signatures":[{"sig":"MEQCIH5wypBL/W+Rqj0CuXur+IHbnSTaMDRXmaNwwTFc+drNAiAT6hqaUGWwZJY69qG5/uzQz2aMelxHkon6SWcfPWnARQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236954,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivq2mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrKjw/9E9/YerPaTcQl7+c1Qch4hO3Jm82MKyQHEUbdsazqfR7y945o\r\n19T9gcAd8hW46dcJr0BYACz1uRMw67/f0+8Qt3pf+TLFr5mtOqLAdCmRoA0X\r\nIhHA622cgxds0GVeva369A2EAxbPbilS9/Ya+r9oVxgk9Dtv9JhSk9ngEkz4\r\n+q6wi5EwsHZeGfGR58jwyyeZ28srWVeZN2yIFzr8r7Huf1A03U4dsPC6GobI\r\nujsUQ3sL/akXXRNEXjxcWm8N7y9Vs9TVNPt/F66DvAlaKwtPxeSLIvB/ABpF\r\n+ytof1pPqEvaOdJmiwW7ns5T4Y0GcJ8vUm460rLRgZsmcb+Jk+FkpzVSmcQ+\r\nM2eOzR9Vm1mh0hIYusuUJAXg9dm7dCUnc89lUu6+I7Ume2CRDXiIkXTXU6vW\r\nQoSNTGChE8n52BpuVUsj14/aVhg0Tb4GFIvDQPPVQL8xMAhAXDi16FdJADwr\r\naYn+jdY6ufStTMxsKJQsCnB1hFkLF7vsTjuYYkig7hYXBp6BWb2fI47DFkwm\r\nqU3OtGUF69Q6eSC8MxdcrCTZCZtfSUo8kJSlh3MJ2qpBlExOxLEnLGMIfKpy\r\nzfbR0FFeg77JrHdvHB+zHYu4wg23w9Mtw+7DOWOB6Ekv9TnJJrpmA+MmBYZl\r\nTK/wB5la5lkUu7fWtcaLIqJoyLLZ/AlDqg4=\r\n=stML\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"e04f3f40bbdd71b52c5d652f16345ee480d834a8","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.3.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.8-canary.0","@blockprotocol/graph":"0.0.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.17-canary.1_1656663462036_0.21631949209582158","host":"s3://npm-registry-packages"}},"0.0.17-canary.2":{"name":"mock-block-dock","version":"0.0.17-canary.2","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.17-canary.2","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"a750d8817775998671207d41f99dbcb0540ce842","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.17-canary.2.tgz","fileCount":104,"integrity":"sha512-RI1s8T8FOgig3eAktnoeLLLq0cSReoieLMn6tDQCIZyw/uf0R96KxM07Kd0Xe/PWA4/NMxMp23aNr7cZkTKufA==","signatures":[{"sig":"MEYCIQCf1RMM9H2c/OOBHZIfghmBh2pZR0TFbaMCeD7cv7p4/AIhAIHN9vReSgjXlzgmDPSvcd5q4gGNTJVhts6Cba7CMtht","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236963,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivraLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrfaBAApK/bO1T7P2WBUBvR3hUnj1nYrpEE7yRkHINHD/wsbmidZ1E6\r\nRxoJzAHXHau+vHp5vPUNIO7XrNj0OZmWpL+XKIMqrSVzHe5eltart4Ou2XUi\r\necRhFEdSnsBE5mpKmihZEjGRZy0DUeFV15Utp37em1XhS3uDixig0xUJwr4p\r\nMJisn6Ex8FLd1lt0kyWrbD+kGnpPSV3r4pGwicnRwgUoC+fYHq3/rEx+/Qtf\r\nfcz9fHedljvgk9W6r2C6/a6kTz8d+lgzx7GoEnbytDPUaOtaBMaKVlXSMrbE\r\nffp7nU9ihe9b4X/I2/gJPq4k+Ugws6QsT3Z1Ms+p7hThWqIZX/4cgR1wPn3e\r\n46amdk4sPKSVGaB1N0XRcGhMoMCq7KtyUCh908LrT76RZKVzR9esAPWCS8qg\r\n6rZs00BCWG8z7DfFSLLUMjTVqVxYYWOub7AFfWTVBJLBnGl+IvKar0Cg8Xmd\r\n5fMKsMuPJr33gGEB8bs0QFVv5OGNgdAT+RJJs2mDBfzV7OZrdfdYqAJEua4j\r\np8r7XZw0oORI/aMpRPjHlYfYO7MsPPpREOrJcZ0/ZphLkVXvD1rZlx+TJgHb\r\nAYHPuPFrzc878sjbpB1QAN6Pnl7cEvAVcwlJcfee+srXIVlzmG7icp/9vrfa\r\nwfZbzK3/Fp8eerrkCBbUvoHFsOLsBP9HxWk=\r\n=MvRq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"3bc4a2bbe43a85fca225cf0a22194e2c9fcd88d2","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.3.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.8-canary.0","@blockprotocol/graph":"0.0.9-canary.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.17-canary.2_1656665739700_0.8151066080967722","host":"s3://npm-registry-packages"}},"0.0.17-canary.3":{"name":"mock-block-dock","version":"0.0.17-canary.3","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.17-canary.3","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"60486fdcccf6152d27832a97339ce7c50c280838","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.17-canary.3.tgz","fileCount":104,"integrity":"sha512-ZJ2MN3mvtcHktU9S1oLlAov5IgLP+3gUi//iy5n6+8FhtF7k0VrYsdDlwIfgawZiqGcwURafqiWt4jtaQZyANg==","signatures":[{"sig":"MEYCIQCtg9y2eQWWHYfDkDcrHLkNBEBpirRxQGQvhigUzLv25AIhAKFxUp8G6H9orLZk4cPAVRjiCF0AKp4s1k0jN4Os4gxC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236963,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwr0AACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq7YBAAhC/i3ERTUBvE8Aoyq5r4aOkwgzbTxMoAmsrpjLTeNKKvMTss\r\nB2pklyZm3tzNs/HDVJJFe6bH2WFQWcnjEmg4jqm3GIlfHdADyL4FmUdPWN+9\r\nbUGIqyFXMxx4o1Y+i2SOQU8ZQoJt3zSBc3XiDT2rkrWTszfpUcOHvV/f5V5G\r\nfREAvAi5gfnRp0QYmrTdwB/O09MfbVFNjlLrBM1Ku95fX9b3ISfcgXFNpBLV\r\nuru+r+Nf6HosjhY2PV1yjnFHtY+qtGNC+qa7/VSrFGkSnoGXxu/z0LtatccM\r\npbjTJuFf2oYQBK9YLETGLMl1QkZ42kpWZCZUMgpRNfzLbg0TaLT93+Hd10Pp\r\n5L5eYJ8Rs+9g7+goQ12idyXNdWn1jGZv9sIpS1IYUPu2BVIuT+JdgrwIBZHb\r\nu4yO0xcOke77RzL3wPvRQ46x1aQAQoHo9/4RQOFKUOQZxLTEuyXmx5YdhCCP\r\nzYcF6ddxITNUkhKxxU4VGlZd7pl5ZSJMtXeCqSpIzAAk4p25tEB19d9FBIN0\r\nsprMrWZvhd7ZoA+hf/M103n1zaCsJ4FxKnIkr7u/Y686eUtYdJZ0bS1aiIjM\r\nfkb3Mzies6ew82U/99a/FX5ljbSdpl5bYCvjHuzE4oA2MidWlo/lyMgMks/P\r\nqu2KEWLUwikSbm4PMe0rqo5cBXJBy8h1IAk=\r\n=FhKJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"3c1d12957ad9f33fe296a3d804cc9591845d8e40","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"nathggns","email":"nat@nath.is"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.3.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.8-canary.1","@blockprotocol/graph":"0.0.9-canary.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.17-canary.3_1656929535954_0.3686201221292149","host":"s3://npm-registry-packages"}},"0.0.17-canary.4":{"name":"mock-block-dock","version":"0.0.17-canary.4","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.17-canary.4","maintainers":[{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"a98b30150ff489031e168049998ee84c6ae44b99","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.17-canary.4.tgz","fileCount":104,"integrity":"sha512-+q0WiBSZ6uQflkXwqhJuzHSx+lKOEv7sW/f4C2FnBLvxY33kxJt64IRvZxQsuy0gIONXrQT5oau7WB0kxdIO7g==","signatures":[{"sig":"MEUCIBfzHVq5+TbrPqDAG6EzCHDOHJOdwmtvqOnPMP/rtBcSAiEAobU2aLsQmelow58kGV2/EubTeP25MT9Yj8CtE6epT08=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236963,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwsAdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrfNBAAlbHAPdVnFL9/VbqgNtDRxsgfPMVhgIEFSPld7YRFTis9Jo57\r\nqOz8QS9nUdQ/LjWC7d2XthQJ74g2CtLifF3LuxItpLvQOfM3ezYlUCDmHDad\r\nIElBKXbC0c1LdL73XtWkKRSFUqNLG3h7EP6nEkRBLG3pUFvTIoQu0cbdr2IU\r\no6vu6Jq01dCm9j/l1nFBIsku8fuRL3ohmRYA5kbUQ5akP9ImCXqUhItXZY5p\r\neiLqq66/ro6QdHHDZbNKcibT+ykMmgbx4digfNlkUCY+R1NbZSgW+U/auOrt\r\nHODd8B1S38pvgLyOTVhTVtE2DVuGSAG90OSaUtZEFdfMHN38efqjx9kCaEmB\r\ngqFMd3mp92AJe0ND6rjnoGlhsEzysLMFlFSoa/TJzM9npU4+wiXS+O6FpULH\r\n72Jjio8P+LQu+BZCyKhsy200tzos5hlzSXIhata1Dvvy36uL2o0X1o283vjK\r\nTSMfOOcfRrqfzSjleg1bN9k/PATqcl22mA/EHRTv3x4pcSr7W5MVcMFlPmXY\r\nVwnbCXLpwenNPL7GyjsaWwizhif5agNGuuN6lPP+ByHV2pmGH7Fv5Edt8SKo\r\ncwwE08aQnvLE2sGWnZysR7MXlTPWATUgsIf2SmRmOc8FS1jzL5ABFom6R+pN\r\njL7H5ujEurjx4FQghyo4d3+e7l1X8m4BTgA=\r\n=L8RZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"3c1d12957ad9f33fe296a3d804cc9591845d8e40","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"nathggns","email":"nat@nath.is"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.3.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.8-canary.2","@blockprotocol/graph":"0.0.9-canary.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.17-canary.4_1656930333609_0.7414330467454262","host":"s3://npm-registry-packages"}},"0.0.17":{"name":"mock-block-dock","version":"0.0.17","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.17","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"75109824d530b108601cd6ccdb09da2a2d558ddf","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.17.tgz","fileCount":104,"integrity":"sha512-RoXfAESlPPgGwh2CM4SvXCVyx8Y7gVNwluqHR5jpfncrH+6bkVNa3xqK46d1UP+ESIIXlYRhoD0ExeLA/ywAKQ==","signatures":[{"sig":"MEUCIEDKEkqZitwPmuo722U8XowYlRb497xdSQqd0m7Ar4yzAiEA8taLbGAFXvFNRdx8EFbME7Y7RNqSc7vL+VotlWzn4QU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwv8ZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmUA/5ALYYJVWxFrM0fGCny0ErpWyBshU0G8vb7KbYJmK5dX6cYFNS\r\nm5x/nwGDV3W7KMo2q1UjG3E6A8RbZY+bDTDk6c7q0+S7illEUviUaqLfB+1K\r\nPE5bLewPVH0Pm8mt+QFkSvup7e65QWlpDvJfTlw9ZFPxG/JMFSxcCkTF4f2K\r\nZjdNIVcgnLHFhmOeMIi0HKoUTO0u/4MpVE6CybPoKMJ3yqeJ8eE6O2nR+8S4\r\nkj0LMROg8O4lyob7nzm9hkbHl6KTzFkdjoAOIzDiJRcygfiEGEFPET/4M9np\r\na0A4XcYYUSNlf6oiYHYmtWSun1KZB6Zj9bNnExtogByDkhVHgLNmxWcNTMs9\r\nLxCKUEfOkox0qWty+E1GRCcBW5qcFsYRr8iFpUF+r9YzhJH1+LZmVPsmINMP\r\nv1fLFt8HugBGrCG7Tb73ZAwJQidBXL3rmqMno5TONQk4qtinla3evZoamC8N\r\nfmoAM8lKGCN0H09xYj4SqoRyMULRbBYQf3LdWL4IirEmxHegkcKas3IOjw+h\r\nJJ4DqJcjZ8tl/mv1RNxFR5dh864YRBCkiWdES2Iu0zGCbJvjEO54xHDukcNb\r\nta2w11hiAwcQUikeK0rzYJe/RfM33IuCkthJNK52besaH17BGjnWpPcTHCiU\r\nXNYXAo/7amr8h9vS2cCS43JvhsVDU91h6gg=\r\n=v+TR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"87572b64d1c733f89fd3eaed477c61b331493028","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"nathggns","email":"nat@nath.is"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.15.1","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.8","@blockprotocol/graph":"0.0.10"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^17.0.2","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^17.0.2","@babel/cli":"^7.17.6","typescript":"4.7.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.17_1656946457070_0.4787393184991071","host":"s3://npm-registry-packages"}},"0.0.18-canary.0":{"name":"mock-block-dock","version":"0.0.18-canary.0","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.18-canary.0","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"09468b68d7447e17d0f2a37d2c8bd68639944664","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.18-canary.0.tgz","fileCount":104,"integrity":"sha512-seO/3lG7p9vHoprr0sDde5FzDPco8Ewsq4DQfCJ2K8KJkXYL7LhtbrD8qIpa+9ik961f1gvCAkFf6N9CrQS8tQ==","signatures":[{"sig":"MEQCIA577onkImh+s6baqrylFXAoP48KyFdkAT1AcQgq88kGAiBtgXu5r/GzOqiXUwwGNDJO+qlykZUEUY3RZyosGKqAIg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252924,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi62lWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq37g//SSXHnofRHPg7rpMZhbM4BGLeOnv5vcCJ34nGaw+fsMzuvOco\r\n7w0Ib/i3ZaDsKbgu1z3yu+0ce5TrBvDI/Av2QW4EtANoEhK/xgz7yO9tlxd8\r\nzECyQW66t0LU+ZlXo/DdGdhlQ6d0wUOy09KURX/5WjC/n/xWe+u1hjAslXKc\r\nvJITsoBVNYWULn3d7si8OJ6dADvFGOnP3TR2GGxc/r9ISvHv550MD5oUTnXe\r\n7OYDv8uyacoOIUmeL/8x6DO6DtDjAKIp1GjNLlXr6qlC7kqZmOcSiPL18tIm\r\nqOockhdpcYaLSDERsNP2boXof5AjPvcLXAffBNZX6ktSzEV5/zCytWdgp02Q\r\nkRVp0T/lNA1wFbRT87wFkskNHFvgG+97GXGsbO2klzsC/k/eJxWk+CW19jOH\r\naKjtfPQ1MatIP09valS7WiTV3S3VRV8W13GTNSG/VMI+fKC3M0aV+urWqcvu\r\nIMWU/eCXioUtPSFrxl4svk6fzRuNuckgeBFIga44UBUA48mfUByVI2njPl2A\r\nuIf2X4Mq9u1tI4bgZxFEYGKHGg9NgO0eAdXI9Q4aN3wHrVO7ZM8rYRdRGfcB\r\nyK5UV1UifSDVkRujDd49KgnK7OeTICnle2OLBGkTrDlDDQ4KfELfHrPQ87GI\r\nxTX4Je7oA5mJawaHRsyjdnM+1nhAQnjIvZU=\r\n=24MM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"1495588ba210766914a341d39210074b26e9f066","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.8","@blockprotocol/graph":"0.0.11"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.18-canary.0_1659595094561_0.955983841977174","host":"s3://npm-registry-packages"}},"0.0.18-canary.1":{"name":"mock-block-dock","version":"0.0.18-canary.1","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.18-canary.1","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"a0012a3356689af656b4bfb3a8bdbd50c50dc51b","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.18-canary.1.tgz","fileCount":104,"integrity":"sha512-rnLAFyUHgcsBzQd/wthbpcOGXs44W/0ExpEHTHbULEshjdVXpryKNmenCa2DaziNJCHU4hz73YCf7Hyz5MiVwg==","signatures":[{"sig":"MEYCIQDWpAag2R51Qn1BO0GioJSJmv//i4zItw+JbZdE2mxCwgIhAKl21dTMAxbbhaHh1EGxxXFUmJ96yRyyPB2HL4azxggI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252924,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi63KNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmry2g/9HThiI/UloybXIOvEy6TxLMzOF8xK5dPKpGQ/4Nywc1J73Qhe\r\nRY0MRbA48y/IHoiYbOQjGeeyMosS2cZvFoy4AhZ2YBWVRZ570po1hm09kxM9\r\nb3uUDNY2XVrrcIgIVXp/ubI2V8xd6G6WmsLKcw4V4hF+zsGuezCk9SkOTnjR\r\ncTKYxC2RGC0khB5xeoSUjbZOKT4JVsFIeAYKLvIKIQPQm06tXTZ01mtSIn6j\r\nvHxZJlckHh8+1tX+2/1XRCtl12qvzPownSBm1jjYOY7ehR9LKdurCX1xxxQO\r\nRHoQNLD36E99O0xJi4xrhFWh4dujRt4dHl5h/vZeQzU8nKiPk/SYM6wmi3/C\r\nTP/mwZcu/4ZgKE/Tb8l9f13Ig/f3IlQwO1yzzXJzcWjLCHncT6a02pdGrafM\r\njBnyKXY40Z+sYNaEEINEO0LHUB2aw8iNZlfzXfs372WrvpyqRkBOSWE0tiI8\r\napJ1oIzHO9o0tIyt38eFRjOhmQsVLsX3AXbNAujTsRBj3khW8taeJ3TsqHI9\r\nts2f0ChJPilHMY5IBnvCYS4fnOTWz1f+/o6Fv3YHRgIAiS2vvZnO8hXzxK63\r\nuBHR6BzXthm6qSOKqJFpsFcTu+fUo+CCQMGHPS2p1CbASDDsVhF/7LUnY3v7\r\ndiF8kABT9TCCpQLF7xek+NuK43SEPK3ovYo=\r\n=l9GV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"5a9d4fa3be154983a95b99ef355019564338f76a","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.8","@blockprotocol/graph":"0.0.12"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.18-canary.1_1659597453709_0.4850208352211609","host":"s3://npm-registry-packages"}},"0.0.18":{"name":"mock-block-dock","version":"0.0.18","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.18","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"25c117a107d4db893434e2e16465b6b21786c0c3","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.18.tgz","fileCount":104,"integrity":"sha512-zXX9Jag9HKRisLYaIfMYZYANRH88lDBnThe+f0vVxufec3tPOxh0Y2PlffkynNbqknjFMUhG4TU72i2p+aSrrA==","signatures":[{"sig":"MEYCIQCjgwmpkMpBLCngk3TC9Ow/T9rnQv3JnCoScLrU+JHLggIhAMqIBPsJ/Q5AQPHYGIPuv2D13+zsBrlaAByZ+FTcLU3v","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":243621,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi68A5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpL/Q//TzBxLhk0KnCIfTQdypJBeD+jKhTE6JmdZ9i5K+ZA6lh6fYri\r\nBytxYUIYXF+k1Io+gFJONV/AntOdyif5haVchVi+FVUXY6Izg33PDYcthZUK\r\nCQyp9GRLx9z5Rg7+nldIL0KTqqWBiDfwUZzKqJPogPdzGtSNekQ46CponXCE\r\nbbO203t2Jp4p1ILXaAXOwcy1/ZtkG1D8h//j3T8KN5Sg369XwaQdOXPzBJ9C\r\nVxuJ5/z/1M5XMphqPX3fdXNMq5Z83axwUSz6zRRP88pKFNP/PUyjcrUg83yH\r\nkEDpFWOYwz+QPL07h5XOfD+bhB1JPDwnaW9rpdHlw1oHVhs1aq7dwnmqTG1Z\r\n7q03akYtC4EXtjnIr3pNOIqb8ij4SOmmZ3mNERxcWKH1X4gfQgz9WpoHUKF6\r\njw1PVgj3g6LEHIKcIWQVJ9pqkcxG7c9sSlrhBvAO3hZLfa4dpfQlIFhRgsP3\r\nmgihaE5OQqwRU/3+H2S1kARP9j1CddojUkL6ejlQjmJyjDpgjoCs0u3ayofY\r\nDSrerOFVozMpBDVO+AiBUDHDvZAMxY9M+tIu8Vfrqc5IU0hxGVA7IhVUNmY0\r\nTyquwtK1KtRlOqXP0GeY6IncAFhRNKoSydgEFF16gfHMwauFJe12EFvjH6us\r\npWdAvRKoTIICF1dLEWbXb/gdqF+vG8xNsr8=\r\n=pJJR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"13ba69bd59bfa506bfbd338567c0302587ca3b67","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.8","@blockprotocol/graph":"0.0.12"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.18_1659617337002_0.7416200670613324","host":"s3://npm-registry-packages"}},"0.0.19":{"name":"mock-block-dock","version":"0.0.19","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.19","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"ac47d329ffea110e8a9a9d5ffc8d9715c2ccac08","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.19.tgz","fileCount":104,"integrity":"sha512-yAWwcKU4+++CCBmS7+jvJR9Ft5ueI6V9B/jB1AJJ/dWZghKiKChM5AM3WQz/8qNIWzobam9WlQhcEMrQDlLFiQ==","signatures":[{"sig":"MEUCIQDaxPGGS99/oaJ5TTwiA1cOJVnsXcKE79YGzme+Q8joZgIgL46mxyl44qooA1jKhtjAdrvTaBty16/tpTvkHVVeA4g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":246251,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8oymACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGGRAAmpyJZtrqL3FfnAZNk7f6sVxcFxj4M3qZT6VsRxztG3BN4tDz\r\nLxnsvOD5GGNfqRcY19N64YCcVBLJiq+XSV9KXM7EOFvhQ/jCpHVUierU3kPS\r\nnJHjrisgRr/0bK4YhOFu9nZ0SjYNH3KxB4S0f39Bkil2qfcOlSdn5mrAoguJ\r\nSg1gja6bCVnE/aQp+SLq7IzGAu9drCRLZYq0wbOLkYlnWjhSq+AmqyC34DEU\r\nbQSd6vz+ypO+B/sUl15Dk0v2k9sJQaqxtrQhuojXOWzPvxb8xolpgHr6PJg9\r\nqhNjrZAxMzfd6wxdbrnmKrjO2bfQC8TcIiYWOZ0hCStzBIAFXtVaZuOhi2NC\r\nsKqDxN0Sp6VpusNayS1zfwzCdlFkEb3X7cvEMjVWLUrZ4zrrEOrE0q38CJz3\r\n/NBRSC0IkhNxqQdhGrzpH8BUtTXy+mExiEXTkMM3mtJPGdwyxpmtW5gtyadr\r\nqg+xzAK2X5aks4SXLzMo2sLLYYHZqvlTUFzuwPNs9i+UlhsG6CFkyZa92h/k\r\nwYWMUGiDVdY8ohPmSx1ZIelCvJ/5U9foO1UFvhlRRGFxTN2PwE7T6MROcOug\r\nGqQPsJMgVKq3pVv4V8yxKtAq/TRpAeQTdpN4cIcYFjNg3XJLCpd3w1t3CXBb\r\nFu6H8dn5KcvGJ1ppAKJU2+kO+67QyOP2Wn0=\r\n=OeVH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"a86356c8b8b9af9fab54537ca0dcdd9d0333d626","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.8","@blockprotocol/graph":"0.0.12"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.19_1660062886445_0.9709159589082159","host":"s3://npm-registry-packages"}},"0.0.20":{"name":"mock-block-dock","version":"0.0.20","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.20","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"95cb396d5eeeff892fd1acc3a661a6f4d7d4502c","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.20.tgz","fileCount":104,"integrity":"sha512-EjKbxf7a1BXXpXVjcxZXhZQ6KPkC5BTrraS4l7VWempLGWB316d5/YPIfDfenDDQhbX+VsMI/cNs20XYfZbvGA==","signatures":[{"sig":"MEUCIQDvHWTkvoLlRlyk2brvdYLyIXEOOEczyNlr9tA1hsMAbgIgfWWsF+zei/cs4Vkox3r4DyvZA+jQuVI7oSY0aQAZ7m0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":246205,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8qoTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrUkRAAjd7lxHHQuB2h9LfkHUwo4UMIlJVVvO4GpJLrZ/fRwDXVnSKW\r\na1hsbCWWT4xL7m70i8hGHfYEujt4lbhH7Ffv+ZENpaWAvpRot8d1TmxL/CyA\r\nKJz90aIOyNjLOOGWQuKrD0YOrDr37xDs4J2uUnZdFNbXFuvCY4GUITjJ37dD\r\nkUULxNZwPQ3ErSSMxdaKs38OKm8QtfFQzgTTeJxI3YeRjs2o8BwfBP8EznBb\r\nQ6OQ8g5tAOhMNZbg+JBu9TFgeh/U4ZpDNDs4Vs3gNZFlFTPqQocXdoTIxl9N\r\n7ixJJidZBxk6lXCX+0sv4rlTMnxrJ15XlgUpxm8tjNvoWSfIUDNN+h8p9+gU\r\nayhi7TeIqqamF2lmzO3ncQv+vy7EgrVQd3ue9/xXsqvDFaI0PLGeGeVo8PRh\r\nHm9r7XK2AI8SuU8PzNRANZy024VHoq6pX0jLu4zNVeswgIBXEDXly/WA1Ueb\r\n4Vq4lfa2UiEKDaTqqzvhJltR6i2rTLA0daa2qdYmjfytdDXiBid4TFD6WDnr\r\nhglyEHDlgkjQItIp3MvOTuU3eIgnxiwJ1oMGnlOR55cXhqbfwktDqRrlBe3E\r\nAs1jmSsR4+/lWXtjHqeJcBmydra6W17n100wVIMMcpzSBp9B7IaUvVhnkXKm\r\niC0YWZYNtrruJXdRvso9snyosx0LcWnwoJY=\r\n=ne5R\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"d103471d616c6f1c444ed232b4129b7143e98a2e","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.8","@blockprotocol/graph":"0.0.12"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.20_1660070419073_0.691206256810897","host":"s3://npm-registry-packages"}},"0.0.21":{"name":"mock-block-dock","version":"0.0.21","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.21","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"7323d339f4fb74e3523da9a2bec9a9c2110ce707","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.21.tgz","fileCount":104,"integrity":"sha512-ISLPX1/r99UPHFY5mI5eLORwc9zXluMSk6wFY9un0DtI69gw4uXXjLAQt5VClgiotMI970ZNQzv2WaVau2zKaw==","signatures":[{"sig":"MEQCIGjEhihqWxVbFLdNBqpnBoBIszHTviHZN01RZyN3wxlwAiBK3w3eMSl/nySykjkCa2eb60SCkoOptAOp/9jt9H8KTA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":246205,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/pPZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpbXw/9EhPKYl3BGswfrAng/dQICxkFu6CqidiXhkDa8nf78LWxknnd\r\nd1BlZsqeTv2XAtvcHFkO9Jcm8HaaiG32XOnBy4DiIcvVEFlSGrsiFXGhqwAO\r\nImqjv2qsNpFXnDOBUR+PMUCnJp0j/pKTFzDOHYlzq1sYLKVTclMpq1biMRW1\r\nRIfEPTe4UDQn19uHtzb5XtG8FpGa+kCFeCvBWymVrNmrwGrZpQgofEVBUquR\r\n6IU9PDAcZuexOKfSStXCGmz1MvZNC0bxBCL7LDhlCoJWY8P9pLavSkE18D6e\r\nu+NwN5Bg6O76xxBJfn1dR8XoJn3YoTecMm9Ma6+Fp0WagsMQ5AFBo6wKBoxg\r\nJTsPx2rAbY4XyGcGLar6sbFS+4ZAvfLdjn4G5OT8lpkLmfEZ45Kmz73JHtNz\r\n8mKkefBjFC8saXpCoMp9xhfm1C055fRByrBHyIXCDnZgtBiZijJMUWxBzv22\r\n7BVLIXwU3safeyhWawWQzfTHaoQoszGPRUPc9/41dGFjOKfYJFICmd/p16XW\r\nKPGIy1Q1LmerLPfszsjY1ENIVGhfZ7AfsfR6xa5R11H6NobwXStLiEebGk9Z\r\n6sP7HQrLTdYxrP5KEjORPI5VE0iBgYeo+Vuj0nS6QGFzc+Sm9ifXFeodDHfS\r\nMMc+hQUiYfsNhk96oouNEj/aJ6ouln95s58=\r\n=N8ZO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"89e0bac7e47749345ba9066926f0c80a4f0d2379","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.9","@blockprotocol/graph":"0.0.13"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.21_1660851160871_0.9350246150121426","host":"s3://npm-registry-packages"}},"0.0.22":{"name":"mock-block-dock","version":"0.0.22","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.22","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"2dfa3dc57e67a9aebb12bd4786c6842e70d83135","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.22.tgz","fileCount":140,"integrity":"sha512-4ouyLhyAwINgLVjuntjnI8rrVvYni0hkSXHivJrqXXeHeY+FXgrNhX2M2WQzPM1M+EeQo4k/kzHN/5iMlU5ZDg==","signatures":[{"sig":"MEUCIBL0V8bPyTF3w573dqvY3Luhp5RD+gKiRoTPoHMo6sKXAiEA27f/tpAkY6cQoH2EcU8h81jqp7YN4lLDJT6Jr0LALYY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":322514,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjA1OIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqflA//UW2+BJ85CsCuGs2BYzK+bE7AaqWZ7xGscGjjExhHLo/P5VzO\r\njwTCzlssj9JUwDxgHfIZedMr/bjI3EVYZbRYmjzSwfDLpFKtcR2Cj5xNhdBX\r\neCv9VVLKf3no5dGkvzDvsdOk6Ig8OzR8EBv+7bBVE6DFuQqsxKutb6WVonV5\r\n03hQw1XmxyYjmUYq48fjughKkdNxX3ZOb8ABryOF/cAVumltKeL89WKJRUcv\r\nYQ4RynYGAFL3QUI5RdocPvCqYmWKUOr441qCpndh/rDGxG4xmC0EsP2iE32w\r\nY4O3zXoKHxjKNle6ggjjNmb0G8FzE1QfBBnp0ZhBtk8ya4vG34HlMcp2bzsM\r\ncUrfOklZw9avXh423i3maA5AuY7p3/HsIj2gZbZ8sP0eyLG7nuQp7ZQPWTfk\r\nD1WyKzsPl/ICzz7Ey7ey8RGBneL7tZtck2qPCjzHAi2ztHce/95SuKlmtWzp\r\n9DUt9xkgs10wa5X8bjAyiy4hywZYz9poTkX1Nh6labbj4/VL/24Tib+OPVH0\r\n4i6bE3BG7zXfYVkSTAz1T5HyOYfSPSJIETSYhzoXfzTBg0+lJMOztExQ5/XV\r\nsBZDAoZpCKCBmAgpOdTFc46/q4OAaBnqodMK+e3ZJrrMYSkA13i228TxalgI\r\nFErCQRqAKh//ogBHq4frYOz/LSpueSPegRE=\r\n=HHjz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"6f0145cbab872c98a1affb361dd073bfeb6c5b00","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"uuid":"^8.3.2","lodash":"^4.17.21","@mui/material":"^5.10.1","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","@blockprotocol/core":"0.0.10","@mui/icons-material":"^5.8.4","@blockprotocol/graph":"0.0.14"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.22_1661162376592_0.9114070929416955","host":"s3://npm-registry-packages"}},"0.0.23-canary.0":{"name":"mock-block-dock","version":"0.0.23-canary.0","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.23-canary.0","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"1543f6321a1b137be6d65d24e1162dde5abcf54b","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.23-canary.0.tgz","fileCount":184,"integrity":"sha512-ysDeaXxwyPlsHaZ4yJkxwHvd3+kCmRSHIXhVMmxmXLqUyKPC6Y4mAVhRnmpVpI9lj3nw7qnFKQWIeGdUhIDwMA==","signatures":[{"sig":"MEUCIQDlA5T76/ALvfnKqh8cgSgpmj6LHmGyax/xTYFDbLS+HgIgc3T4CddM5Ql0BGyFXsphKWAMkECUfuE7jM2moEZOaXk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":412813,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCBnFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrINQ/+PEvKS/q4mhEE6gdAcUALRZQT2tT7ChlRQuoqxSEYMEA3F1PI\r\nwKaM3Mv37vEAR1MJopM23qtgOHhSsqGrxn4veLTyR+0DhdDBnj2znu/kkUji\r\nmtOBpQ6BdN/G53i93JQQEsa8dTsqSPW0bwpcOb0H5e/OPTga2RsoR4PJHpHV\r\nwko2bwRe8Kj2cy5cFzhgF9b3VR3HIKXKAKrHusPbkB0/3WGz7mrjIXCxf7j2\r\nNhSResb1tBH0H3ENq2mejUWtR+AQbe7tiZz3YPqD6wWCto5rkt9uz1jePyj1\r\nXe0JMh2CsQsm47LCwMJSVvKFN+webKCCOJP9+NDjXckKSGBB38mPy2mFkTXL\r\n3BVXeW9bnQ4HLOlIEhS/Wz8ZfhkdSthWczc0uLm2Ez7swBUnAOm2V+vF33IF\r\n3MANbQOH1L1PiWaK0Q7gA/CMQ8xzkVxbRJ4a0FsIOf45esxO7aQ3WqIC1x+l\r\nKT/WWOQWCzOjyJehYtFcKaSuikt266cwJvd7pRgDp6M83846gpWpPlHLCQYL\r\n2DB2UfE/L2d4cwd+IO3Q8OoJ5fuECbOTFGtyQoTFnIunrTey4uMYE8xMNRaa\r\nnziaRWqTxGoh1tcWV7Ck8e7ETfrJjj3W8HgRIsw+QOTeDOf5IL0p7ORoQNwS\r\nCJhVmenkRfkTccCdD6P3zXlvgTf4ToVuPAw=\r\n=25fj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"0c8a736f209656a616d0d09425f5e98dbe9ce4cb","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","prepare":"yarn build","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.11.0","uuid":"^8.3.2","lodash":"^4.17.21","@mui/material":"^5.10.1","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.10","@blockprotocol/graph":"0.0.14","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.23-canary.0_1661475269542_0.6462404883865547","host":"s3://npm-registry-packages"}},"0.0.23-canary.1":{"name":"mock-block-dock","version":"0.0.23-canary.1","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.23-canary.1","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"eebdb04faa3a3bee99fe42ca721068ea0e203d39","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.23-canary.1.tgz","fileCount":184,"integrity":"sha512-AmTKSHCwQL/wyrxex/4kwcq1gGiL6Lvyw1XZA9dy4H3hlyT2HsyWZgrYvTRQrvU6l4UkAZqJm10wuvu5likbtw==","signatures":[{"sig":"MEYCIQDaaPDLOBnkvgikrNfNwMZZTG2K+Ud0AI5cJA51H5lKhAIhAJSTl5qt8D9s5uPAu6ljjPFbHQEyKbl5/HHnD3ZkOUwb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":412718,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCB/1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpg5BAAktH9XwtQ5Z4KiQYHPYgbebk0IrEnIBYcxaYiJCHsM+zY3x82\r\nNYYjY7EFYr2Pi2dnlP42TWXTbXAZjxhC2ruOE6CDEn7PouaUaJb+ok0qy9g9\r\nhTCPXMTyHSECClYemGCKTpMOy0tFWBSKZESmS9bu5o9GwOlYOYa7z4Atm4Ue\r\ncHKmEwQNsilCpSNHWP1FDzfFG0dSPkEHUhCQe5b4gP0ctwk3TDN1jpca1zSa\r\nqSPz1rF490KsL2f8tk+s9yX/UH4F8/VMLjJQFLTxu2WH6BXcFoPk/tWVToh4\r\n4Hsge1pf7HMmwMcfRAu/iUuYf8BRKWMTB68MZJ2P7+s01WrSn+QOFWKK/d74\r\ng4Nko6QUcsv7B1BqLKgntixOfHDp/jc0uzAx2O1gvA0sSMRCpqbGViH/3Pag\r\nsoQ3gJN8vc0AwoGs80MhRHs+6UPhp1pQ0FRg0wbOyRlaVs47tMAS8/djibpQ\r\nIRpbEDX91IgPjj6g++SyNEwmA/7mCEBdDPi8MCyml7IzxfSGdpXiiAnvZvTr\r\nMoFjKEHKO7zpqUVlfn9s2vZDEVk8xB2L6LfetIr/4cUDshEZHmKE3FrJWljA\r\ny13+RNHYOARWtDtQ0qepk31O5PO6LckJYLehtucFo567jgV+A58BfsB/xUQH\r\nTUlqxP2eD4gSZZCIfKGkwOnsfIF7xDB5KLc=\r\n=Ig42\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"65ba170d57ee2941f5ba8b0e048befbfb38b00f0","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.11.0","uuid":"^8.3.2","lodash":"^4.17.21","@mui/material":"^5.10.1","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.10","@blockprotocol/graph":"0.0.14","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.23-canary.1_1661476853570_0.9841333206768812","host":"s3://npm-registry-packages"}},"0.0.23-canary.2":{"name":"mock-block-dock","version":"0.0.23-canary.2","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.23-canary.2","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"17540b846a4e58ca88bba17daafa3f478ffa440e","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.23-canary.2.tgz","fileCount":182,"integrity":"sha512-63Ugh8TGCVgoSSfGn/AgkKwHki0gEc/boBPVA3tC+C+cZN91iiOhjnv7Kt7rlnn7BW5M+n4oajzFVkBvLaNkRA==","signatures":[{"sig":"MEUCIQC3OA52CUQ2YStIfA0uWoJkzww0Sln5in1eQzF2HnNixAIgNR9AgE6GtP7INbFg2wf1S3JOBZ5zveFS5SB/ZTVmMnM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":398803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCQx3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrihw/9HISrmO3IWyjE+7OCmgkoZu5rmXb0hnFK+LmK+cBXnmx2b82s\r\nWfeXAHjBgQjzFrt5neBSy8yJuMryH/3FaVdGjReplilNVAORycBDH7afZ3Ea\r\nKaxSzgBOC+wqf2C7ofiGTT45Hh0NL+NCfZuzr38MOUYUSsKsgPKG2pkay5Hg\r\ncpBbSh/jU7VqKqlZeQjtx4yo/Lo8cwiYnh9GV4+5kNsQ2I34SL45i23Z/+pZ\r\nTiMywjPxTkXlCJNhNYdgmJsJFbiY4xP2j8qPmNSRmUBpFyCOih0rIoh1PIgE\r\nMKUg0vOBA5JH+ASsejL4l63MAyTSwM8AUR1GURMCidVPIBFELOcLR/5SfZFX\r\nY592eK7QYFusThRMk7OP3kjb5pkguPB1QdiUzgXG1zjiUHtWmJISnlZMduc+\r\nkyvu1t62l1VjKIf6eygyFxAmIMvFb+nGxUuXP7bIbI4iOvznYnyVzXRpeZQx\r\nte5cZd9H5hlqUxoh8bNC80PehcDWHjKloGh9ZvbDxbi4k/jYgSoGFmkhXaVL\r\nJIjXsnqHNaO1ZaFWgL6WKqUHQG40qgjoXMBa0IUfTEjaRSInzDLlAHqnC1V5\r\nuYzEXLPN531K3Viybm0eU10/+GVgexPgVBeJALgTzyYzm5NSj5a2P9AhvAJ2\r\nsEAvtlBrm3h52szcU3tvDdbnhueNS0zXeEo=\r\n=IA7q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"0be2b386f47d05dafc758929d7fd0b754cdd0044","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs ","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","lodash":"^4.17.21","@mui/material":"^5.10.1","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.10","@blockprotocol/graph":"0.0.14","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.23-canary.2_1661537399583_0.22592591808225504","host":"s3://npm-registry-packages"}},"0.0.23-canary.3":{"name":"mock-block-dock","version":"0.0.23-canary.3","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.23-canary.3","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"28c9863f19665098fe52f730be666abc561747fc","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.23-canary.3.tgz","fileCount":194,"integrity":"sha512-YiEHngS2IyRSzqa3Mj/549I4ZVczafe9cMT/wjSNS/gAZcaMnHeBSgNTRdhXuLpcv3gQZGuW/WKN50+KafJAgA==","signatures":[{"sig":"MEQCIFPFlwcrOva8KBtikxh1Axek9RPwljDramsJ2qHahCBGAiAaMJOYD2XI3eyHRYG/913HyalDJ21Bs47g/UgFlyeU3g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3039669,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjC8EhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqILw/9FJ3grWJXnvfQlmIAklA0nHXpKhbqJlNOtNmFZKDR2pBs0LfC\r\nLWZEnNAeePMDId+N0AM4pbdb4oI7soW3NVWIElbo4AlpspVPCL1Qx60NzrhG\r\ne+45vWLQ3vIS3eS79Wa2VjolDjyRl2TTmzpgYB+0sMeOy+2c/ybppNeosdR8\r\nlHA9GX5dcv4JRL71bB5LrAvancmuLYSqrHBU36H/zwqb+4g/loB4N1m2DDMY\r\n4zvNgQ/9dt7anwiaQj3g8Z67ZCThB7NKQ6XbtdIT8y5zURrVxGnU8/pEXH0v\r\n1p8K4ZnLSG8PFt3/i1sAt3dgAcJg0sZiS6/9f6mTcq3JY7OvMk+GrABL2/GX\r\nQCaomz9WoIdqbIkYHF5q8/ZLRbK3mcntUiXQRNW67WKIsiWsOduHoesNIm+Q\r\nm2zgHIkRIzWdMBIvazJFk8hTGof6knsI9lwZLuri+FBI6dUgKia7PvdlvlGM\r\nb/8x8Rk75ql98EQ3134recabTVTVIYqTPDnPcinBjGQFRO9BngWIOq2x1qEB\r\nr97PxlyE67wnq1cyV3aicdHL8pLSx2nI0eQXyQZXI6N0S4aWFUq7vdiCHtgX\r\nqOZc2eCbvPSAUj7eNWP/WRF0w3WLbWW3sDmvXeQUsuS3QnMnovocfNFW3Wln\r\nOsTIHvXk9cFTQgDtP/tEKEZ8UzAUIH/bbpY=\r\n=CioF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"02e46e50af0a1835deca05c73da3be418dc7d440","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","lodash":"^4.17.21","@mui/material":"^5.10.1","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.10","@blockprotocol/graph":"0.0.14","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.23-canary.3_1661714721048_0.9738673213565312","host":"s3://npm-registry-packages"}},"0.0.23-canary.4":{"name":"mock-block-dock","version":"0.0.23-canary.4","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.23-canary.4","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"f9c4ddf25cd207441fb34373eaa41a6b0a3219de","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.23-canary.4.tgz","fileCount":194,"integrity":"sha512-U2uDXCtYG+R2UhmfMUylEV612Sy0BdGDReSLC8FfHUVDRwUUbWjt5lUR6VvsPAwufSwmvPZPNilmFgOFT8JyJg==","signatures":[{"sig":"MEYCIQDjQmyljJNuao73L9F911uEBCX/zVBmm3N+Y5uMAeZZfQIhAO0ZWo5i7Wuu5w0YlQv8rrEFRHrUSxRIYPe8KgvbHajX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3039661,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjC9N6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo4Tw//W5RYL2Rw28c+Iu1rrGgfpchFtd9yr+HMyBy0dkDSAgO9CSEV\r\n52GUIOvf4cxxLtD10V0fQdkUIbDGvSSxBfexC7U93yRD1hveHxzvgheKa7sV\r\nQgCSsbXVu8C0AznRj1QoooJn/Em2DwhifoJ1BR5nBg6zl2PzEVWq7igXipkK\r\n27ZGGqBvvjg9hSAFciQ4JFKG66DwoOak1AOhqCmHHBGgrcby7XDFoRt/FcLJ\r\nkr1e8a2n8Td6DYLZuheZMwi+901g4PzmHoayDdIlDqCgxa2l8Up/6gSOgoq0\r\nFiUXwCKxKLv7/aZUlJKSoMszT/g/ColkG1SpMxYd167qmSUmFtvYxkqpI781\r\ndriQT80fqFBP/+cGRZ1tHWaeScCJEJhATVyDzPIRGhTTuZpB1mrbtUolb7VX\r\nbzGKiiYr8kINfSJ+D3w3WRqlFfdndrgUvKIj1I9R3j3HoohxgwyjzJ/LZ3fw\r\nf/4uC8KjecXwwVWhdt5ViIiuv9hlinzEEHE2Y1pbnDh0dYPXhSHWw23ZZpvN\r\n15Vx7tsUWVHujtZRAFOfsPlxl0c/cJxm9t9kk1xE0rZnn2i6yT9IoVLdeIKT\r\nt+RUglzBNFAp3x/N5ybOmppcZKwSXAvCLjn7i4QwySlrW0i6a6o1+/joqGC0\r\nx5eZUIC+9Jhhf7Exrnwu9LSi8gakI25dHWM=\r\n=oC6j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"17fac83b759ee5db60601c446f0eb05e5c6e60d7","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","lodash":"^4.17.21","@mui/material":"^5.10.1","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.10","@blockprotocol/graph":"0.0.14","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.23-canary.4_1661719417863_0.19924545672588967","host":"s3://npm-registry-packages"}},"0.0.23-canary.5":{"name":"mock-block-dock","version":"0.0.23-canary.5","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.23-canary.5","maintainers":[{"name":"hashdotai","email":"d+hq@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"b287fa0ce1522e48841a5bc7291fad878347606d","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.23-canary.5.tgz","fileCount":200,"integrity":"sha512-Xg6X6AkZk2TYNX/7C+QNuTYVWWjfEf000o/EQ9CdC08nHoPKKBGnUxunZUxeZOPTD6c6HRxDZder603tQrLlWQ==","signatures":[{"sig":"MEUCIQDMGU+L2DK9Grp0NlgMbwVP1mIp16rX1lHiljjz+aAw7wIgGDAU5wQrKDW6YQqA1w2DAEZNoSPaRSpQXdJfiKMo8HM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3050749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDJ3UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoK+w//Z79PwYV2RAYbcdMJoHM8IlM0fmzydtqqFHgImXCKphi/dhLu\r\nVDFcEDVRao9TkXAW2YXKRfuiQ4q9rUJFxz7Yx7jpmvBzsRRIYvP5OLOLibyK\r\n3HVHBIiS6atf0R6waqWTKvDx6T2Xj8cL1Xnr2I0tX2zayTvHuijxLe6/bjXz\r\n9l8LDeOiLCtFHex9UYlon0x5X3TxIgVby3g07pSQwWFVwcl+dqqmTwYShzFO\r\nSwZrnnecWtlsfHAAQy66t5B8FCN16r4zFqbbcs1qnQh+V078SbBaFxtHc59B\r\nW9VZOLS/EMEOOCuPBrDZTgJQNipltEUSOTBMyn9kLc4zo2GgjnENZs0yWit2\r\ngb8EIsPCdmqKhWmagOsx3V9fBGgpJqQpXo7PzLt6geJwpSnzJx/ZyrUctwOP\r\n17ycC99ylA1tifQ8EqsLGhnMYUl8i0GzPVzAqLUQY38B1k6D18CH/yOu6aD8\r\nd99H+khmr8piD9xJU92ve4q34tqJrnIkepoBbF2BGNgNomvo+W6Kuy8DHL4d\r\nbd+MaeQ7+x72uMlL+epAlZDw+iJiaQ373TR2RkPpiHkiwDE7LvlIQ1vBILX7\r\nWfjMIR9qKCd5mp3duhGmS7MYmTr7jNc4/cMpxD7kQ8PCzKNok2gnloepI260\r\nOvnVjCRTfd32OahVPjAxHPl0bBvpxk5IYqA=\r\n=D9bC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"d5a324f5b707b421d5d1c2df7941335579d9711f","scripts":{"dev":"yarn generate-version-file && concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn generate-version-file && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","postinstall":"yarn generate-version-file","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js","generate-version-file":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts"},"_npmUser":{"name":"hashdotai","email":"d+hq@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.11.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","lodash":"^4.17.21","@mui/material":"^5.10.1","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.10","@blockprotocol/graph":"0.0.14","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.7.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.23-canary.5_1661771219762_0.5245219599054816","host":"s3://npm-registry-packages"}},"0.0.23":{"name":"mock-block-dock","version":"0.0.23","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.23","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"0768e0616b4e8b9af1462c0e54a024aef3cfa1e1","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.23.tgz","fileCount":200,"integrity":"sha512-FhYSpTWSGQkOCz6RT2qCxmFDp75wpYLtpzwzy8PYjpxB1Md0R9anbfaU6o9lKEnFlkx2cpztxKV1WlF/qbH/Ug==","signatures":[{"sig":"MEQCIF8/lSnihY6cDm2kicyKXtJ4/fDSZ6qJeuVPS/GluZHlAiAl9CixNKkniHRbcEvRblatYaWucpoUGeLwLSSdh2qTYw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3052144,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFdvXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqtkRAAh6n1GvFNmRuQAMxoAm7fwZhOxTkNlP0+OlNZeXgv13sCjCMK\r\noELGyVUQYGizcfpYH14EXaijSg+X2180haxwMVy9DymzrYusCMyk6fYFu8bL\r\nT23aA2jGMIckWSvGeRXc5d+ovTf3HN+Ty5VDYrrpiuIGuKBS3CgjYLYqOd2s\r\nhseS6otcui//WOd6TuGfP3p/QL7hWR82LAQKZPWpyWpT6OVRu6bDJt4vz5C0\r\nGmVvAfz84SJgiPh3pHPZDUPwt6F7tzaUk5OZN4MDnUWPY7sUoIcHF+/MZed9\r\nwlWoJPc9LZmlasswbpRuogSNon/6t35AmiefheCiwIHz2opc4U5z9SoUB5hf\r\nGDqLjXi8dypEqbxtJXDfz6fBppuixWkXaDCNCb87SJQNV4nVm6Kb8zZx7Auh\r\nooFEGzIn3ylCKqcxOExNuzdJhbtvHR5qA+0VVr8z5zD2r1lhyBVNOXIcJXBk\r\n9fOqgKy20pfW145j9asXI9c7IExpPoqRmx/grohosUObG2G5/PIX1rzvu98Q\r\nJBZXj6U+23FxSwMENpksOuWjgN3iV2j7yZq3ygVS9Lz3/wZjavXSsX8zbVGP\r\nq9+OhUuMUuZWVzxMu4rCsFiKD3HwcKNLNsnM8Uzka4ArA9z4uIwXXZdbslUm\r\nKGmDiZWmxIVrY2LOVPe7Vd8RsUW/lsJLLHw=\r\n=d8KZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"b7a6ea083b62b46c314999da2524c4fad018096d","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","@mui/material":"^5.10.1","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.10","@blockprotocol/graph":"0.0.14","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.8.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.23_1662376918609_0.8252919042379159","host":"s3://npm-registry-packages"}},"0.0.24":{"name":"mock-block-dock","version":"0.0.24","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.24","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"ad5ae912a286caa66c514f5b6dd08458215717b2","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.24.tgz","fileCount":200,"integrity":"sha512-844gs//+UV8qqcUEEfes1zQZAtiWsUNpe7urZZG6DHyJpRJM3ps+TCE1s7Q5V/arNBANO2wAIHcA4+6I6cj0dQ==","signatures":[{"sig":"MEYCIQC7jT5H2KjltBsgQM4Ah+q+qu6kQ4y4IPV6j3xPvPE3oQIhAOTQ+QU9UYlCoa79Lb0VMrz/Jt4V4Sd1enOxseHrwKdX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3053927,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFlifACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqnRBAAobAwWClzWg3vzSWP42Qs7dst4lVa1hLgOM3PXhZIKxNBrWLM\r\npqcgw7E77NFHNa15iMbaGLsxwmGO/0zVxoJ6ehz/QURXOWMg4fKK01pMqHNy\r\nRJqhfhiDb5ygGnz2Wa4ebAkl9Ozk28EVWF0aWwkLxSZWgg0M6kxFFU2YLU/M\r\nVOZIN4+9f710hVJG8pm2uxdB4MKEFU2+ljCDP6MeIpkadt8owONRMqsmdzxG\r\nuSswz2BfJfHUIpzo/7FTna9nNndpo+gAZ45yRQLkNr9VBpHxyFQqvLD3X8DK\r\nWVGZpI7jjtdsyP97Sd5ueytUWsX57wEJOgLCK8bn6bxwUxM8uJkFfBF+CwFC\r\nvA2Dt+c2GnMFtMiezzI580Ju2JZDt/PP2JuuljvQpUj+qG5U2knxUsRv1Wud\r\nOVz3CCCnGdOxpXcFUFW+y/u49EIdPnSP9amzrrfguxZUQaatD4AbSIcD+uKL\r\n4b87gyXfEfLTcexdPUOWhZhFqS8ZRnKtmmEwj4XS0zTuy3opymDQqjLJPXVC\r\n7Lh3joa3qCNQkh526xeZSSbQcc/uH8JENnnpDKdk0SS3JaDuyRLDrsNLH4cJ\r\nczfvIkJWoAt+ou4u7DSYn8FOuwiaIxXr42YgKK19oMawfingr0l8qvDiRThp\r\nD0VR+MDeETEMFc9zHHQQSDZTKwA98dFnmPo=\r\n=QTwa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"889f542bf0831560f9b535a4322af6b33c86f66d","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --p tsconfig.build.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","@mui/material":"^5.10.1","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.10","@blockprotocol/graph":"0.0.14","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.72.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.8.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","@babel/runtime":"^7.17.9","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","regenerator-runtime":"^0.13.9","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.24_1662408862905_0.6458381928770034","host":"s3://npm-registry-packages"}},"0.0.25":{"name":"mock-block-dock","version":"0.0.25","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.25","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"49cdf5f2751e6e2129ecea4ba082444d9813a6f6","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.25.tgz","fileCount":202,"integrity":"sha512-nSU8YJWKM9rI1r+AaD1iSHyS5CINIgIRDkgg2boxH02+an+0qITo8qNDICzDato8MJwvMUHZyhrZHvhaZXCFRw==","signatures":[{"sig":"MEQCIH/KLnZ2gLYTzA26yAmA3eHLNxbQcv2Vpl9kPlrjWG7LAiAP1CrcseZJI9a4uEnB4kdfa6QGFk5VuwLC+YX+b6Zkcw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3356159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGZc2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpghQ/8DAP6XziSLeVx46sDrEoSnUz0ZEW1d69MuS2LBLqbehU4Ymns\r\nTOsXtvXPD3pfrOrk4iX3ZkSE6Z9ltwYLXfKv9yXaTfgh2cqmbjtAyhapx40g\r\ntbcrNRQVDc7tV6dXOubm7rnS1yRiXNqAVQUNzVz5SbJ0hr49Z4EtpkGFDN/B\r\n1/wTiBC/OwpCV0ZPO9awC9DKonQYe1s8dBPMIg/4yusVW/KESLrk3+L/FfUw\r\n7o+b8nF+ddYpSwELxi60xeIDu/yz1OFzf+//fKq74C9QjPW3LGFdbBut1vSO\r\nPo/o2e6/pWho0Fw973yA8ifQ21gYhrzblE7O4krzS/DPj+ZNWMFE1bwSGMOT\r\nC7lZex3oDsO5nr4HymkFWkT1D3C1IGf4d2jCyDNklDZrGo5wuqkjfm3sfhFV\r\nopepBBhcBRJ9Vud1hgille2kPSCe6rQyuMEVMAmB9ln/GVdIhC4T8PErFXgy\r\npuH4+aO0T/XOKw+A2GeqOVBau5xFDo75V+NBLjo5h1A2/gLn1Sv1Svprk8z6\r\nuJSx047mpxax9OMmrFZ/HoEu3cvdRvxq6tDpEP31yCatT6KOYLIx4ZhgMNmu\r\nAx+mf0rOp7tLmNWv2k0dhBaUCbieGJr3e/SJKIYH47QYXiWKZc7+Ddz0Z+Qc\r\nWwxZ085g/xLzYKElz5pXm7/3RRIs7bbhC7E=\r\n=z0Ya\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"8ddac3b1867c955965f2c4e543ce473dff20f016","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --project tsconfig.build.esm.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","@mui/material":"^5.10.1","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.11","@blockprotocol/graph":"0.0.15","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.8.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.25_1662621493656_0.4946093057089824","host":"s3://npm-registry-packages"}},"0.0.26":{"name":"mock-block-dock","version":"0.0.26","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.26","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"feb6e81f074000bf3f512ddaaa8204379daae1b4","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.26.tgz","fileCount":208,"integrity":"sha512-zhTBxBGpBXCS9+HssDgz+bnaztjoV/KJhCMSBBheSRcDbG/vZCbJuzXY0eO4777j9e45SF0t+rHRGL3eqHT4dA==","signatures":[{"sig":"MEYCIQCt6/0F2GtVfuDj9NdnIwSWj/DzwGnOndK0uuA7iGkJTAIhAKtSAMFiswxN3CfRvHY8oigI8McNTcAWiB7weeNdP57A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3365928,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjIJrEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrrsRAAmst67MApJt89YTyaYllQ6ZnMARaXDfoL+6nnriUzBYuHPUhK\r\nYARKHgPFHmDYo3tTJm7no9hlc+a92a6J9wnfLjiUyY6nyH9w2zDUIYmmVtOW\r\nkfQfOywSQXqX0oPqepjeLmKQRNiV1pmxv6b74UKDssuGBKjxnF6Dc6iGcx+D\r\nkC55Al+kqGGjIjk+Fl1oVsrz4OmuYrUdzBc4/tduL3n13ZiFyTtgvMMF1GWT\r\nJ/aNkv7Boi9Im+jnvSh4FV+wfSwPWGfysHGXurt6ZoZ+Se9jMZ+S5DylIlXp\r\n+ZP8islbz33MW0GzCnqOmFO+AN2hBgsLuBzdTFA/1KremDSvDbUiae4gOTsE\r\nJiF2lV7Qf/icSjhZfkY8mjXijqFF6IsnTXUL3EqmR3z+v3/UudAiRuHBQqfN\r\nkvIfg45fsO4ZZ5cLpR3VknpWfDaJhnxwe2ulcnEurNyrF/TMh/EudVsXxqyi\r\nD1bxx1sPmcY11LJCshqWJnnH8RksAxC42OJ8yYXE5UKMzq4KfXoQPE4Omwnm\r\nnWrl4UFbgdpOYe7td2RRKfdcUSVC8E0+mWjxe5qwAvbostQsPAC4oxshlNN8\r\nKEHsp5WQyR8DXRAIJPMtvSc06WQeBSutZNdakv3kTxFV3bp0p1GnBd5MJBHi\r\ntQGStAkhF5S3mFzPL0R/pkD6Z+BtjjPO4Ok=\r\n=4SHN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"156b5cf33fd34967fea6947a3b931f986474028a","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.11","@blockprotocol/graph":"0.0.16","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.8.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.26_1663081156255_0.5699840375980747","host":"s3://npm-registry-packages"}},"0.0.27":{"name":"mock-block-dock","version":"0.0.27","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.27","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"649db6ed77e4b5b3d4bb9d2be28d6d77306c7eba","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.27.tgz","fileCount":226,"integrity":"sha512-qsdlSgwxSMO/4/SYzolMr+gKzf+vMATjRxk/NfosUkIOBKhXKIGz+rBJ4mqkVKLN94NFDZtFk0fMq08Mv7kzeg==","signatures":[{"sig":"MEUCIQCUxqgaVDeJQet21eFH+jtZK7gkQwXiilD2VsME1H+S2wIgXZQ6duz1EWebp/9r5eNZoq8LbolG6jKaJkz/Ml+/0B4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3425709,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjI0VIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqcwA//VBUhui6m04ssfbK857F1KSw1EyolUgLE3//Yk1p/OQBne86D\r\nOtD5+OZIkwhe7dfVG5im9sl+H7NatHrKF+QRK6SGdm0m4eDb8X5WVWJblCPo\r\n8k9ZajMsFxFeV5/3It3FH3kQKT4exn0ecTA+8jnwNKTDyS2h/SYA71B0htxQ\r\nj/nm8JGgs0/S+6HG6Yqxt9TzutdcKQ4r2NGIez6XsFuko5/hoImkhdAg7+gK\r\nhchLjUFL+F9Y/tT89697sQ7Rp35ZtK/u8mflw0pALZEP+iRShEiXiwpAIvOI\r\nlcIf2ihafhag2fkS4WvXh+T4MJYPCgv+1v8cpECF8u3+dXbajUXh3CWTwRYi\r\nx//86HHbCTCiblyLN4CO7/QbDPMtNj4/xG6KNBwwyJQ24GJxvGa1sKDAKLeC\r\nbjbDcajjxkC8PLpzr9Se8IvnHUS9VzVpnU/ete6GnjJ9E2n2f9zw2WO6fWaG\r\nimwOEffr3dIXN99RaVe/MhI+GRmii+R9zq6F4pNuS8pLabk/UsD4BoKmaReF\r\niUjHdFcS+JT39AeHdc2Fyitgf38WN3SFw4zk61bPRfg9GZcpQyaB146ZaQ5q\r\nmGjOEU88Mkl31G09IFTGy6/0SJZWO92Uxa16LS3tsJnkajHF2bJigl3iZCKi\r\n5+/uZNuUM620z82kSgnNy7meN1eUgZA+3qk=\r\n=4rG2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"0bb6fbfafac650c90514394ca9c8357ecc8d8d4d","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","echarts":"^5.3.3","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.11","@blockprotocol/graph":"0.0.16","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.8.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.27_1663255880407_0.2653565497356367","host":"s3://npm-registry-packages"}},"0.0.28":{"name":"mock-block-dock","version":"0.0.28","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.28","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"f1b175adb4a68752f5d9bca81194aed1e97d94f4","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.28.tgz","fileCount":232,"integrity":"sha512-spoDgqQSbGsa1vr+cFsGy5r1aqPBGMrVf1y6RWF2TM2F62HNC+E9X0N2viiFuWxvFlgnhV2tvHt2OLWlfRexUw==","signatures":[{"sig":"MEUCIQCoYT9lwY9Sb5dvIQBHAzY6qVy86jpE9A93nmYqrTQRJgIgDn0DikdcY/zm7G0868McydeaHsVK6l8Q3m+UTERuHug=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3430354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJFfNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoRQA/8Ca76YnZc0zrG3GiR7VycRFZtx8+kGHQo+KniYfDrmkdSW0X8\r\nQBpMtwY7N/jDpvrs0s4yfcEAwoGuWifzmTbVZR5hqdQA67FSjeRsTSh/x/DA\r\nmCM3e3aEqDluVOZqYsG/u9Fqwih5/fQ24+r487TuytXQZ9u+N6dJcR044Bo+\r\nWS/8Dt7D0ZtKAjb3xzLe2NFFsUJSuicFLKbYWlzgWiZBk5lrKYcKCzcCyVb5\r\nQvA4SQ6SkeZ4IqAvJGTzFGl3ZTq3DN1dKcILp060vGUZxjCuk3Xm6Kw/nwug\r\nVQnghHtrusyHeBBuiTGJxuIaiDa4btdRd6Ae7BDcXKy86MWQYLtkTiNr+Ult\r\nHrnMOh4fWDhi57LbMZrW8+qteSILJshGp32uMhluFxzopElNw/iurQrOTSPW\r\nh5RMdNC40aSLsiuTQcGZMeh3+Wi0HcFHs3JreHL+X+oCI8BRbhVlYTtB1Vo+\r\nxFxQT2IoQh1SirWOo5/W8VtsHlE6F/OI13QqpGZsYYj9FHQdJKIqbVsLWCjF\r\nAVfhEszaLLLymiQeYT6Y1ENoSin2KE6XMETw1dw/l6vi68b2n0dU7X2FNoDu\r\n+bw/aSNtE8CwPPg1LnG/jarLR+VTJt+JDhSd/PHCOXGNlydt0Z2bZhm/e4NC\r\ndJaBDQ5Lg81++Ags9A4VHKllQDDt6u4L0lw=\r\n=cEt2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"b1b1b02449964ff0a59d9d07fa577eebe5bedba6","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","echarts":"^5.3.3","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.11","@blockprotocol/graph":"0.0.16","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.8.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.28_1663326156824_0.9882928927939172","host":"s3://npm-registry-packages"}},"0.0.29":{"name":"mock-block-dock","version":"0.0.29","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.29","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"c61b8c40c79cd3a1b0962c118e5b37f4ec34d201","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.29.tgz","fileCount":232,"integrity":"sha512-tmbsy9W/RLW1NbcXkg7klmeMjGWHxObQ05Da94MQkvNmQ98GkjqguJoTnAz3cZIJd0QvLsV1HlTJsALxw+5/Ig==","signatures":[{"sig":"MEUCIB45RheAd7BJRHCQZ+uZKuO/ppShEFxTV4zfL+wQ0vuAAiEAmicW45bRFb0tL4YC+MuNTABQZ1Wpzk+hQxQ0z7SIa04=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3430436,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJHwwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoHIA/+LzNmc5+mTRSJX17pnojI9kbcng52HtJTEBgJ9RyCP4r9JNs/\r\nb5bPB41plqLXqUl2o5E/kKeAND8r8yLVQmVARWXtl+K9XqBD1DLQaoLorrA7\r\nFq+3fS8jGJPJDEoHGsdI+XLX4XjrHaHvr/g19XOP64jaXzcKe2VvEBWv0ho2\r\nTVrHd8JbbIVHhNzX0+4joqK0AnnfOsXXZ0noBkmWtvhgXNO1h5pIQuWrBmE7\r\no+huRd0NCnKGha8ScNpbJyKjzKPgDuUvdBZVbeDsP/yeCobDRmR1pdGouNn1\r\nU7y6NtWdZTOIrP4VPMyVHtCpH2m2iX/iS1l9tJzRp4SKF9vZ40CL4v5IJCZR\r\ndEmbdZBueYQ1acsurPtkDpjm5Nd6hoKXOuW7jh9c4DXPexoIt1nclRHJnWc7\r\ng3MrBATZV7vhQezYZ+4C8ejZPAebwSBuhle0AHSenWdlmXLnPAhRced7ArWl\r\nt3jDLERXhF8gndKUnxFQnzu21LqmHulKKS6UTPw58kulMMhpp95ICQAz9Gai\r\n8VA6jxqOEVKqCIBR6bievKmeq+3RdqJSiqcWoblUxF0Kprnp27U83uxzd+nb\r\nP1CPYsodDS9tzi952fS/aaju3DLwtbMKk6aXgG7H3rjbZEN793+i8Y6hnUH4\r\njUhVsUNB3624lIYqsiscR4ZpSp0v2efp5BE=\r\n=ECQw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"fd68947ac0872fffcd1968d750d0f79bd2f755e5","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","echarts":"^5.3.3","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.11","@blockprotocol/graph":"0.0.16","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.8.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.29_1663335472084_0.028140440322888205","host":"s3://npm-registry-packages"}},"0.0.30":{"name":"mock-block-dock","version":"0.0.30","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.30","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"a9a81fe12ce07c0d328252cb251e882b6490b0bc","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.30.tgz","fileCount":232,"integrity":"sha512-bURu6ntCB0w3PnegYpvZx2t4LPLVx/WRy9d4ogxUNGi4t/ZXsE0G5+pEKrzONEZ6SVRsO3H/SbcGnSt/yD1brQ==","signatures":[{"sig":"MEYCIQCjWM1F5ELzA0onGKDJdRYK4Uevjd43yZG4xXYOmwwvHwIhAOZNqZrAAJ0hvaNjy9a7sbzo1+aA0EWpl6ifxC33AbR2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3430300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKIZTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqEQxAAhKgCW1FbK0imVnbnbLO8Hpp+xckCMbq3GvS+p7GlhVdkb5YY\r\nt3BqWaDvNX1rSbidcZMTjHUoTdX7ora8/6EfrUAwXSDsO5aFtRn+/sqOavke\r\nz8fulqdB/XiS+Bo3verUSXqzdXf2iQdOWSsLRF2NB3ckUdVwuNNzdPO6XXP8\r\nMqHJ4KD74qfpsdS5bXutNt4TFQaMqxV9dderk3HbDDoksVV8ul841i+Ch1sQ\r\nt2Bj+AdWSFTQc9ALbknshl3CEsonpwza4Qy35BPNUfrDSiwpgesKQ16c8vyh\r\npd9Kg1dpod+uqGPGM4FxXPdZ99bPe3AzC0jzADQZ7CoDFcum4vv6ljMvSkJv\r\nV+eAS0eyjUfJeKIWsjPsbErp9J+jUfbXRypL9jlB6cFH3ATn+9Dnnri5xxjD\r\nNBTZ8XYLU2dMsBYNxKEdMSkcaSmuKJcOerrhLayJxS1z2kzzHHiG41X1GEVV\r\nLP3LZ76Xbpgz9wbeufbUuFX4nLpZ7r+81qzipFaDyfaNIvp2he4KoSNjVHmV\r\n+bEAF8MjPRJJjCSxdqDGg2yakhjeEgXYo9sVS14XoljxT7NtlK8Ses3Fzhop\r\nHui+6CrKMYpWQdZu59OfRcT0Jp9wh/RiIclZuMk2ZmGOtXvhPtUyyThnk9Q8\r\nS57PokhMx51U0FjpoPJmnf3qJvaWlYeomGo=\r\n=U5n9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"d1010271b039e3ec2209f4394b5b6d1726af8184","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","echarts":"^5.3.3","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/graph":"0.0.17","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.8.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.30_1663600211589_0.25408328677339753","host":"s3://npm-registry-packages"}},"0.0.31":{"name":"mock-block-dock","version":"0.0.31","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.31","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"5598cd7db10886498f5e8229d8fb13c9ebf7b327","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.31.tgz","fileCount":232,"integrity":"sha512-i+zUXkDdKRQZ7oXHE4Smvx6DRfq40ZAaokr3VdyS3Qi6BxWMTqK4XCyaAW6GcISRdHhWHN9GcfTZO9xs8mHtxw==","signatures":[{"sig":"MEYCIQCYaK9u5CzT5QHa2kebJ1hfBtud2S41n9GEB6m4Yq0LNgIhAIRs4aLV39vRs22Z7KSYOziRoapZcu4GFjl5SL6/YAwO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3429966,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKfw0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrI3g//c7+2A/aI9GkojdhqV3OeuO18szclo/B2aJvQJCN9aXflRh+g\r\nI0KaDrDc2bepnU+35edevRcbsPlMWtoKyCw8R+SoqCOH2wQDMbd2Y9E4Uxg/\r\ncOokUhRmdfXpb+xHKsR1y9dGKZMPJJrf4t+a8hhfMdHdDULUb7PTKldGeUX0\r\nCMF4y4Q4UsN4eOeEu+oUSxfNz3qF/1k17v1J2yuMZ9RclduzsWYTDzxjRTbr\r\nP5m2b96ekgXUxaj2bvc7AE/huxeuAETIlBzxfoZVo0bdS8GxYObossh69dtc\r\nmmY66EBEwjeMdMHjc0d5mwcPYPiHaZVUhaiEcfSnfkAgo+A6Z2o/wcPzM7gg\r\nxodu3sxlnjpgA+qTXo8oHdg7bAi21k5N9702+fOc1SqxoTQlaoWgOGEu0iUk\r\nOipnI1NFu1dlh0uwURM9Mw+g+zRfuKTEWdOq3osguR0OfY+OwqBw6qdY5qBe\r\nVZAXEiHLhRjaQ5y1YI0AGHw5pBYXhp71IhEOotf4kZvAv4BAdHtR4whhFGrO\r\nmPNOeDWAQ72nVbYGBuGb20ph0s8GiealuKQrPI2fBZmXkKq3H7Cfd96KMn0l\r\nKLl5DKXdBuWqV+oro7Spk61+TA2axOCAaWvISmP5PS+YyN1YW3aWVNiYoDtK\r\nliE7ecG0lN7aZuQEsGrySWidagG8DVzt/HM=\r\n=VFCb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"2a62a4e6495dcb324b9ce580992fc659553dbc3e","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","echarts":"^5.3.3","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.8.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.31_1663695923933_0.7994496926858903","host":"s3://npm-registry-packages"}},"0.0.32":{"name":"mock-block-dock","version":"0.0.32","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.32","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"76c232c95ec3b7b7ff33728029d450a457423b27","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.32.tgz","fileCount":232,"integrity":"sha512-k8eEGm5cG5i/iT/s3y5VmuVU+0GByUncQF+e/IwcoRVONfOhwP+ZaURrS0avV770RGd2GQT3wvnKQztxLWDzDA==","signatures":[{"sig":"MEYCIQCfZ23Q1/29MMnof4pyhGSlKLcJfd5kF92CT9GZA7wQPwIhAJsrC93mD7a7RYA5R7MKSZ6h0B3DjBa1lb3sOhPe1T08","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3430077,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKrZWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrI3Q//SeIp9RadU4LrbbVU2V9P3Qxx4Gx64K0jz+d9fi6B7Kq693uU\r\nOH6bk2vMh1bHQa7WFcSW+KpsUeRm+VPFJdIL2KGwoKELmwx1+PJV0sazXGSs\r\n51RMx2ooHjr2nXr4Fh71Iqzg+lWsYRYY8ansSww2/4B/HRK/hm1IECvTSD53\r\ndWD2OqT1/6zqvWaGwDdgdG1Qc8kERKkgvBOfhVuZnOef3FyP577xr18vT2E1\r\nIQanCD0KTQZPFTZkBauzYtQD/vukpC6K1xvCSStRCjSaWvd7lXNVe3UuhWVs\r\nUxoy9s5JkSLNQKNAcBmww57hwidbWNK88i/Bjokvxrh3cqyQnWz9dhBvQc2Y\r\n01t+48VxR+YixmGg+KbP4rbbT+NdDaYXXIyGpy5GV88/CdDVw+72ChTl6tDp\r\noA8OqY50IpS2/IGdAs2GkmTyj7wHJzWI36zXZ7pk/XiK/+a/+cg388ajv9RA\r\n/UYccGhjgDwGLFiXU9RZh8VS9XIDdzDylkIhpACAg9XMBtpft1FaPtWV9TQV\r\n7aoIIMAqoLRBLq4Z5QWJv2xcUe8xeqkb4DT29oerAJiy4q+SLYcKBtkbnMtE\r\n9YguiPzB19nR4r9s03yHBuqAXY6xyY3H4rErOFs90WE/9gCY4BVYftW3RsUD\r\ncsZGdbfpQ+Cah2p4P8igwjs8uJIH5kuoCqk=\r\n=WFEb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"063b383be87df342b53ebee171d70ed5979df585","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm && yarn copy-files","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","copy-files":"yarn copy-files:cjs && yarn copy-files:esm","copy-files:cjs":"copyfiles -u 1 ./src/assets/* dist/cjs/","copy-files:esm":"copyfiles -u 1 ./src/assets/* dist/esm/","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","echarts":"^5.3.3","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","css-loader":"^6.7.1","typescript":"4.8.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.32_1663743574036_0.5108972994322916","host":"s3://npm-registry-packages"}},"0.0.33":{"name":"mock-block-dock","version":"0.0.33","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.33","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"bcd5fcbc9b9a6e5823dea4d1bfb5d43e548a410f","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.33.tgz","fileCount":221,"integrity":"sha512-BGIg7oYdeZVP29YBmuNcLhghwjP/cSG4EpEktWQSwoXCwxwzFdkrm/1fDZD2Q7VxzMC+mDudXMZcljfGsf3HAw==","signatures":[{"sig":"MEUCIQDtLBGD5akvkxmJgre+oa1uADLbkwdF4VPn4jDyOD/tigIgFNF2jwjfgFlIR4TEnsERHIi9zb0QhNDWwXMnoOzTJ3o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":794550,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjSX+rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoGeQ/+N6IqJXH7joTuvELc2DjtDkAwapMnnBIuee4aBTyoOyFIziQ3\r\nb0xMCHJmKIbco4Fvt450dxqb/+goNaahncrVMA70B0a/Df7d7XkzMj/CoJeS\r\nRSOZdNOxOzxhwUJYW3Vw9YlK/Uo3nW6RG0H5A6qR0BQHaC5HT9VSWe9sygzx\r\nEU6bU/Zi1PsuHB2F5RYbJVSCPs9mkhvpYXXGeZ9VLswL8eQxf+ylXKf0yz+Q\r\nM8VLdGlJTZN0/vuUzDi8STtPr2ZMi1+JVpsWPkalIkVgTRYDa3MTLjnKV82b\r\ns2CNEGNytkk29VGkNyhB1Vi3xRadbjq6DoSWohAg8DU6HlDsMoCJiCisjPmw\r\nLJaWMlLaKBx3RMAM5Y0ijKAaZdlEurnBX/XevOcjLZn4srscEhyM7Y4aPYm6\r\nSwt1YSVIUm7ZBHEhw9ttNkT9wmnegjMtE0hv7UdEiSzBnlIc3xYX9jJ9TME1\r\naHq96ABPKvEJTrbS63f1foqmSix600onE2+c9RTt1+kJLnXfc9+7TYcRbp2X\r\n5s7Lx56HT7y+4m7qYsMXv6DYIwuoWlXm/t6te+E3P86rZKGikfiJgHelAOCs\r\nkUuVbFv8kG5WJO1mjX+SKik32xc2IkX60lRqL+PwnG7bqfdZCXEJ4cNWF8A8\r\nDCuE3UV9KWr7VDNkT9BgIhwSIM1dod6ZUxY=\r\n=JLFw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"902c74fe708940fdc5a0ee7c7fedf5b8f0b04ac3","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.1","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","echarts":"^5.3.3","styled-jsx":"5.0.7","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.24.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.2","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.33_1665761194985_0.3147722458963449","host":"s3://npm-registry-packages"}},"0.0.34":{"name":"mock-block-dock","version":"0.0.34","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.34","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"a8559e8010637a25cfa4bd3ec421e13cd92cd895","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.34.tgz","fileCount":257,"integrity":"sha512-qs1VDqO6GofPog4KzXZ1ZalBMeUsVIFReKivrtFwDTfMumxNRDbNa7rQLPkPz7L5Hwxw4L//y7+ovSHOza6KpQ==","signatures":[{"sig":"MEUCIFKUFCH+RiejN5sCskrkkSBG4ckylLg7fZ59AQCuAkTBAiEA4iMQSSpVybEqzbfohO1VKR/13K2/fnO4G1ntC8D1GwY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":861418,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUkdIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqjPw//Toz/Ge5guD+emzWLgnm2FGj7u04/9lU7zymfaVPOX45JxvrJ\r\n1WjEcxSpI3pTZhbTSlaw9LUG9EzvFmswzNI5x1OjwvPgMuI/c7bUzOwFe2/d\r\nB2kqJ20EoZHLCuoO3Wlp9sqHV33GV+18OZ9BjL+fgncsN6f6yes8f508kjj/\r\nVSKWHjuzLovVYa6TU2lU8bXvX+42n4OBhiFWfE0fZeizpfafLkB1r99neMlx\r\nzRnRRLNvbAqg2tehGrb5qen0EIu6WXXU3QAkdVi37aXVyM7Bzx/tXO2IA0cj\r\niTglq6cdnj+GoZ3HrX5gLIVZprAhTIlE8/N4qGdUWAZkEnM0sfWAPPJ9A4iM\r\nWi4Ao3n+oa9cKGodumiGpDA8nmmEugf/lhyDqIGvfy48LJ59aypoiBm9WsSZ\r\nniUcDzINnTL8w01Xt/IvdeYRzdit0iyEvw02n4ZhrATOM9zh/Y/IYphWpN5E\r\nHxFrh1ueWFSoF56lVc5UdTmFuDjDEG5F6dBVxI8QA0gOOMuUCHgbzyMaeM3M\r\nHe/Wu+q6NQeRpRD8HauYwySE2Z60+crbPJTw8UujFH3yrr5t4TCBNpK02yW2\r\nPugsTXcHos6O/+pwR8Au0YXxCO94Wt7DuB5PRAVGdI90b/ZjeLyT4gcrdjaN\r\nm+tBVV3XJpHNCuRIu6eqDze3WXnTs0/TpiQ=\r\n=wH11\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"e946c0e0e258a98dfdd17ded37ff5cf81d1417b5","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.1","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.7","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.25.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.34_1666336584069_0.8124941436598256","host":"s3://npm-registry-packages"}},"0.0.35":{"name":"mock-block-dock","version":"0.0.35","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.35","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"a6603551b618c96a11a73c61ce0aef6cb389fe47","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.35.tgz","fileCount":257,"integrity":"sha512-hZaIkeg3PAvFgssS39/a0Nz8lcTh2OvVrna9+IgaqdiDEgGqT0l5C9omEydKTKtkzF1IqMimD0SDc23oXoUceg==","signatures":[{"sig":"MEQCIBgLxfVISD7pS98URScgP28DIhJfjMWGj21paTMuH8qVAiAphteCwLfWt1orBZ5fsPkoMuSmGJ1TJAnYVe1KiRbyhQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":861880,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUmn7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrYMRAAixTk5QBcxAPRhUzCYC0ssxSnG0i8sYatS7csLAmq1lW04mx2\r\njJDN3l332/G8bTvjqHwvUmDTlkFZhOO6gz7b41rbB84O9zYFVr/VnS7CieRw\r\nGBuiofdyYhEF8/avipKJhLJrfNCDi1Ak/rPL1tvFGjbO+BS/5Qn+yNPA6iBA\r\nFJyMkMjqcLHqyoqWtNevrijxTN+iGvJofLuA/RsgDekNtqlJokfyWoGASKLU\r\nxii8sQ80eSQOIZ2q7934ySGuiZqyMTNvvibwarMaZHEn5WYahY/hFPYebRyz\r\nhtqhb8pBmcm1gUQehhRyLfhUMjn4+59GJXLwF1DxeHJVI9BlSdTOHazdqAAx\r\npW7RVQyuqy3o3jL7WfMuBUc+qfVbLoLFMGdgK1R6uPFs86ZDlOwYHowU5H58\r\nnTwZ83CVzCga8nzwkqp2cge0gFV0E7YAD4E9zJ8RI6y/67QPmtsyuBe+G4I0\r\nED8ivvysI0ubNOJu/68BYOVOreJN1Ecb4sPqv27+OHU3QWn8ceWe+b6HQ1/c\r\nl720K6LngBu3X6MImdypeb0s/h3nw7enfp3AZENK9OTKUJnqYB52yhFY5OHD\r\nrcj2uGULj2xYyLFlV3fb9qTvxoBaTsYTLUPNVwctE28fc/EmhOaANq8Qtl4z\r\nwZvQedZd4xne8GsJXdUqd4VNV/dxoP7Amr0=\r\n=Kx8I\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"66b1a24747005f46dd21d7de5826b53f18b3c462","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.1","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.7","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.25.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.35_1666345467537_0.30932771424907535","host":"s3://npm-registry-packages"}},"0.0.36-canary.0":{"name":"mock-block-dock","version":"0.0.36-canary.0","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.36-canary.0","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"1564cf185de096a2d46ed799c8390af6b9262fc5","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.36-canary.0.tgz","fileCount":255,"integrity":"sha512-/rW1NDQaFVkchYLMzPjQjkRpUHp58WZ3ySFDBj67RCccKlj3dBmzEBs6RQunaXo7wUT0JC/n1ZJTbzm4YwbMSw==","signatures":[{"sig":"MEYCIQDhMJ53ROaRP2nzWaHLlqDFwAOaschWrBy+zjCADgVw7gIhAPMMpCZ1BNDPuaVhSbgHSiN2fylqCnFAcIAK/GB/uxM5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":460364,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUvA7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoglg//TA9jedq4ey6x2YNMr8FtOGr7dRe+Oaf3EgVCvawl2SVxiOPP\r\nNKO/FK6NnYAWZZj0d9EV9hFQqEzTWyJ5yEf+KOfOY377lZTVZmhAsdQosmio\r\n8WtA9Rt9wWkN/fggKsXPLbYLVd6ab12jujOqFvrc0bru7oDaR4TP/b2zd4LZ\r\n/Qr92C+yLVMM8ZRo1v4GPVeaQ9Rrt/gwy62awdkjOvqJQjd3sDoboFLCDT2+\r\n6DTlM9TC/235iOARtH7ynCbUZTyXA6bQV1kYNlF9XNZauJKsOcqzbVjt7nV0\r\nWZ4nl4Szxdg1nqc5mQGhdS1H2HrFprTFEmJ6Wg4I1cQgzjmhWfvCbUpvN+fg\r\n61D8X+RIO8B2QzQm0z1ZTKrIiF/nW4/RWy1EcJKkBpvoGhGZMjmSWCLZzpaE\r\nldIZeIDCbvg3Z+iS6z4Hva1dBADxqSWQa8KUa83IMqfM4YDeU6nC2ThS/z9y\r\neiU/9cL5x/2wRtsVp1aFxgPziSwUPRVm8ryqm1ZCUMdWneAGlHLyjj8onVtl\r\ni+dyxJuWUUFeoxoziEGeYAkbtDXZQ1Q00W73vlZK1LyyKYv9ntos2V8E7kjE\r\nrBw1FL85NpkeLdVoKmMPd0L4MFgvLyX/WRFc/vt1XUoVipBGIwSAIo/QC5UR\r\ngi2Rdd8R56vqXfhFqZomSUDe8PGReiB5JQs=\r\n=HL3H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"ce3587aca9b536594c816f671b469cf82ec86b3a","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.7","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.25.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.36-canary.0_1666379834815_0.2092117048243447","host":"s3://npm-registry-packages"}},"0.0.36-canary.1":{"name":"mock-block-dock","version":"0.0.36-canary.1","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.36-canary.1","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"3762ff1265d6b575afb2a3768f543c6f4ef06d21","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.36-canary.1.tgz","fileCount":255,"integrity":"sha512-y2rI80rTK+jp0iZOWIFiE9t2puytJqYnPEeOLkwOIneJLu+RiCQZGV0Bk+xEOCfxvsrw78JvhrpKed3h7ZksLg==","signatures":[{"sig":"MEUCIQCNEPVsRmQV782yoikj/oFW+dwwwYTOqRZhm81dT9D01wIgFEwUN6Kb6SxrdqUz1udRNN4k/BcN9O/CxSxjOUoiQQ4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":460380,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVRMTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo++Q/+LQYQISV/c017SlHQA63B/4dinZ4f3MirCIUuWbFW2VvjM4+G\r\ntupRcPkN8h+wkxmHpxa/uAknOjlvCrVfgjLlGVrxnbJmELiQgMLxsfE9Xv/M\r\n/6vEX6ZnWatVyRMDMcdpNmvuTfKDRCEYWX7Gh98P9fRnSXoYB2LrvfIBOtEn\r\nFNJBEuXzlhcm/SWmtm+I1+jopaFSDu8QVc7VOIWv9dkcMKAZHJv+5Qg5QL2z\r\n8BBOjgDO8zH1/OIOLMw/0gN/PG8Hvi4lD+4iwro0FuN8aPF2Ac1JRpO7/eYc\r\nzGs9srN3BJD8EokeFq4VBDRmypyrlP5tGK38J5oWwZ2bkYvjvP4/wHYM/7tQ\r\npRBMBhLqiDnH7ETIGjsTBe/WsEcdVhfvjkAEJlJ9OUd014HH2zZ3NxTDY8QE\r\nxIyf9lgZROiNJJ0ZhIdXwUa8xXr45TQ17SPzOy/6r5olPMRAwhUFHywQQFGk\r\nzdy49BnPb+buOPwRIg6SAjgdI6KeN6jEE6uMuRgfK+Rz7xa79fXSOET4QqaM\r\n1pnyOg3RH/wdjwcBBK4X9M0qAe6fKSR9UVk9Jf7qQQ7ZCOvdb4JwkjUMQv7z\r\n692yMuwOny+nUR07hYXeNTp0aFyC0Lp0J12NwB0dm1U642uqxBoko4K50nx+\r\nwqJEh2kdysMnEHL6n8nlnuPUl+z4pL9jmw0=\r\n=5/qE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"ce3587aca9b536594c816f671b469cf82ec86b3a","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.7","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.25.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.36-canary.1_1666519827044_0.4101757831937367","host":"s3://npm-registry-packages"}},"0.0.36-canary.2":{"name":"mock-block-dock","version":"0.0.36-canary.2","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.36-canary.2","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"2ece268b1a753bbc6e5595ce0e35485bc20c03b4","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.36-canary.2.tgz","fileCount":255,"integrity":"sha512-Md+fz2HmS71W2goe8Ygj0nj+vXxr/IXWM5RkmToF9ERboJMIka2GSwFWYhDjs5gAOdumJ6l+eilvBdMyTFMZrQ==","signatures":[{"sig":"MEUCIQCewu+4A9Q8ZOHgUPPdmtple3G6lwHsvuCtVvOH+/Ft7QIgCmbd/jOXF0Oh3sgRaexvKW3H1JT4fZCKJsoEz1aNWGw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":460803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVRSCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmptYg/5ACnXBOBO1vHDRIksk1yqk0FW4eEA1qfV9gpJwuzgUfvVuwuy\r\n0WrtvB95trQHNdyLAE9/jt4F+i4WKekyf9FTBYMnDiz3aBNv8UEO/XyrFc3b\r\nCtu2N9pYN822Pd+L6X2RX5lQngsLOa+64zIGsJno+Ihx1Ou23OGeQDs52HqD\r\nvvAsGCVJlb1RP52zWcN1DwUMek3GD5XqXXCa8qL5rasxlFWErAyhP0ZzxdZs\r\n9cz8b3Z0h+4y424MNFl07Sv63AUopN6YKOYio/xX75pAjUVX4OBN9xSccESl\r\nJACFWuAYMspNE5W4CPfoITTyHSZLOqxyHhTsh13KQWPAhnUpaCblJYULVryO\r\nbGUV0di26uN1PtAFpE4wmhLwKeCPsIURiCLdFAj2WdAa+mwQv1GfHSjRNQgL\r\nWs7/AXeN1XwxLVqNv2xAm46NPlQBUAggjtF77MGFeqLPikACilPPZcWDKHLk\r\nl8ytp6X5UOXBYsd95xl7A1nggddP7wv31Hwe445YZxK4n5/YOLCn0IpMW2/c\r\n+y9CsZAJQKCoCayrIaMNmfQIhBXePZGv7OuYKfVTcHJFJuCtqijJ+DtqFQqi\r\nGGHRKFek/ssHrw62L1qLz5DKpkZfm5DmVfByixBbVZy+0aA5JX6fs6ZC4w1c\r\nZONT5+SykB3COGbF4UGs0JkDtcSp+O7AHeU=\r\n=BNNQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"ce3587aca9b536594c816f671b469cf82ec86b3a","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.7","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.25.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.36-canary.2_1666520193743_0.6802817342886869","host":"s3://npm-registry-packages"}},"0.0.36-canary.4":{"name":"mock-block-dock","version":"0.0.36-canary.4","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.36-canary.4","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"f665f04293e0b782167f5f6ca89cb74a9014e6d9","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.36-canary.4.tgz","fileCount":255,"integrity":"sha512-Y39QQYvMNun3HNJ2v8A0ISoDTxv1ruiy/vnhKV/0iTQfsaLktEHvuyn1/0jA0NOEwBgP369m8N9uiAtbOfJrIw==","signatures":[{"sig":"MEUCIQDRAyaGqGSqd4MQNsJPq8pvAA112wA9fiLZBoTEcBNThQIgYHsZYsLDuO52orfdCDNhYAtr1eZLWr0xeXltMwR9QKg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":462561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVRk1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqbew//cS0B3fnWVVV/bIdCET1np4Z0dr53kmMavY44tkuNRerjSCRm\r\nXV6VyRLFX15h1LNfQbEMa9xN8EPIROXLrFUa2vATTtPOMT2ycqMCPzNXx56y\r\nGtdVoE78hecGKDKk3dYTiFEjXDPpvRIjovshXD4YKwUYq2fOK252sn2deiHc\r\nxoO8MJVXuzY7zusZ7eg2LTjoAoQqLUPTL+ZdH7QJ6RJlTUvrv/AMCv+urzCV\r\nQrSbdceCI6ql+PxVsjXdAQ6t/M6zq5cCn91Gc7NQXkwjTtuapIW1JSOrorcC\r\n2eOCdsOYih1NAuaf8EwxTjvwEtZ08gI1kHwthNGRx8TO7KgLClNgIO4dcN3b\r\ntYD3joHupmQUVXEpl8PZeNIqO67ky2EVzsJJ5XP8cU7u4s74/hkNBxIAh1S/\r\nzr6k+E50Ds857t/NxRCQUi6xUmpCX7+aTf9VJ9AOcv+84NM0H7Hi++Y/cpHA\r\nC6JdNgCmjjyklKPWK3Z8XBIoj+aoshkjvrsvMBiK+OMU0D275DhIGz9zIE+A\r\ns3LbEutGPmLFSxNVEgbynRknGYjKBw8EXelW54s4L//80AIhe5t9oEit23E3\r\nmxLbclKkSGIchbrFAhxrMPSJOuwTpWVBn8OMYMaX05CHe4cO8I7VYrURCqYh\r\nOv0ly8RbfrTa6hdHGLHXUMIe7MEregCibKk=\r\n=JJ+x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"ce3587aca9b536594c816f671b469cf82ec86b3a","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.7","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.25.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.36-canary.4_1666521397679_0.06373993077715001","host":"s3://npm-registry-packages"}},"0.0.36-canary.5":{"name":"mock-block-dock","version":"0.0.36-canary.5","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.36-canary.5","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"4fa87b8d08a69bfa85729ba35e7e96d78be7e852","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.36-canary.5.tgz","fileCount":4,"integrity":"sha512-DEyzkMPXFxM9tqkgYO09C4ugQy/81KI4utsrKhcaQwcAbJPycVRMzNHeFafSIMlwrBPOpWXvBxoxAQkh+uptrg==","signatures":[{"sig":"MEQCICbOSNu4tpylJdigs2tZF0IFAx2O6Krjz3sMA9qTzewCAiBy5XgEMXqJ6gSSXwxHbZyS6fVZc94qhPwwEjNlPQF05g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8725,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVRsAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmow8BAAk5P4w+mJMxZc4dxKQkb8L4U/e9DCL5OvQSqg+2eJAg1YR2Fp\r\n9qtOA7Fi1A01gTvgAbvkuFJwAKbsoW3kM/xnZz0b14OXpJT/czG4svpLM1bm\r\nLgcFTWmrS4KN+YHDrpN5N29iMEddhIAkmY0tMFMd2zpWYqRc62LJcvvs1OWA\r\nLqTFEnAvOWrejc+PhJNwJQ1gVgzUImt2qdXL8xls/MNox7qPmMSGxfsKNT2I\r\nsp3PBYe+yrfEx2/7G204cCHtAfjaTAu3w1EMxOk5DUR+iLiEY5PxsrMszxz8\r\nh/kF4iX1GeDFbH0CjcmEHmASaXSmRECKLbJg6L0tbBbvzptwDPl8KrvCOM/n\r\nQJEQWrIjZOVbbfaruBaR0V1Cfj0UYwbBzw28gn9F5czrtauKI/+EXRT3P7Y9\r\no0njs0G3q1XGyclkNJ9HI7n+W4bmZnvG1qoIyO51m4ZCiMa3uaJd1KeKKycw\r\nFvHd3cJ2Zy+q2H4otBgfZQyOUyWKSpEu5YUhHI53aM8wDRDOBmCvq2L5tbji\r\ntYEJLNsljlY1sIrouDcy9JDSqKLRlZqKGC21WyTrUF58HIfEF70AcNUmum0d\r\nVr8uNh+TLWFXmj4acoaWe9t76H4/wkFKWqJyPFWArTJCDh4Dq06wNEOBpOb7\r\nVjKN4wNhUu32PBVcsrAXNQPhX9+/060mZD0=\r\n=rErk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"ce3587aca9b536594c816f671b469cf82ec86b3a","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.7","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.25.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.36-canary.5_1666521856056_0.2623198196214884","host":"s3://npm-registry-packages"}},"0.0.36":{"name":"mock-block-dock","version":"0.0.36","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.36","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"373b8e9bdb7a8dc101fc23ae8dbe457c30075ae4","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.36.tgz","fileCount":257,"integrity":"sha512-Ctmt1JC/1Fyib2W/dpJFUYyUPXyrrsVv/zjqAr8YSzMh1hJTp3zXFlSqnMMFOsLros9lggF32avHNZN89K5SxA==","signatures":[{"sig":"MEUCIDBqSpmgbzYXpYSxYGRAzYOfs7iRplDdZCqC9AXScwhbAiEAiYR9paqD+AEpcm8Hb5WZtR9glAbHg6PlRXnKUBhSPYE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":865687,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVncZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmozgA//c359ZshZRsb5gZ6UIyvpSwytDL8NU0DEudmQ83X/MmOs38uH\r\nypKUgDFAppKyw8tmceuEVmP8d345PNT3t9rM4O6Bp7+1CKTn8GIkil/Ghvl7\r\n+0tZqAynhxWkFL40AMQi0FEKAziiV9loizVptVFEFtaJKSvkdCjwT/OQjqeI\r\nzC2cbKUGS7VCzg61EDNxychZg4KbXCvt2cnkRvq/BgGSqMBWnoXET12LoSY3\r\noUvr5eYI+bT8/137UpWcuKprTZ0SLuJIlE+HRMbQh5vwPUjKKWqU0ADgLx9C\r\nVTRi3uuIU54PJuvquZ7I9nYUdn3Vuu271qK6uktsCy+WjgB1IdIjRMiOqtje\r\nnq8OFmrumu+qkO8ut35sk80g6HIeS/2VPZSWQd2kQbpQoJUicTnh8RJuMHn4\r\ncUPrg982kk0uQBeamZlF49Q+wg9WZ/LxPmIzZIb/6hdIbKPMMJ+vwT1cnoqy\r\nOLIFBGhEZ/FRXhz+bnxk0BV3eqD/9O6+DOCbGK/f7H7rb2flXeKQ1hHLA+y7\r\nlpjroo7LVs6fITVCWpBhYmisvEaYDO+M4h6bihZFBynfDuu7qlDcCyjcUsqd\r\nyK9L6YGxo/mlgfanbw3RhF+yNyVWHTgWXrY6M0b1BmINuNJ499Y5un7Hb73E\r\ngQllUrGvgTdHRM7HIRs+mw03QYun/vhGNVU=\r\n=w4ch\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"5b4ec346ed887e1a68ef5134c2050e214a842f94","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.1","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.7","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.25.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.36_1666610969293_0.10311351496689514","host":"s3://npm-registry-packages"}},"0.0.37-canary.0":{"name":"mock-block-dock","version":"0.0.37-canary.0","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.37-canary.0","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"5d1e5e60d7cc7ed39f2315e42eb3fb590b156b39","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.37-canary.0.tgz","fileCount":4,"integrity":"sha512-fIUca8Gb4L/aJjQBaksMqSRaCP6HXgfB4u5zcFyQuOG4cHgEDKLZ5/OVDC3weNRS9T/T1Sdc2d2A3itUlP9L4w==","signatures":[{"sig":"MEUCIQDF2O+ihnv7Vh80N9DeeBByKmsjnxeSMmnQR8YXx9ja4gIgZZRWhmcsvGLNpPMcpVkYi+QkzFGacCkPf6PKIO+SXaA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8725,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjV44tACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq4iA/7Bl7999zR7g6ZP8HsbKTMWT36l5db0T4cPX+eP5wvAdXez+Z4\r\no5Ba+UZB5sGoY1wlsHJzDt+/vVrqI+ogOQ8ctmhqJs4gy7I+nQl8uwGgrphO\r\ngiZDnxSSCuPLwSU37bzVjVD9ayM2RJtGrrWI/ngyJZ3Twk0il25wIv2Qc1JM\r\n2W4ukq4/yFG3ELcneuFkkIHHV7/Dp1C9nZT39horoqK3RvVztaCAC+sh1wUA\r\nfB8RzUBlsCiGA2Si8pAXFcGq16zWLEjkbSoloBk5cuqjltGmkcXmR+Zy2wg1\r\nPGNUb/6lR2fEBl+KeUoCPS6/P516e9OgU7X0OPpRWZ+gyxqZpC6ZH3Sh3omh\r\nPqX0cWrx+h5DwnCvUT32xT2HBfpc5FKHMnWAoYPvrHNMYkiUN2D0zb4iUJLR\r\n4C0ER1DaVkLsn3MlUowkm6lXTQJTJ+q+kHbrbG3JdwcB5jm/61z808M0lM6s\r\nVI/7LBBVzdielInhgxXT5Cq/HbtLT7ZRJ/Co4pdr9krv5Lc74tD8ar2Aepbm\r\nq7M4Qt7InqNlu+WDxixCy8EVRJBj9ApW8F9wErI3+shZyH3nCb6HOmGepyiY\r\nncc0XdPvsmo0Xmc5C6xGU0y2hUUjo0SkBaP44k4DYzVhg0Dm0OdrRUT9VYzt\r\nmzOOgPoWqt/DjbTOMTTn/g6mROkF3I5HoMQ=\r\n=9/Lf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"a86f3772cb0973602e224c1c1bebb18aaf1a3b3e","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.7","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.26.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.37-canary.0_1666682413011_0.40641876236239627","host":"s3://npm-registry-packages"}},"0.0.37-canary.1":{"name":"mock-block-dock","version":"0.0.37-canary.1","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.37-canary.1","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"19cdc4615df29814e2a30f9c5c02d65b7abac87d","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.37-canary.1.tgz","fileCount":255,"integrity":"sha512-+YXfZz9R3CsDNBw9zqTPoz9u48y1RbETy7rHnrU7VfsbpDzlWp4csaE7PJMDji0lYXi6ixFKqhDqBvFXypHxPQ==","signatures":[{"sig":"MEUCIEbz6o3qW0WT/Qjo8Et9qeT455SZvMsq0+dGEdyB/AOzAiEAmjlcGcoCvV3Iw/Z3vx8N/YEkpw1QBwyGjFL512dwNis=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":470113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjV4/jACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqfIg/5AYt1d4u9GRhY0KfI/lLZ3HCNYr3KX/tWStHuQJ1OHDX3k6AT\r\njDmi+t+qfLQfJ2jSxH7/Vw3r7lY1ejA7kIKg+JE9B1lKS3zaE5PYJFfjqmCP\r\n6XCp9qHRkmSG8YwEk8VxKU4MdrNqGueIeT8F456XryJosSNPQQxmpb6RW0PO\r\n/o2AjoJbFvDb/V3dyRJvxHIBrdb0gOkkU8zfVE5BjwOx4fD84TbQdxlTaC2e\r\nsZp7G1bv6OKhIoK/E5tQQGy9trNrdwVv7vYJBRaSrOJZWpngYMw7jmOGvsz9\r\nvgic8s0lm4k7iUH8MA2bPU2CfEfB9jfvbHgaG092aHA1SwtUH53+EhABZSpi\r\nFXH76W2OVf5Sx/dB/x/ZIBNTOi8RlQqLMAx4XKAaAgIPMW4hn2oOtXu8Xxz5\r\ntqbW1BC8rpRgV24t/pZFiJERrWMwJC9hFS9XBQ1QeYYJ9wyvCUlCts+LRQz2\r\n0EHtgdqU6B+k0T/zfG/alKSpoSUEUKK5YuMBu3N6qbuhOUiATFohcpnTS5GW\r\n5bSJ+cQGwsYQVHDyLpfhmiVI0u6X25Lo/w1l15DyTE48w0JpGkchaQ1blJ0T\r\ne/xBAWb9B5BkKBxbZB74KROjn2iY9YMJL+OKl3eO92au7yNfe/fR8p7AYAjQ\r\n4/VKargXN5d8HbUp61r5Tli3U1Dru+w6+Dc=\r\n=rrzM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"a86f3772cb0973602e224c1c1bebb18aaf1a3b3e","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.7","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.26.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.37-canary.1_1666682851081_0.6761093199190187","host":"s3://npm-registry-packages"}},"0.0.37-canary.2":{"name":"mock-block-dock","version":"0.0.37-canary.2","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.37-canary.2","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"97b9254decf82076627be2e4b4b58dac34327152","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.37-canary.2.tgz","fileCount":255,"integrity":"sha512-G6JuNVT+0xEKzYNF2+yg+e4s4JIOsPkMPkhT10/6pIuYsKYpDh3DdJVO54mOb5egGNC5Ae/uKBPwMqamOdbehA==","signatures":[{"sig":"MEQCIErXKcoeMFXLWKjH3atXItQSaVXUGMMc2daw+faDhw01AiBWcjn7f1t8URfeuUZzy61S0/HdnNcHDrN6Pqw4qHQNrQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":470309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjV5CeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqMdw/+OT2DS+9bTFV2q/4s1skDypc/zrDw77CVRUxRjA+AhvUPAq4D\r\nQl8X+aaM5tdz5mVJWBmcn8SYjzqLp1J52u3GQq8m+UU8tYeB0bCyGZfJZoO+\r\nUUvMq3P+y6GqgPCU3/07XoHVF+OydBPTAqeozej6ujGpt9DMtTLAT1ib71du\r\nDPZXb+Iiz8kb/UqYLHg/RBz9IV+wbwFKmS8PlR9YGuFtmtlmjMD2iqKaI5ta\r\nleaXcV/ScAZRnqlzGe8C7u4VJ+oidVr+oQZyWBoEhcMfIeyHPNsrL1/3zy0I\r\neyIBhpptrajPuk1/5/T90kFvM/NrfM+Kf1cHPGK9/Tqt5zd5bpNLT0mQhtZy\r\neYg8IDD18IS/lnMM3xgZ3+FZgyrFHCOvA/hiOQfO6jgy4Ae3pfkwKhESEZjE\r\nZbXwIVqFq8SlfjOM8KIFoQRcR1tgMUaIzVP58126mye9ME7/+6R54CXJH4mz\r\n5mffExPOy3u7WKKgSfzDkDlYbmEwS8S8upkHGTH9GjZ279n7UorFf2epdsSh\r\nl+S9ktSzbT9U03UeG4ouFsZz5BdgUFxQQyd90v/IXvF6QZchn4ZOqLtvZLFe\r\nW7WHBnHt7kVrHl3Efe1x7mbts0dgKmUN/ouvZ0TFc/ZH0ZJeQJ5Z6ljOJ83F\r\nV6vNIjlIiGsprSZqUbp85K3PqfbVetc3/5c=\r\n=z0VX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"a86f3772cb0973602e224c1c1bebb18aaf1a3b3e","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.7","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.26.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.37-canary.2_1666683037812_0.8494387372647791","host":"s3://npm-registry-packages"}},"0.0.37-canary.3":{"name":"mock-block-dock","version":"0.0.37-canary.3","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.37-canary.3","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"93aa95bc363564abdc923e73c175defa3c5057b1","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.37-canary.3.tgz","fileCount":255,"integrity":"sha512-rip1FcHTuziryJcIwRO3/dyzB1fDyHBgQlqztm18xMzBHqTlTfRlGTps3Lwi0FpFq4ZfcaBQfvzG6F0dHiN+IA==","signatures":[{"sig":"MEQCIDvZI7Bt4RzgxDH1T86YITtgWPpmKgSXr2zblOGGSbJmAiAYM+82oSxRt59U3pVXI2nv3404T4cpXp2oiNKtZxH99Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":470318,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjV5UoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrcJQ/+NGZ9SExhsF1+HpYvW4RCkjxionlzZ4X/qMW/aCWxyFH+h3ry\r\nTixLfnZPkiYt6YHpR7cTE8qycMg6HhLHOU9FruNjGaHxIhuFL8qSNbJJUgro\r\nVsRIlrHnd4vGlb1qUFEroPFNFUhmT9idMhy08BKvJ5KB7LbaErciPklqMG7g\r\nm2qCh2MY82qANgsHN5mv/8tJiv2ILC3/itZKopK8Q92ZlcUG1+xRcVwB1k/W\r\nNp2UV1ZtmP3hl4/ihgC+yM9bqBwJa8TMPYNyu7QeoELDR7xFju3m0KhwJHf/\r\nL/v8sMtUUl7zaagM2HVRvb+FSYBuw/040c8edmtPcXUnBQbtltFWY1Ie6Tjo\r\ndIg1E+h2s+oLcQmpWOf2fnWddBsoW98Wp4wdfrge7ff/XzyeU37KcyqLvpNM\r\nV1Xdix26PQQz5YLKqki0CqXubP+ACFBP8WCOLU7EZZzs/CBfID6vWfs1hEfj\r\n12SQkNABEFdmx5I32DLD1r87cL8ziLY67XfSBuOI4uaoDRJthA3aaj2mEvKb\r\nuxTNuWR/OXqSNt7fe3zqGg8i+yd4CWX2QEMQBjaY03zJ72D0zqpfrZolXnz/\r\nbDvuUO6A1kKIOlje+gBY7Y3eEEz4FPUcKj5ofFGvUe9EKsJv+c9oC9qHbXy4\r\nTnQr6Y257HLqdQlXe92PWHkG59Cw8MRfoA4=\r\n=3Bfr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"a86f3772cb0973602e224c1c1bebb18aaf1a3b3e","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.8-canary.0","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.26.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.37-canary.3_1666684200071_0.2050542139997844","host":"s3://npm-registry-packages"}},"0.0.37-canary.4":{"name":"mock-block-dock","version":"0.0.37-canary.4","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.37-canary.4","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"a344807d250a5a87b33a8463b664db67b3eb92cb","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.37-canary.4.tgz","fileCount":255,"integrity":"sha512-WL3zxUiZ0jNHPFKqT8wdoqMIzfeMUf98m55NEDqFd/r/IzLZ9HaoPDh87OIKDvWinU+jOSUW4X73qCAULeBFJg==","signatures":[{"sig":"MEUCIQDeBIwyKZ2m2cwRq8kVNzcYsCrv91lF2w2h+IobJyQjIwIgcVWmkNVhS38dd4CpurjkKbf5sNrcdI+51PGTPf2Fnmo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":470470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjV5i7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrWpw//ZHgRkRgL8IYDfBRi4fnwS/i/w/5Qr9pq8ZSnKf7AFb5eJPEu\r\nyMT7a+srFZQqb+b1S7Gj/krrWDPbZ2eyt6asZt5weHOWuq2nWxq7pHduDq+s\r\nBwb7/ZU2CNbQNHkAgHpwGqOC2b5uH2/ltI2gatPJgXxvFLmZyxkSlA/emsIH\r\nKSUrSzbwam2hJjdlQt/aSn/bRQvOeNsD2w+oHsxusv9QlgJWD3DuCaAzsCET\r\nsuYoU5XMmPl7v9Lm0g4mQRvZORbbJZ7Get/i7jKOY5PRvl5+rEX3yvjJ6q3B\r\nwiVGwgZkf9pHJhaxuYfDu2u8NuJZOPmGAsDwcQAWtjT3EtEVZPQR3gFFg5u1\r\n22/08jiazBApkpSa7sCwpppQp1naGIEursg6b9hAT99FkoQ4t2ZJz5qSrgp1\r\nwduRCUHhBPHfyNKrdnOA8QTMm5PajvTIJjVxnJESWtx2cNJyoRPG6jDhI8bl\r\nn6+CwNr4B0SYNYGcp59QzgKYp2gaY1sGi6LnNBarF4N+NqupB8W56oG6gCyT\r\niDcVxigifFvG0zvceI7dkgAdkawOMrcbPar+b2t+T55AgxmB12mRE/dn4uA3\r\nl1DscnVwocTE931DvO6wN7E4Pe4HwGi0aKa7csheMeM/yGeFbJ7lrOC7vbOr\r\nYRZbSHL5Vlw3Qm87OuagxvJWAwCR7pDj9x8=\r\n=ZSlp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"a86f3772cb0973602e224c1c1bebb18aaf1a3b3e","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.8-canary.0","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.2.5","react":"^18.2.0","eslint":"8.26.0","rimraf":"^3.0.2","core-js":"^3.21.1","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.17.6","typescript":"4.8.4","@babel/core":"^7.17.9","webpack-cli":"^4.9.2","babel-loader":"^8.2.4","concurrently":"^7.0.0","@babel/runtime":"^7.17.9","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.16.11","webpack-dev-server":"^4.8.1","@babel/preset-react":"^7.16.7","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.2","@babel/preset-typescript":"7.16.7","@babel/plugin-transform-runtime":"^7.17.0","@babel/plugin-proposal-class-properties":"^7.16.7"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.37-canary.4_1666685115432_0.9049117709003152","host":"s3://npm-registry-packages"}},"0.0.37":{"name":"mock-block-dock","version":"0.0.37","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.37","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"58cf42ad327f9f0f4fafb544120f3f197999747a","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.37.tgz","fileCount":257,"integrity":"sha512-UsjmhYbQtsQ8gqQj0ntRsBVl3JMfLYZiwUaNb6W9TGTi9RrCAfZFPF+ADADiUOyR3+cvb9t6ngYqBB++MSTU7A==","signatures":[{"sig":"MEUCIDaqOzyzyPn2rpu2DS4eCxwqbVjK9O8cmf5OVFAeA8jlAiEAn5wW+Tpn22qmQdIEXdX7mLtZNuxMk2vhAEsm21Z9R/k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":871894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjW+a7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBhA//f2mzZ/hf7n96yEQYqJtd7JUbGC7gOaSj48zKjhvuy/GuyguL\r\nR06MpURPfT+aNEu59C6Hf5wVJycjbg2YiENuq6DgLTWwu5PqmFkEK3HGvSdw\r\nyOJuL/E7zAhtXp1I7vLhIjK/EMtRMNsO39FzuAMO30R0vpyI0bQyGp9yAZLS\r\ne4CwOTyQHDJeyE3CwK+drj9IzQx9J9vUzr06a11QgOSqb+kNh9eAMkfnPoSG\r\ntgehOxs0YSDTS/pLkYb5E+TamwDbESiO5FrOmkS1vKu3HLelyBSKC8RMPNxK\r\nqsCROwOI9tLV1spWJYBiK+6EZu2Nejrkr8TC2TpPdmYVyaE5UUxOyC8TOhRs\r\nh/QEIXpCv4/ra6kklAUCBDeWtsjVr84Jd8VWOUYjSJg0RPACXJott8cyeQii\r\n3DEfBqEtvD5THQqP2COV+8qz7usFb0NMnfzVgw/p49f8jB99Vq/+qIehg634\r\nBViLnS8ukkE5cdBXiQYXGw2KpVBdux5XHOX3FmNHqnEANrXLk8I7CFkM7OmM\r\nfNo5P3oSSgOxZ+YP1hfamEWlY309M/oHmmq+BRoZ5zq3AuRhnFZ8FKNtq9Jg\r\nVYhdwD5zjoX5coMpGZK6fzcnDSQRUvomMaSqDfy6dqrVEv59NbTLqWRTCipJ\r\n81WiX2neAS/kALvHNeaaBkmLO31dPSx9mf8=\r\n=1L/d\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"506e303b5af237d849c262313361403760f6c0f8","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.1","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.8","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.0","react":"^18.2.0","eslint":"8.26.0","rimraf":"^3.0.2","core-js":"^3.26.0","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.19.3","typescript":"4.8.4","@babel/core":"^7.19.6","webpack-cli":"^4.10.0","babel-loader":"^8.2.5","concurrently":"^7.5.0","@babel/runtime":"^7.19.4","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.19.4","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.37_1666967227629_0.6566028917715747","host":"s3://npm-registry-packages"}},"0.0.38":{"name":"mock-block-dock","version":"0.0.38","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.38","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"4098499f02808011a77a98a5577be73007d2d1f4","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.38.tgz","fileCount":257,"integrity":"sha512-uLgUctVAz4lZpDwZA4iceSUTOh7GiQg+BePbDFbHSdEYyvx4az/gcqf1doo2vlybdgvSZ/6WgP7ClwgvdHLIyA==","signatures":[{"sig":"MEYCIQC03QMoTfO3lj/qGGsHosXyQ14/ieYu+w38JNsI5GmC2wIhAKdF4Y99c/CzMJ8A+HM9xmauL/qmyz12dqbUc0Z+e4BG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":872163,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjXAtWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUdw/+KSoCMAfeixX2AWWgloxJ1TIRuZ83JS141XCTjXP7JdaAhZn3\r\nz436GOGM1e9/jvQcgZWG758Ho7otUKhTtsC88jfiWcYa731hhekGETdp0f6P\r\nYY+e093KwvM4zI5dBk2M1A/Z2+HhZ8cnsW7g+G+CClLIjZm91RV+UQahrpTR\r\nPY6F9RETX1WNdeRDuBH0vj2nOvoHiZ6KxSjqCoM8xZnnGiAXTYGbcbJAXwD3\r\n4AIdzy+2baC6MsIPScBXDjxmRpnQ4IaK4PICdvH82F7GNMx41KPvcBtLtDpF\r\nZoM8zMevquMeY6F5Tu/kqPem7b0PKJnzL9pxeslg5f6oS2WiiOq+TRL0PhGJ\r\nfNDV1V6EGqusL8A4txNKR3e+muzIp7G6MCXex9nALTno6RGxyCyNj5UkQuHm\r\nrRb8U/xVyai6k2kyXes3XBMe7Q+hqtQQwSwWD9bzLQ+BNmKAns+VC4uqlJdV\r\n7fBOkg0qNRQ3hfRBb19X0UNTMjgJt+C/5smFcfKmzG8ygzJxNIkllf19Tu2f\r\nblgqCkFJ1Om95x4pj024JpD+VeDUbAVtDoOinzdnzYaycEDOWvD9updAKdJV\r\nXbbGVmRR2cWvmLQ36si3UuTudqaEm4Vy9trMKioCqy9cKLGP/Htrw76G9im7\r\nMyx5gJPTHLws78Osv6duFQNpu6HMhMNdBCY=\r\n=B+Sl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"f031bb8901246ba4fd2ded6b56a4ffc0049c54e2","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.15.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.17.1","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"5.0.7","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.8","@blockprotocol/graph":"0.0.18","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.0","react":"^18.2.0","eslint":"8.26.0","rimraf":"^3.0.2","core-js":"^3.26.0","process":"^0.11.10","webpack":"^5.74.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.19.3","typescript":"4.8.4","@babel/core":"^7.19.6","webpack-cli":"^4.10.0","babel-loader":"^8.2.5","concurrently":"^7.5.0","@babel/runtime":"^7.19.4","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.19.4","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.38_1666976597746_0.7200035634862239","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230111084611":{"name":"mock-block-dock","version":"0.1.0-canary-20230111084611","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230111084611","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"1b8654e372961a952d8eb1258768359fc258a2d0","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230111084611.tgz","fileCount":293,"integrity":"sha512-GnQTtav/UgeCS5xAIZ9qSKpNVowCCvlbQdkfPLPsqZnPhkFL9UTa+bA0PXKEityPaYdD4tEU7EcTaperGhBvhg==","signatures":[{"sig":"MEQCIEEInxqQdalN3K0ss5gWQRyj5KOEuHQTYWBBm+4wVjiaAiBnfW0lbyWGU751Rg2G9LixgOMIC3t31FGcqWLw8L1QJA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":953249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvngiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpAJw//XBlS+ZMuxKXU71SXpNG7vwqPTkubIzjS7Ifm+bd4i9Qt2xgy\r\n3A2BqMimPT5H229hrQYZc4LA//dBIn6Q/endOUd9YyouWKx8WVtUmVOQ+FbT\r\n5fojc6WwOP7wXIltTzf6VKobZASvzeJzuT9gOelTysLpgCG2RfWIWVvXf0u3\r\nveourbmZb47CWH9h3LmdO1K1eYtGwMfqttX+/4Nv7RUv8/Vq4kB9w90YPtv/\r\ndcZdnYP3bfH06R88O5Qzp1zx6Wce8RkSsMqjmR+oEzEHq4QbHJDpaaKKb4uN\r\nJlVu31NUEu+TNReNcOdSv6gEAfU2VDx8nFmIsqH22zwi2588Yk+fwKOun6pp\r\n0RDe77w6k2wFsibXqwn0MggGglNpOvjvkVPCKQ+q863cYE5Ao8dmfP+pOLTP\r\nmirgMrkjHmlP1qrUUUiQf3ANg/QiLhXsz5Tg73MagLJh4VWyfbpf8J/QrGIl\r\n/xc6R4k2+73At8gkYi1nA0TgnSOFVX6vYLMhkllvVwDc4wB1dpTXMKIsUZAf\r\n9LoqFGJvQFjRl+Ys5qLkgVJaTySjc/+CB07rO5UQfBcLrscLoxrM+Zj/fCYY\r\nIRP7TgTtScy1Sh1890riGsUvZSJxJ5d2Q8tAQQpvZKT5hUxwdw3UMHDpEY+W\r\nNIxWPyaUQk5oA8+fTlfryl+uhqYuLMns2xk=\r\n=X30/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"2debaf22d264e6be3a8e0c870fdec84cd49bf7ab","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.1.0-canary-20230111084611","@blockprotocol/graph":"0.1.0-canary-20230111084611","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.3-canary-20230111084611"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.28.0","rimraf":"^3.0.2","core-js":"^3.26.1","process":"^0.11.10","webpack":"^5.75.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.19.3","typescript":"4.9.3","@babel/core":"^7.20.5","webpack-cli":"^4.10.0","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230111084611_1673426978660_0.24772410777054255","host":"s3://npm-registry-packages"}},"0.0.39":{"name":"mock-block-dock","version":"0.0.39","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.39","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"9092e799743a8d6610f015b43d4b836bd74a6928","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.39.tgz","fileCount":257,"integrity":"sha512-M1PKtdAZVKnGzIjGb970U+xIJ/B3BAG3wRAJPj0n3JjiaQG3PRsx/JiN4SAD2xNKUAuIhRxKfBFNweoRakwg3w==","signatures":[{"sig":"MEUCIHnyfxOsQkbbMGxwi1crvVY1JdVPO2Lsb3X+uYCmIiBIAiEAg5PgWFgco9+qG+I+sNP/w6CDRF1GZST1hoGu9h5dHps=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":874206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyS25ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpR9Q//TQmOgLWB0X5BR2EwbQ3U1MbAlJ26F0UpnkhSfw213AwsAkjD\r\nkMKabqNxocaFWlI/NhhNlzcim6e5uZbMkDuW+km5Kk9ZA6p54jQM+1NIjJCF\r\nldBniqi3l9htjX6tI3S5U+oSA/0NOfWy4DTe7hak1zyHhJdiuD9zbSsxh8I+\r\n2ztx5WOPenF2b9jb7hbN3VQBVqkWNUebbSy6r2o7ZQT9guPSbuTw5W+hkOnC\r\njLwtVWQJhR/L0cKMDCXLYNfYgjmPvL947CF0FjJP/nfagOywR9agBf7BN1DY\r\nfhomTooisQ8qp0EPF91TiwrqDw4Ujxy+z0NkzI8LxtDVjCEqmf2wcmxrwRIa\r\nRhtBBxyLVJXXmVC9aZIOHZbBfaGRYGH6CudRg7KvogamSspB1ihQ0DNw25/i\r\n0QENtCW6RrxdgITQCo8PbfYMlyqDpUcq/x1GdAsVGT8Uq/UEx4ExQSN+93oi\r\nFvo+oN58YY9BEyXRN9KDg4e3qh6zSv+dqzTapW2ZYZC29hMWy/VHwrxx54Cu\r\n+QSMP3Hg+LBqvGlqUqZpIadcT4O40xLVyFumlr7yk9cMdoPUigLiIVumFz4T\r\n66zMDI14TiB/Ve+S1wmu++0qVCQs+dfni3pOkgTl0IjsEn8o8HAw7vWni1+N\r\nBP3Z0Z2LQanIy6n9GbGHLFYnaSDVZfSU12M=\r\n=BW93\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"82c816a292fe4b4928f8a8338345f869005acc76","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.13","@blockprotocol/hook":"0.0.9","@blockprotocol/graph":"0.0.19","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.31.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.39_1674128825739_0.9549926436046889","host":"s3://npm-registry-packages"}},"0.0.0-canary-20230119201228":{"name":"mock-block-dock","version":"0.0.0-canary-20230119201228","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.0-canary-20230119201228","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"5945c3a6adacf4f4f322289b41ee4c673f7fbb98","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.0-canary-20230119201228.tgz","fileCount":287,"integrity":"sha512-UFJfUzkbj/1MqAtN69zBxCL4/aHmHPQuJ5eFY0xIScLWZSLZl0SrfCKITRCgSKy1IDCaLgBNKhCl5r96XzxEyw==","signatures":[{"sig":"MEQCIGV1Pi2W5xuMwoHUSKA7VQCswous6IGBvgY62nwzkTyhAiB2l/PX1MllXQdK2piRed3ynls0halIHCl4kKLNy+1UwA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":930508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyaSFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrrQg//XU9S/0okpXQ6n9u7FjRdgobYueB++Pb6Xxaz+c+BiYgg2PvB\r\nuOGFwT6+ow6SIm12iWyOVjYNgTfDYUR4ts5REStebw7bTk1kOegCYr9X9teW\r\nIs/l4IyFjfMw97hJhwDBL/j+j7xIylO0sqtJ5ghfOBD7XonYs41V4Yl2cYMw\r\nsTRtpiICi7RoOToXkW0Lb6RswjhyK5oH6gqKEbS/Tvi7DO0NGemEISwY71a7\r\n3fJUgEEibGPfdqAmhhlk24XUVivQL4oK2bjB8c5LWaD8YjK3T7xKGjF9Y6rn\r\nImagtYyQRou7kdpxKljj18nhTIWNtR8qpOaDYtzuhRqriXs31EUO9MuRexA/\r\nQfxiBPhMUZC4VdzPgRCe9ot+YyBrDb1U8Nq8AJqGQGEPwjA/kZYg8AQ0pZyR\r\n8mP9e5bbwbQm1Yy/SG7B06KxP/qTILA4VPAoQVCJFR3l3hC15qAs6Z39ORei\r\nlWhKjJvkwTYzXAFsZUSUR28dpa6xRqNk1LEYPU9Cdoq46yew9DxvY2J0Y5OR\r\nrAXdDBLeyCpbZnZDVy9tckzDa7ZvfoFKrC8CWJ7onJnozF2eg/N3uwdc/s/M\r\njBr+8OmdJuNgsRhFK3EyC3L1d7f5YbwVlQsUfFCVb3runo2DSY7389BOAy+G\r\ntMDggQgAtmGmwrk6IZAd572V31CxxmGc1vg=\r\n=4Ifm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"e10121409008e007e0ed68cb632f78882c747c89","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"packages/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.12","@blockprotocol/hook":"0.0.0-canary-20230119201228","@blockprotocol/graph":"0.0.0-canary-20230119201228","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.0-canary-20230119201228"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.28.0","rimraf":"^3.0.2","core-js":"^3.26.1","process":"^0.11.10","webpack":"^5.75.0","copyfiles":"^2.4.1","cross-env":"^7.0.3","react-dom":"^18.2.0","@babel/cli":"^7.19.3","typescript":"4.9.3","@babel/core":"^7.20.5","webpack-cli":"^4.10.0","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.0-canary-20230119201228_1674159237457_0.3898927137856263","host":"s3://npm-registry-packages"}},"0.1.0-20230124234232":{"name":"mock-block-dock","version":"0.1.0-20230124234232","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-20230124234232","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"c44884aca1ebdfac81f77a91fa5ccda7edff8baf","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-20230124234232.tgz","fileCount":287,"integrity":"sha512-LlRPVaayYzdHFYKl35DwnHlWkhmuYaxZi3GmuGKXG2XWECGXM8OeL2qBA/x5sKxvzegZD3jbGEIWAuQVZPxWgQ==","signatures":[{"sig":"MEYCIQCI5JlfhYpmsUG8dKiqfBh8nAv/clipINlicI2Kvbjd6wIhAMjdmj2uZsn8Sm+Ad0+AWGLjdPW4zYlcXB0cv1QEYC5u","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":930299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0G1bACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqf2A/8Dyc1HgJ6L6PjqM1rITXnNmS2Ds857u51Qdu/UCmaFHMUXDVe\r\nowcoZhFaraIHxZ4jVt6RqrtIPCBqspRf1RlRee8I40GVRISW4ANpc3hZQlY8\r\nxfeDI2XcURi5Qmg/JZEKYayh/fQRdtXOEsAJS8UbkPhppWDQYCgamwhSu2Uw\r\nm0hVvrQSHeF+t54tujr9rWHpr+WlulMmIvqnw0A3KftdxUElQBkCyS9Kk5BU\r\nJA6ywfaIBdeV6T8drQKaW9pXSQMrbTlBlG80dPcNy9hg23h7T8NoJN0L4tp7\r\nPhBIrXVK2IgkZS3xJmjlfi6gs7qFh35+caGZVnnVnlWSFSkx4NBNEkS9TPet\r\nyPMbw2Qwp99D2y07GI71KOaO6Jw2fPTU3e6v03ma6b2wMBnLHQLEDmGqHwjT\r\nlrue4pIFCHlpV/svXhdAjpzSynt8CVU7pUTe9WeZbj9NglF4IadAoURPUSVz\r\nGjew3kkeEB0RM7Jt/ASA7E9y96NmQ94dfo65S8NmPKhwRu7TYTvijjXd7ZnQ\r\n8FevxtdlhWXjBmyhS6Ep3LEpPKX+l2iI40HWa9TgMeLiHn5hLHyGr0GVypxq\r\nJcvtcFkeqZBf1xZgwZJSJkVNcovlHLeuZQ6M767LKXaEZIUEw1Zo3hiwNUUI\r\n03eodRW/Q2Xq/4vLjXXXl8zHP++kudFqno8=\r\n=lqqA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"ef7ec728d51b5a15cea51d3ed03b764dadb20c59","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.13","@blockprotocol/hook":"0.1.0-20230124234232","@blockprotocol/graph":"0.1.0-20230124234232","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-20230124234232"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.31.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-20230124234232_1674603867462_0.6557495621081373","host":"s3://npm-registry-packages"}},"0.1.0-20230127104746":{"name":"mock-block-dock","version":"0.1.0-20230127104746","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-20230127104746","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"da452ddee5e9293a190147887f11bf9a631eca13","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-20230127104746.tgz","fileCount":287,"integrity":"sha512-tyR4CYezz+rDK8I63MdeJwAk8G2lslVivVQj6s1yV+3lVQl1SyALATdJFM4rg1zHvD5oE8qtbo67ztyYvnICUw==","signatures":[{"sig":"MEUCIQCiaScsfBdaD/b9ZLWY4fSflDQqATlmG4tvedj39tqv0wIgesnr4Of5y0G8tjCZYBxvPH5lW2c/+cSTB7bCCyiyAr0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":930363,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj06xEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5TQ//cXEnhaPao5wO+7cPZn2+K+61AJ4dMdu2pfW8KjXpaLPX1OQw\r\nYqUv2zZmnkpS4rIrek4N1382qjF8k6wer+H80u+grs0wFzTpJgjMNoWzbJEG\r\ni+XRqR26WwMpIjToeVW7PzTtOifVhDt9UlZqUQOviVN0eqPkC/5bzabJXaAN\r\ntvL42olTYVSFsN7zHosOJuoTz91mZGHoieLpPXifCVCefL+Xs9UM95NcVHXY\r\nOavaBwbzY2vorFtcbr9TcoM6CZE607alN/fFnWb6wpvG9A3ZCKEZjXQlv9il\r\n9+wi5tDOa3yOameQNdFL9qF3W1fQCdvDp4NwDD1BAEhnAm/YtJR31ZujhSx8\r\nukFbThDV3eqRirIty6fqE14KdG8q3zHzb2TOTlYcNhS/lyjp06ioTWMLOU8E\r\nWkCZC9iHnMfGntjvpkQ3gxZDIj9VyS4bfLGHpic22QMuIpmJ4hco2qeLJK7y\r\njDHiojsYfgYdRz3ru1RHzm3jSc2Ck5mNSfNKokHSGsKlaGuJjh+A49DvmcNu\r\n0V7vUiENFSBd1SsqkLHJ5QmhkSS07efMbEqUZI0ljSvIMUDQPPMZZakpVrCb\r\nsEUcB+7fYgNjcYJlx1Lbt3ZilDkXpL2GZHQeKOetIey53Ymnko4hZHg9duBH\r\nGWbs/KWDe5FAneDUyHGZkf7tbA/e7sM/ncQ=\r\n=OSSb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"8e66853253f6f88be92b0696c2ab4cdf301c8481","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.13","@blockprotocol/hook":"0.1.0-20230127104746","@blockprotocol/graph":"0.1.0-20230127104746","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-20230127104746"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.31.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-20230127104746_1674816580193_0.38076945884625446","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230130231944":{"name":"mock-block-dock","version":"0.1.0-canary-20230130231944","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230130231944","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"8d7c76b0512b770bd3723223267059d8faacde4a","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230130231944.tgz","fileCount":287,"integrity":"sha512-m/anlU1g1Ni6bcpKPNxUEvYn/gPDonh3HxFB+/PzyLntNylhp+viiruNs/dHOa5d1KcBbgBPf+XmcsWNQBRxEg==","signatures":[{"sig":"MEUCIF/QvpPzgcOn2/oDSw681mjzAbiSIo8ZM1VYSCxQ8hzlAiEA5dwQ5gA7SW7Gu8h6WsRWhnKsOtv/Z1f0JDs3wtG+gbs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":930407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2FCeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo1bxAAkPt5iJ10H2MiSTGUdO1loKDdllZAKTk4E2p4Kb5Pz3MasXzf\r\n17lr6pg9p5Ed1QjScvGW0k8ld6xHjrbAFtrkIo4vXmBpTYo/lZvFEGvlHutl\r\nsG5likuow3fIdFAQJPkkPL3rqtj3eaUmk2lx1C/rfiP+o8mbo19Q7CiDMbgf\r\nr19tH+ocgDefyYPiljBAHOoxcPV1RQK2RHJ7sNhj3ZSYMm9YmYqiKldJSf5F\r\nK2uSqD5jwW16IdwonP5YPG6dKlgu50vtGuUTy6e6ZYjRHMmTyA7qCtTfGNKt\r\nbEHOBYUHJ4WCzuT8lDl07KwaY+8Y7mUEIDxaNU72FNfV7AbdI/FHXgqgKMLL\r\nMtwMlwneVp5if1XNsB3TbB4Tt1l1y/6h3CProbT+X3zG0yxanvbKiB64OFGd\r\nBbQDms8yJIH9y+Fk/SQE3FNQeN7BCjCF9zfN2unVXD9N+Btxhd5U2CSp2xWR\r\nOBAJg/p3Gx+aC3GjCWgkcpvcYYpZL42C92QBHLaBhDuauAxoqeU2pENBAUDp\r\nCYTgeu3wjW4zCJ6F3RnBERmdRuvuGrvxzf2C4TsSxHrNAS5cFnpddRbZBzz5\r\nFDp02AAJ4hgm8PGGacqFwYl7o9e8eeVcq6OFfL+riF3dfRQXOV3hY4FNY3t/\r\n07F2F9O/tLnlc4t44+bRGiVDPeTIcQW3ScU=\r\n=i4Yq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"39e6b92cfe53957dc8640a147514d56fee8f3515","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.13","@blockprotocol/hook":"0.1.0-canary-20230130231944","@blockprotocol/graph":"0.1.0-canary-20230130231944","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230130231944"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230130231944_1675120797812_0.12471855126989073","host":"s3://npm-registry-packages"}},"0.0.40-canary-20230131114622":{"name":"mock-block-dock","version":"0.0.40-canary-20230131114622","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.40-canary-20230131114622","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"688a59ad839ab53b483e732da634caf6f52108dd","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.40-canary-20230131114622.tgz","fileCount":11,"integrity":"sha512-Qg7dBxDVUgv7Y+hMiY2HEpD9DpRj/Tm0KwGfsgvUBDn5WhXiayPJ2eW3q+kTg9osp8/4OFIAMFHTMgjdO9F9Bw==","signatures":[{"sig":"MEQCICO/J8Hm98wXHSq9OpGMPmGIm3TFxEmu0FZY+8sDL1ceAiACnkSdQsGBbrhpmgdSwWDKJWq3E+n5YQP39lkyvc43rg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14628134,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2P/nACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5vxAAkhZhhWCRS2EdXZuP0r8rhao5sHKWT874gN+Q756HbnMQCb4+\r\nUn0tcVF9Dd57a2jrRV6HB67bYoW0qieEZrR4o3cHCjMcNpbcKiTZw6T12vVF\r\nNU3mg7ga/j493wYT2cy8H5fQfyLUF/Qpk3WrO69Nm1li9etdLCCgM73tmf8Z\r\ny/tGoCew5qqkuU/Dm4b2lKaSGMCPUPM8IjAVl7Ok/URLul6tXpQWFMPLsSSx\r\nyUWRtgpmMdYCA4gw7XAwEhIuMFC9+gI843xDnf1xjr8VPQ46TYDYS8aSfqKF\r\nHxysYNzEHZOHz0+6gV+J31ge8KTflDUXcHL8/uPZdugei7BYEgaUGfZZMd+D\r\n6A4Lm67iOSFV+JXQz9G6/r+e3nSl/V5JwiZnSTh/IMsB8eH16N5ZSOLy2M0I\r\nB+B+3FJGb7cNoRLAPgPzVH/8AksdQXyg/YEIFjd5a/CtiunOLgKpest6chDO\r\n51r+qB8dcxD6ejfp8UevmHcYlpMfoTTSeSHhUDb9wYwe/3sJsmzUAU5sLpCg\r\nqMbet1N3DD0gLpvbnRoAMXb5Ktdz5Yk5Qw7LSMTKGbGHQDLjPPgkopZ7rrE0\r\nB8foTjhmYhFilzQ8phmGvyPOHhgXIRLpfQmOWOaStus0SkbrT24ZXy5tKBsn\r\nBFJYpIkZ81S3VBGfHakMpMAWPAD3M4YkDpM=\r\n=p35E\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"3bc5a42905929e62c8f4083978cee58050a955b3","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"nathggns","email":"nat@nath.is"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.1","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.9.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230131114622","@blockprotocol/hook":"0.0.10-canary-20230131114622","@blockprotocol/graph":"0.0.20-canary-20230131114622","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.40-canary-20230131114622_1675165671618_0.17820968695659678","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230206110959":{"name":"mock-block-dock","version":"0.1.0-canary-20230206110959","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230206110959","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"f39ff8cd39bad4b6df722b2f0ddb26a8925d7bbc","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230206110959.tgz","fileCount":287,"integrity":"sha512-26HxsBCWCeIX1z4Q+gpS/CYMXT83MMmeAGt/6avEwtfuIktwmU1EId4wISYQ/P9xlkZqjUVcWlMTfmTIXWJ3lA==","signatures":[{"sig":"MEYCIQCFWjNIguqi9re5c4MdywtxIIdVWefHvRHY1Rycyr14lAIhAOf+uvAG38QWX6njDwd6vnrUbACm8AoPVg0nBcACEMQh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":930407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4OAYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxJg/+MzjPy7gQoBIqyVBLif+KnUCpVc5ZJKs6lpqfGLvn0rVQ9juv\r\nYqBwsMVTf3N2kukysWBXNDVj/YblddgYKWWQILLTDwF6EXcmDw1qPpJH14qX\r\nRoyGtoDTtU+kYvQtFjk/qRmVamQQGBV1P4Jnc5VlG0RFKLaXtoj7kPmjuuDu\r\nn9HRqE17DUdq996CqX1Xj29TSxxYVJtCr3L+VMUG34xnhCshE3mpyTp5KBd0\r\nG9/+ofzbz1/c7Gr0BnAd5eo6hZGEcFMuUlKRRQi2kM5ut/lEyPhp4MZhAwAs\r\nNQkfM4j+cZCN84SYHkZ1IJzRh7nsK7uJbYiKYJbR8yhmxuAodCWjLLZQiERe\r\nMWU+lrF+5fxFO/2KSY5G1FK1DD5WJDKxi+LUXxebFJL9gHpmhirA1H9keJ+5\r\nsNQyVEDOLgz+4L+RvHJ1TJ3XLaT9G7mpMOaCQHpsS6c7mHwGKLdHAls86FlK\r\niGCqNrdNtcyZZnNqtRhpDWsK2istDZdk90zIEB4q8/3MBL1DBGN3F0dldzzZ\r\nMS6AmnauI2vhyImphyLO1frmA6+t0sX0TxUTBZt5j/+C/hb1/YeXN+iZZGXy\r\nKNT+k+gS8vvUCppMkTYuonh7Hfj+2a1NPSOY8HGGvAHEhxT05loYjE9eTw1l\r\nFwPNMWl7eDxiZottcYfUSkWgrimyJemWqr0=\r\n=Si/V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"b75c3c37312bf77c05e3f4ed1f9e67c3d030bb51","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.13","@blockprotocol/hook":"0.1.0-canary-20230206110959","@blockprotocol/graph":"0.1.0-canary-20230206110959","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230206110959"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230206110959_1675681815878_0.06319335981708551","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230207085507":{"name":"mock-block-dock","version":"0.1.0-canary-20230207085507","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230207085507","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"cc8c37d343b80aa4a8ec01d87549c69d3e28ece9","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230207085507.tgz","fileCount":305,"integrity":"sha512-4Wun5xqfwNY7rHKcSy3+BGJUF5hfwcZCRRWmEZwKFtmvrCdRhvqYnmLGagVYugAY3ZX80B0JcDLccOIT/mOuHA==","signatures":[{"sig":"MEUCIFwyS+x1a5qr7HxDgX1BuhFwFpvnVT2+rvGP+mWES2RZAiEAztnYb6CR9eanHWRlJs9teySTVhL/GOy0F9KaAa1Da2o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":990393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4hH9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+5A/8Cx2ZcSiqlm9zZ7K6DwlCQPYZu+Lugs5N9UeaLOGubxhRS1Md\r\nvXwf9ItIxSo3LR94i21PSWlrWyfbkc+9bL/mvAIrkvc5bJ0cR8o82PbDm5Yr\r\nDmsWqQCFmxc59GBcIwx4LzJqDBOWSUkv+ey6BcIwb0cUJ6S8tMuw2fr3xWrG\r\ni6QTWVyIEQ8D5GvZ6fpRk2CG1y31Q3nXo8qnBOE71cC6D6vSagea/NUBPnvV\r\npyPrQHZVJ0CPWd5kNvbW4rOthrmXtOMk05wZyjjVur8CRqSgWOHlvOfsuuK9\r\n3ASbg6de8Y5TRlOWRn7BEe5b4Z557mQrVofzwUvXMFk43KKjuelrVeznIuoT\r\n8QMlUd3CJDDvEHKptk2KNtFamE7fnMZNd8IQu7sO6t/8M/nyvxOH2O7nLtVf\r\n3Cd5BS+dV5MbCIXOeDffik/UDiKnQR+OEQvVesDmyn18Nt3MUGKsd5XcqNDD\r\n1697soasZ/CnU+GEIFMLGAN4oUCuxB9dt8822tSxrPGAvxUUdgwVsS1XISbJ\r\nL+V4EUxHSW1VhnlagaVu8C1m1qvlyyDTvkY6uOCQt+m8KmK955CdvaCtTK7W\r\nNm/RpHGdyN8nFKRoiSrAXHrR8/kgyqkE4ykmtDftOiJbOMYTuVOOREIegqkF\r\nI+1lDdVLLL4i7s7W6E6LwvCLfkDAsrwhhXM=\r\n=LBYN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"88767f21a019ad9c0ddae873694c54e8f9a96ebd","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230207085507","@blockprotocol/hook":"0.1.0-canary-20230207085507","@blockprotocol/graph":"0.1.0-canary-20230207085507","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230207085507"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230207085507_1675760124824_0.6779442747300886","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230208150010":{"name":"mock-block-dock","version":"0.1.0-canary-20230208150010","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230208150010","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"bdc2b3ba113421cda179233829be082b511e4567","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230208150010.tgz","fileCount":305,"integrity":"sha512-zerVuqTe2iP488bFfVoofNICIQuDEHvYQIZOa4cH2YyL6oxTUXbndsuQxEhjXoO0CXoiqrGkNSgkSBzty3y/KQ==","signatures":[{"sig":"MEQCIEfg73xgzqtxBbspMDQsftzf1j3B30SDOuGlAKEoJobTAiByGf9N9oExaZg7TE3WLswxnQBn5XJdhBOpwfF72qFKqA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":990586,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj47kIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmojGA/+KbLVLu1+Ufm6AhzjyKyYBphysiwwGJXvt9qrLs5kdzdfdNQd\r\nVC+M70fa0fpnj0+fplLNw8eBONFYRW4EZrIDSlIWqtNm9dZddNGwmGUb2plh\r\nW6xnSeIp4y/M6dnv0pUE/GL81/OjDyWsniyNtMkZS5OYqs1LTG+Ao8kz6yTe\r\n7cJRr1v/EeOh2edx8KprcPvSJ0kIsy91yu1t7en0Slb1s5xqv9Jd3WjImkic\r\n9T/nbTFw5871AmAFSZiFcERHenhl4s4RxOv3ZtdHg99kA/ir2HeC6DIQrdBt\r\nV2oN0ydxolfU4G4xAIKyI028FIg6C2eqs8+9qjTz5REqJ+o8tctCcu257h6X\r\nJ2U4iT9Goa+PuAG50BbVpR5E6FoIi1wCpS1xaxlJGM9zLV9sqagN503q+fPy\r\nJ4rLmIkCAuVTxtZSWKmQeKegIkbrc0ce4YzP1gFgUvMuhvs9di70JLerwElM\r\ndKSQ2Leq2Fr+x9x0gitxumCzsHBnkfeswQ75y8ABsnJRK7IsO8M71ftjNK3p\r\nWW/IBYmiqqTcOO7z42nBTvkqfmXIdZ1rPIZkCDGTpw3LypudM8mVB9oafs4v\r\ngyn0Wm+C0cTGI/m3EDe/pNZxFue/iYiaDR2MoClZAyyu/wrfQgN67ZYe3bcN\r\nsFWk3l7EcoWKwb2qapPJ1A6hTpr0Vr2cSKo=\r\n=aLez\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"3124560885d07295b1c831919dd3f7c31c563500","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","mime-types":"^2.1.35","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230208150010","@blockprotocol/hook":"0.1.0-canary-20230208150010","@blockprotocol/graph":"0.1.0-canary-20230208150010","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230208150010"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","@types/mime-types":"^2.1.1","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230208150010_1675868424364_0.43946842620670656","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230208173733":{"name":"mock-block-dock","version":"0.1.0-canary-20230208173733","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230208173733","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"69c36eda760629bb533d0fa25c3f760c295f522c","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230208173733.tgz","fileCount":305,"integrity":"sha512-tZUbS18vqOy4ade0Cx9LYhJ2v+O4HJiTRy2zvJJjwDXOekUTUn8OJPZQjEEUj6vJYklhJh5i1Nvdps5O6oFcYQ==","signatures":[{"sig":"MEQCIEvd8SdsWr2q4taiIPHM278e6XjRHpMGDhVuKx78ioUvAiBM633pT30yq2lEqnch0E1OE58cppBSkBX6QOPIVkpt5Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":997212,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj493tACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmouEQ/8C2HtSWzp6Tiv65dCn58r5BUF07eseS+rrXysXA4ZFWMmlmvA\r\n9K6AWmw5zmEjaKx2U7CoJw7tAtLndmhxC3NjgouubycoxGWlfueHHnGNoebP\r\nL4X4YAhneZm3BGODwq06UcdIkY8CS/thEb7x9YGcypHsBIP/2yj0bK9rQhKT\r\nO8Pp+KWLmduUnCdAuURaHHvYDyBfSHKghzWKSZ0XyEzZ0koqVeBjDYABxnzv\r\nPd7cK/Emt0FrXhoYPsh5DhkfQrb0g032KOt7iEy5IiklGca/y3fOV66eojcg\r\nHJcakh4U2uqDIuBM5XXMcgNEMypTQFHUFzKrmJ7Mktl1Z3oG7jNoa7UJnmEK\r\n3NuKKAZumcEvuEfnLG5Hm7JWS8WQgJSa8Gmry7HBaBFwI8TJRiWBK394oXSt\r\nqNZWitaZ8qXrCoW1ufbLT8FG4w2joensj5GcFV1q9n3nE7HaIQUzq67c7JgJ\r\nVxpkRTBgVDGp9RudNaxaZHZj2BfKrb+p/co2aCRD6LTHLujoWjDp7dMyeKZx\r\nAsgvKRaZyRw35/EcS623rIrOWdTsuwpcbEE4HDvzsXSd8VPzrrmK79jKqwB+\r\nYUaKI4t8tBxtfWdq/dGBoNqh3cHkMNuM37YA7Bv1e0YIwAtrFSusU1I1Z1vW\r\n/aCA9kP5lXVU/7h8ruuWOTWE1KPVuFq6AYk=\r\n=jkzN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"8394f225e2c7bc9985aeeba2bc586df184b5ccec","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","mime-types":"^2.1.35","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230208173733","@blockprotocol/hook":"0.1.0-canary-20230208173733","@blockprotocol/graph":"0.1.0-canary-20230208173733","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230208173733"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","@types/mime-types":"^2.1.1","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230208173733_1675877869303_0.5653949195096459","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230208204713":{"name":"mock-block-dock","version":"0.1.0-canary-20230208204713","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230208204713","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"df2f1e5dab77e7a808f09d5367ce085e52414517","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230208204713.tgz","fileCount":305,"integrity":"sha512-ku2ofPAGF57yHF1wAmVmVGXNyAq0H5Nus2KZ7J2P+/WI9xY3ifqTDdflQZfTzEcVtSVLZkvlIny4t8GxfEnurg==","signatures":[{"sig":"MEYCIQCSrees3F1WBlN1lrCyD9/xVCpJKLe/csf+YwD+UFWghwIhAO98I5vxqTk4iQ/JAdTiVRinbJVNUGTxWQeorkapNKlC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":997212,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5ApfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqmMg//X/mLWniYzXMhiIPcdVEg104G3av2s5ilfAmIsADiClJ4mGxX\r\nogNHylLHm5jOgdifdy8KZ0QyOwN4rnEqyv+qx/kKCZXET5yiKl51DML4lQUE\r\nKD12hGPZ2Agy80UzfCFG15rBmE60QpSKUlvxPgGYhJluvLfX1WAT/twVJKe1\r\n+PcNAv7pPeRmYfK2jCewbEILK0ctTj90+ZMLFkoY3cPF10V51jbksGbmRfcc\r\nQZo8sUnlL6s1pMyTL/02waYO37ZXqwIZ8Qigpx7xDZceW1c8GgaQtd6ga4AD\r\nzDEC1x3/oOasBsVYX4bjvO3ZMWU1JPNUgYWS2CP5tHED7xjlmp6ULA6MaJrG\r\nfkywBNOkGW48Iin3iBGDuXjzuQlLp4nQZ+4JoK0hqpu7/ZDVeCavfbAfNSAs\r\naduRz6GChvxQSVOEfnsAVOxxAelkW0+SIAkiTlyMo+43ClyX65LZDtUCFMmQ\r\noF/iI6EByMbJ4qkse2xe2vmjyTllucM06nLc5yRGMWRRZwOiF+5Z7qEQZMQ9\r\n14PHQAUOKYTyZp5AbAWgm/2PHi89en+GRICq2UFa1bdcfzURz6qqG9piwCMY\r\nklcduwj+q30Pm9uiwpLQ7F0r0OM+sccSKxOCUL+28UuUENtgs1pUqYNpa7tf\r\nhOqxxbt0ACdhfFSXoaJ0lpogiQQslm2dRlY=\r\n=TxSJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"763ca1031ad1969532a70f6775abdf6574108895","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","mime-types":"^2.1.35","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230208204713","@blockprotocol/hook":"0.1.0-canary-20230208204713","@blockprotocol/graph":"0.1.0-canary-20230208204713","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230208204713"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","@types/mime-types":"^2.1.1","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230208204713_1675889246921_0.19061261661491558","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230208230541":{"name":"mock-block-dock","version":"0.1.0-canary-20230208230541","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230208230541","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"bb8a37977b3aaf0cfc3c35d0051d6fa5b2e4d235","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230208230541.tgz","fileCount":305,"integrity":"sha512-dEv1XO7R3kj6xVH3AlYMCpENEeWuh3KgIZgjd2MW6edZGzwMQICOJjpEDokwfO7Hd5kVFquZ/sfU6gF3SHZNsQ==","signatures":[{"sig":"MEUCIQCwU9pOnM2xsd52aeoA7B28Wc0Xl3F7h63MlOJ5UY5SSgIgMNs5Dq5cH6s34pjYgcWSj2Wt/FOdLGXFAxVvHgVmjk8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":997228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5CrTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpJMg/9F2gO2iLOs6Ce/7uY87miaz3waHz+NV11lnaanlmyN07BCKwE\r\nAts7tyYvPbK+cXiaCe6Lsiur3hIwwxi+sxeFWWemkve5Cj7qz3boQJSGmmVS\r\nB68IF8pyC1r3kfle8EbqTzY5MGePoZZe0dWuywW2+saeKeJRP2bENTYqcCII\r\nIt1pDVwSRXbnmp5O1CDiYMpN+pvqU7JijWyLy3mSk9Si5tuyIxe2pDOoEzGT\r\ny43CmFJBjm7mlzAN+g6IfXBFwRe9HECujykylye8Jwq8U6JanfPr7ah+8xlq\r\n4Fl1Hh1qrWB7iF+/PSMFY1+g3ZOW+jfxCi58q9Fc/Gi4FIDdQqRuyYw989j+\r\nMKv5e1geVwWm2fQvRSMJ/Q8w/iKpMA99vIpmR4ogTlc9zNnTVmvTTV/QArUT\r\nq6ybMb0AcXDv5NtJbt+mrqQd4lWaYtXRXJgCM438daiW88U9oXWgBel1gopj\r\nRatqf3fUzPxFdo7bJY74O5hp98fdzpf/OdKetlQkBVeck45hAzSqPTkattuV\r\n0drYQ9Y82xjq5CpSWuV2R6E+FPRFGLO6PTghvoW1RbtvWeZyXlSaBnRqSAu8\r\ntiu2B6toZzuo5Huxkvl5DIA5CBV0xyCLsGa0nI5NMxo8jfhO2Sal3mLL2xgu\r\nyQqVgXxolt8s2cfDZh859ZKBQgFHBNTBwVY=\r\n=ZY9z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"498faec5033cf6d5a7aba616c26e681865f70dd0","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","mime-types":"^2.1.35","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230208230541","@blockprotocol/hook":"0.1.0-canary-20230208230541","@blockprotocol/graph":"0.1.0-canary-20230208230541","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230208230541"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","@types/mime-types":"^2.1.1","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230208230541_1675897555052_0.02068535449547726","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230208234343":{"name":"mock-block-dock","version":"0.1.0-canary-20230208234343","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230208234343","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"ff8a09c0fa2302a4cc2dd47acaff5ec9b78a9b19","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230208234343.tgz","fileCount":305,"integrity":"sha512-AH7PNYhiZDHka6JNGb4WG1lhM92NgvuXg5NmHiDSItz9Gs21dCw//pZ5opl2p3woN4Gka31XctXjQUk+P7Ro2g==","signatures":[{"sig":"MEUCIEdu0GhIywqbABsAttyHGZC8Zjk0RlWO5QFgCmaqjZDXAiEA1agvnUWvSS4qWNvNZP1PYqp/J3iwbPFePYV3Um9ClAU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":997228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5DPAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpz9Q//VHxhgltyaSzeStq7R1l82oUPUhgw3MTkEJx6iYQEF+oCYz7R\r\nDNXHBWUkLtrr/1K5e/rT5cc76JB4eBdWyd96ARcOg9FT9E1vjIs0WutkCa6M\r\neMjjw62hfvdbFqodXJMS9oDFDd7O+08zjOsQB58XBJtK9F9LYhQYORFr61h4\r\nDl7HeTOMyfW8bZZhD5Xn2Vrd3nYQ651mmwxdvvFTBvQ9Gklii8CyTT9UhDPM\r\nl/RDJtk2WfDyBVqL1OrubUMglWLFWz25NUPxlBd+ECD2hnM9VGncLLa+KFSX\r\nA9sExcfzCWXzW62UlhCYbZjL20k81uQweAWXshQFt1Z08DfmsM6uqimmrdRR\r\nK4KQ76icGSkPDtdKwffXbqgZtLw7Dav1t2Q5Z4mtvDv+wAod7A+nqkH5jaFx\r\nIVJVvFPPulKISJQpuqQsRpFJCNBb3yeSypZ32e2+nwh76v0T3mThrwTrsglm\r\nm4AVElS2nmNY5USKwvxOha9TgjmBRQsnxhQIk9KNiSS9EqsPhf9+jLnBEa5D\r\nMWoz2Qhu+yt2JjO/+s+ZYxt14cQIhBvupZ/KKUa3cJajS4fGFu3kMSp0yjBa\r\nUVsRL5CV7UioZhSerf2V95oixrOqUq7RmkJioaxiV6+EmXKHUzGS/ULWCFpL\r\ncOKwa8EMWDbw54fL3SWKXl2OUi31SfOxOWc=\r\n=4ntz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"1da76670247973718317737f4cf9c9761af7618e","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","mime-types":"^2.1.35","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230208234343","@blockprotocol/hook":"0.1.0-canary-20230208234343","@blockprotocol/graph":"0.1.0-canary-20230208234343","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230208234343"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","@types/mime-types":"^2.1.1","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230208234343_1675899840462_0.471142386477734","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230209082837":{"name":"mock-block-dock","version":"0.1.0-canary-20230209082837","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230209082837","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"a57fd319df1620082829f1e7596850a581af1691","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230209082837.tgz","fileCount":305,"integrity":"sha512-I7pBcX57hVsq0pqhEyDaH8o0WGa2cnjc7FZK1jw6EfDd1sSwOB/ngrzPRxs9krzs+vpa/1RPX/kmij9qQCznUQ==","signatures":[{"sig":"MEYCIQDwF3sEMPP6cy6NUqg8WYeChuTOpBvoN32gRYysiXu/ygIhAM08kv2pWSmie6jY1WqFmdgM/OI2Jk52JWjL2AUlcK7+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":997228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5K7HACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQdg/+JQM2zmw9JBZDb8b6tiGnkEv2Av9NiRBL5eps+sqXGWT/cn56\r\nO5oPc31Zsc1RQugtgRqSCtyeANVerYb90Y839H9LyXcqcElrX8zq1juGaHP/\r\nsVoDICsz7fGK6aDi/LFoK65wnatMhnoCZ737hCtVx5g7AdX6lGo81xrxRMfI\r\nxtTodEqn25jCGbbbZ8i0XnPu3P0+gyOjOkkxu4pwBSh4OsWPqQ9SQBVwWxqn\r\np6XiOvnu5HHqagYW3Mjt+N9MeiWgufQQTG20ncJFZN9OUA/nxd2MpCHPBbMI\r\nSKb2WGxAHtpktHNGsH+KLN144c+KtKd1x9OvmkykiNH0re1nu4Iz84ioOaRq\r\na29pD9OrAWJRZscamawA0iHNi4f1a3KXr/d7wsav6lLQP1e92FoqfSv5zf2B\r\nNGkB2lhxUMQBFhntv0fpPmOdM4spzPeYfFZQQtOsLtgX0XTTwKPavOu27IPU\r\nMSlLaBGxPQwt9kLSMh/wgzQfZRoeJJx7B9Uzs7Rg2xZea1y25em0LOB1/g16\r\n2yv6o7bBUZl8azs49DvhwLHxdpB8Ai568xQoPIKmWmpZx2LKuZYy6o7VWHG9\r\nyOTJcxkTS84JUrknEGgY9SvXmQEAhfNyqMEAEkZRQRkBQyKWbT51CNqN9W+9\r\neP3MnsOF5ViLiqTIXI+jwGJ9dZsH+iJp/5E=\r\n=nMrw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"4b099cf6ca49c508cfb449108a3e6a69ca8a2319","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","mime-types":"^2.1.35","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230209082837","@blockprotocol/hook":"0.1.0-canary-20230209082837","@blockprotocol/graph":"0.1.0-canary-20230209082837","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230209082837"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","@types/mime-types":"^2.1.1","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230209082837_1675931334923_0.7906147666978336","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230209084023":{"name":"mock-block-dock","version":"0.1.0-canary-20230209084023","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230209084023","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"84768e35d2cbecbdadcd97f30499425388dafdad","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230209084023.tgz","fileCount":305,"integrity":"sha512-xZmwhFvCnfHuk+IeeBedIf08zp0j9KIOdLTEM++BmqBwjja3ZUMotwTeuavnjMf3v2dJvQlLOWdZN7oqZVMREQ==","signatures":[{"sig":"MEUCIQDtMRgO5LgkWHVQt95WvOazM2CWVQp2TcazHcv/iO2BqgIgHa+yH1RnpKf3rerxrhXtxSYz7Na6fx/vHEi7Bbtvetw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":997228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5LGGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqiNA/6AyzKzJznDNTLuUmJltMQOO/fomrBq9xy4QnfncSumkOC5gvb\r\nz1FVf4Ypy4s01dq3buZ8UsvvOMmOcU3R1eMENh2S0qMBSkgw1Pdid8f6OtMt\r\nA18ONFmfkMe+twdxubJy2lajTriW/5w5k2hfPJ8aHt3QV2HGvNrG3NLnSYLu\r\nFcVIbhoAkPID1meimJzHmIiPKXrAoy8aTqES2ZJm8FJ6/QNMnBQawiRpIQS4\r\nu603vG5n5N9IorWmzG+sKVWWHQ8hbvhCSWStstdIqCCPBYZE9PFZNbnJNO60\r\nizEDPx6+sFoDpTATaJR16kCLaE8dobOK37CyRE2AnHvoGfT5azjktkRtNFn/\r\nJzB/LST2Ccc4RwanLwXd5e8DJOl1N8w+qGA9t1pJIcxNzxxMSOYfdKJzHz/N\r\n2zGt3mkZj9wAR1snWmNk+hO3UVch7C8PdUvIEyll5PGms0VdYoViy8GPcckS\r\n6jPLC+y88JTGkM0WA24tiifyOhmbawRQNxi026t2+nWoyxjwAxd8ufwZ3Ezp\r\nSsmdTUZl0HnsRWEh1nllSlT0O28+lrfqaGcipQHoUO5s2uJ1UIE4WqeyCp49\r\nz6Y7ZZBQCjzRkGZ7AxGhfBHCHVmdpIvS/lG6RMiWDYACdSSTyFASOC5UU8I9\r\ngjXoEsC6ZX2gJvyidmjlZn1k4NcQeCTNBzU=\r\n=6+kU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"8bd50a2907ad5a05aaee045f957b383a52084ad2","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","mime-types":"^2.1.35","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230209084023","@blockprotocol/hook":"0.1.0-canary-20230209084023","@blockprotocol/graph":"0.1.0-canary-20230209084023","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230209084023"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","@types/mime-types":"^2.1.1","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230209084023_1675932038204_0.11532684693874518","host":"s3://npm-registry-packages"}},"0.0.40-canary-20230209090045":{"name":"mock-block-dock","version":"0.0.40-canary-20230209090045","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.40-canary-20230209090045","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"57563c5bab5074b28d42cb0f961507b904293f5e","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.40-canary-20230209090045.tgz","fileCount":305,"integrity":"sha512-GLKQQihFWqd6TE7z6vRE4oPJqTa1aYBHldzE4RhFr+PssaCdybwI9dWm93UT2ghU3R9dDqdZ9Ehv3p6WuTqkhQ==","signatures":[{"sig":"MEQCIGpavr4bbMCrkIPKQXJxqLs3LHreP/j5hCO+3cQkAYUcAiARmpu4Kgi63704eQFWupItIho4CNuL8ImpHIv8sVY64w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":997231,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5LZMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+lQ//QWKArmLSyyAbo7MGx61sKsTo7CZrAzjucWQ/5BPucgfeja4U\r\nIH7NgiblVIK5U01mdhoCwRE8e3/1pt0pD+teEIi0xyjP/gRKZ+1zIagElpVh\r\nhXcUmA5UMaHRAcEDN6deO7SWkkwDcHz455J14Nj1LsgomLo1iS9AQ1GQkIc8\r\nZjRhU6SUjAcXHFgWZO4+FDO2ZK9ZN46hA8iIBKgYUjZgltlW/CetdWMvHDsC\r\njNcTujztpwUmWuhAoQ0lMp++GeQNtT3SEviZxvFqEPVEjqkWJiu5SRO8YGS+\r\nvJwOs48+KVIgyELqIyzCqoLNm5Ddhrtgip8oL4klbSQTMJH+bGTed8pUCLu1\r\nVd4q1VnBmLUSVtSGi+nZgli/2bH0cHdqVpVW6Clta1w4Vn1t4XOuUMZ0l1yR\r\nikBc/86bUEvWtLeJFbD8PW2COBQb2nVsW5skgDc3uDVx4VzeTZrfS+ZxQkSK\r\nGn/IR4YJv1iWeLXsUj0gnhCboIt3ZuA/R6CRq+ZL7X+rWxDxCj9Anx80Yf0w\r\nAv7i6VHJB3f6kQPVnhuK2vv5g09Rb2Uv17yPxd27NVCmqXyLdtZaUfhjS82b\r\nU+M3Twb73DOBqcF3Ky3gGiduaS3YfhvSrEJcopkPfwreTXsjTh1G7LBMN+Nk\r\nRc++fUo/xx0CAiSPHyLQkRI3y+xyOEsB9sY=\r\n=OUnU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"4d15bf5c1d97133e627b4d52ae925c386d7b7d1c","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","mime-types":"^2.1.35","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230209090045","@blockprotocol/hook":"0.0.10-canary-20230209090045","@blockprotocol/graph":"0.0.20-canary-20230209090045","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230209090045"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","@types/mime-types":"^2.1.1","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.40-canary-20230209090045_1675933260161_0.39386638249074335","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230209153829":{"name":"mock-block-dock","version":"0.1.0-canary-20230209153829","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230209153829","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"27de333baff68462c9f7c02b7224bc58f1d264f9","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230209153829.tgz","fileCount":305,"integrity":"sha512-y1aiHl9YqJu0sr0x4Y8CJB1Reu5Dg0D/zpA2Laqvx0KAmBrgHBQwO2Bp26cDU68RHO2fVEAeOuj0C87x1DJ2xg==","signatures":[{"sig":"MEUCIQDl3ZeYJPAco7TNf1u8P9zus/u7qHWZygEhi/p9LZx78wIgZhiJ37fu7ZTm1v+hWYKkjGTXdkZVSxCak/H5V6d7Hdk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":998182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5ROFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo1yA//fFt95iGBikXdVXN3kdGaBi3upbYC2o3sTNoa4QFETf39KL5a\r\nI3vdMXBCwvKS1hPfJPDzIZXd5gxe5mQsqZQl756uKgET90YeCTszJ9p4vdSb\r\ne4mSvRbgnbacgecKgSGFaZvIToabeL5rLGzjXXWHyi+V/nnRAIzYAAhbch29\r\nHC71CWQZw9Fhe55pqQyxBbK9LQGAe1FzNsGC3RnIq5xOHLn8n2M9XNMBBgp7\r\n0Fmn+Ksx+oN7BYVAqE4VFrQ45lQHTgIzs5If65rvs0h0l9jS9PkYQ/9TkgHT\r\n2jj6yrSuACMQ0zE+OQs8TBGXweCG0fZ0AtHlUEvMHm9CaazRTlWe/2qd55+F\r\nZL3l6953LRs7fT6SJEjjK+QgDXmy1vsr7wjB1l6TQZ+zP4xdwfO/ly52eA88\r\nJzMJmVbOLhTW0PmXbOL3ZkaJkL6WNifbwpAh0HtXy6GMz/H0Hc+TiH9RCRfd\r\nN3oPP/hCDvtspbcl2uV1LJh8R41RVEHPrmQZyQpWG5Twf2yVzWdVuEYyg7Io\r\n5O0xBz5rOzO6NsDp1rY8ng87Mr3eGYeEFG73HgmEZ/vNFW7j0hSxTFHS1k41\r\neGfN0ZO5FL7YHW4htWcDrKSm2jyzQGpod7oR4w66Z7/yoWYB3qNW48XOXo39\r\nu6IheZyK7xOrxGin1cuKBNkfJBQGOQSDWzc=\r\n=ujI8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"dff417c879d270d3cfe3b7cebc3282fad2efc5ac","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230209153829","@blockprotocol/hook":"0.1.0-canary-20230209153829","@blockprotocol/graph":"0.1.0-canary-20230209153829","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230209153829"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230209153829_1675957124854_0.49733581948835304","host":"s3://npm-registry-packages"}},"0.0.40":{"name":"mock-block-dock","version":"0.0.40","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.0.40","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"607070b706beededf9e00e2e43cfa65c2bd4724e","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.0.40.tgz","fileCount":257,"integrity":"sha512-axsDX7c1zofWsRwLEpwtWo7SwFtVu8kf4nn1wHF3BN6puwBdfsTyHbc5DlLlPplYQ2PZRIFM1+o9VDaF+F1R2A==","signatures":[{"sig":"MEQCIHKailXP9uRMpyXFRJVxs4PcIUZjznDn83s7v4ulTBkrAiBQOAJE6M2+ANikRH+TaB8JTQeCATEkYFV9p+DCVdIYMg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":881765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5T1SACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp8og/7BlPhyY8kAjjxJVxSrCPYIQvfLyTzFKp1R3fdmzs/mdYFTDbc\r\nK78EIT2UzbNveS1M7MDFQmel5C2O7roSSYSh03qkQBMnNfnn0cJTeGxpVx8X\r\njwpirO+At8d43tbExjrE8h/cZLUPU6FqUqZQNkt0b1KGfgLwo2tBMOBKfU+E\r\n3830/b313rrTLRJFbEbET4twap8XLBtsm5+jkqszARqYT4iaMDdMcvl/L436\r\nvr+Rhw3LqklvJ3ktlvmdBAmSf1SnTyjcxLypNUdE9hIYR6a5mSaA8du8YvQa\r\nV1JIWv9lu0URY6APx0GB0n4xDD82YdinVh7W1IiQny+FmHeYSkDcRBsvD0M3\r\n9rAy/7iJBxGv7JOXZ8IDIOBHQCponMTfONG5eJbcmqaepJFmC6sGnbmS0KgH\r\ntLGbHBfjXoeKimthD+SDG/mIorThbB59YFkwvH58dVQa1kNca6UCYU2vEBwg\r\nDTzwt/n6k+xnNseOentCqEiAq/Q4HenyaE0nQaeeLuk/OoE9dJ0lpZ0qKWCH\r\nY2I/8HeV1CrLkhSow3jjerIb+PUP7VS1LYNXXUXrrCQFjISVRLH30WvMkr6S\r\nqVWRlfHlKkuIBUK8fX/xKdZa41GsbowsE1WUzWQKuR7hlXRxQfh8+Jcv6Y8f\r\neKNEN6utlTmJrQ2DetVj0IdWQ8+izEedCrk=\r\n=G6UL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"da4588b2d8ba869acd0ad221cfb76f08e6b5366d","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.9.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14","@blockprotocol/hook":"0.0.10","@blockprotocol/graph":"0.0.20","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.0.40_1675967826069_0.22136323435693117","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230209191938":{"name":"mock-block-dock","version":"0.1.0-canary-20230209191938","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230209191938","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"90fc3c30f840a6b3e9c5db074c47dde17710462c","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230209191938.tgz","fileCount":305,"integrity":"sha512-8r22LlSkEDSs1gBj7pEeCcJH5Jb+wNRvhgr1zv+AfEN+AHqNxb5E5f+sxxXzG6xAXhWH/L7/EpeITIMpbt6YcA==","signatures":[{"sig":"MEUCIB0NwV2fbhhpMkCHj5FrkAW4+X79iqn+VeDPUlpOA4MXAiEA4XIKQBGvxnmLdLFfkUkV0oqG+U4Ems+DJKAFTIexVUI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":998319,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5UdaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6uQ//aw+otWM+k6xDDj1lIQI6loI+zE4f5bkBzvpiDJuQ27X3EWjN\r\nMwpM9SDxKbWi0/XUQT84NSALz2I2h/PhkRm6SQ9exayMmnzSWwQwfe4Oe8fV\r\n8O4ApO2+yrP6rA1Fa0D0CD+A9ggDhyQbUH+R1+UdBkzSp0oJcBsBs9mrGc9x\r\nCk8S7RPPDgAyeFi+ZxbHqSAKR7eZEsItu1yzU+ETU4bXU1QY0MPXdVbnrCNc\r\nlpJjkWS9CyWzpFCvufZqhbPv7ORe23VBgkiuunvySYonH45FRPyl5aAmltok\r\n+2ZW0TYh8qQurbznZOxswAAH8KNAg7dzB3Kmn5Ka3HV5Nz4yTmy+Ft1+SLaC\r\n6/hl9hfNJYdt2zHEF9D84gDZT61X97k/Gtldw+RzhPX2BvDLtk9r/8t8Onof\r\niUspfSU8B7T5p+Lbayt+LYku0y4Vk9qhBDm6wnRPekQ2aOhpO1sK87gWNKeE\r\nodZTDjCl5RKklUbFN8jRQAr1zE3n+TFt6vazYqL/5YVucDDt0gw2HO40Ounz\r\nLQ/pKJlRbgYHxZxvxuvFRtpakDETBcRv3xpnjPPevGvUULu2Lku9DM7fUbs7\r\nMmPgzZsiSbUqPzYSkebOTkzTdf1zHzUICiOU0vQSJF9XrExb2Ww0YbJqN7KK\r\nH3sOgKQVZcYSxCmOQqpi5If5WRpGviswj3k=\r\n=7l+7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"af6bcf60e491bb72614c5cf670c9376f141bcda8","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230209191938","@blockprotocol/hook":"0.1.0-canary-20230209191938","@blockprotocol/graph":"0.1.0-canary-20230209191938","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230209191938"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230209191938_1675970393884_0.823117584714042","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230210130343":{"name":"mock-block-dock","version":"0.1.0-canary-20230210130343","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230210130343","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"a0db1a44d51ac4fffeff49b27b6f15426bf0f916","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230210130343.tgz","fileCount":305,"integrity":"sha512-qFOtasI7FLoQwqmjy25nff+i3oHBKjIW7B6YLmg6r7cAmWFGLxfN8YUkOZLNSNCkYHJmI1uJj/Gptb7QffHaOw==","signatures":[{"sig":"MEUCIBEcG7Eo2VW6ULEM2me/r3r3NDteqWXQWB7WU9yc+CRuAiEAlE5DdFYwReAjGBYxt2jnWFB0DTocN00hJyE7CRo9aFU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":998327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5kC8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmopUQ/9G0mJRkOiHeoBImnL3ZiyU4gaT8nVUks4fTon/9/RQ6qln9zx\r\ndHLPfktoyVdsr1DVcUOzpIa0eDWv+VW4rlmNTmGmHpxTF9rFJ1kTDEqqXrFD\r\nQPM3AmeTWOwPBCtm+un0O9kj7ImA7v3mWuGsgoGoyjBelAGrHJVCR2V3ohXH\r\nX6AcCDC69K97H6P1LSJF6rjH0i2GyhDUJHvv+Q4/98eccpuOYoTEyOOlMCXC\r\nYth2/NsPhWUl+Z81i5+2jY0daz1q3QI+b0rpfkfZfqMKfh8l+VfYgBAbjKk2\r\nJ93AqzGZsLKiLIfD560nkBQFSgKGyAwkHMuC25gbAuZiDD1OeW9cU6VL/PGQ\r\nZ4Wv2i+y11leAL3+TGLKyTt8LjZKZYFbHIACKOW5QsJOvLx20BD5M9jUeyP5\r\nDrMUnxDno9rRDUNGi4WvdKwvZtssmqdxOY2+4TbUEGDcmbpIA3Bfiwu02KVM\r\nfWlyDMRzm6jBWj/97qHebAuDmWOLjPlaLAuYuEehnV9UtAmUHImHws4CQlPR\r\nC7l7hNeqqwHo4NN4AJsY1BAhcEv9rz14ZoAmQiu3F3EPtHmf7XfU1FuDbOaq\r\nGvz1uU2yf7lYb0iJQY1Lut6330qRqVatfFrfpIpdpov7whqSG7ibdU7GctNU\r\nwbj1JKRUNIKdkGiS+nWyNLcPqfxu9cL1HH0=\r\n=SGUv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"9aa70223ad37bf1eeeb34ef2b0a64bf5f17f667a","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230210130343","@blockprotocol/hook":"0.1.0-canary-20230210130343","@blockprotocol/graph":"0.1.0-canary-20230210130343","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230210130343"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230210130343_1676034236248_0.5109369737029388","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230213183355":{"name":"mock-block-dock","version":"0.1.0-canary-20230213183355","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230213183355","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"cf41488c9a4e0d13a6fa3e6b296b843d2563d3e7","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230213183355.tgz","fileCount":305,"integrity":"sha512-seb48Xw9HYyNOov2MAuBJ8BvmDJxz66FWSRX971AfAHiMJ5YKcGnSQxxBHx/4SKeY7Cfbf25PtaHTVFx5O/bTg==","signatures":[{"sig":"MEQCIDuQ13amBGOgzH1mYZ5tbSvkaKhcSdMRdGtXVT4IBh1iAiAWZ7cGrbG6hKIhYNKlcwC6DTYCOAbtHAfr14QV3sR1fQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":998327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6oKjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpaFw/+M8kjZHCWCmHjS/mPCqXMkMTcFY3uVRCXOSCKYsz4PVBpoFWv\r\n6Wt5Hi9sGgP1kP3dEHIVAyX+YFVOU/neFkOyiwNRUvhzUGzCxvbtbcr4uPpa\r\nzck4QUkuo76a0hjzIZuH1ARFEKX9N92KCC///tnBOQUptvf+KA2DkMNTaRrD\r\nOZgz7v0QMTyyQaeatGWap4V85nuYyBOQglLVN7ruy6NsszTmT1pJmuqI4h2H\r\nhLXzBBbDpGsVtP6uIZMXv1q9ZQkL82m+yH0fTiRiS8tq92mkif3t3SBs+9Z+\r\noSc8EvJnwBTW08mdPfSSJ/sEDR67APeWw6ZJ5Gw1rfyyHQtyiwfg/XgN4nK0\r\nlDfI+mBT/7qLyycREQMoffF5kt/ocDjuL0LpdDF4BbBNkcvTYW1rQaDAIX2d\r\nGYji1WZuRZ5sZCdJHd/UJHrIv4l6j5hZvWm3ywmWoc89vExHFSY7sa00FikH\r\nSzPiApR/tbTVQc0AUg/xme0R785hAToq1bsHHUw8C/7scUOnJUXIVWwNLSn0\r\nS0wexVKLF4ZW321XPe0e802+L2r6hm7s5maykKlFBaSSuT/exIHjbUgYbJuR\r\nSO8x1JF8xaDjmtSsRdzA/jRLt1Yasj+rQfKbwsf8wQWk/0n8wyH/hPPo6LGf\r\nYUbzxHcDoJ2TwJ6dYClKmIMny7fAX9E8WJE=\r\n=3MwS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"1ad0f7807553f065e09b0910b4e3122bf4cbb29c","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230213183355","@blockprotocol/hook":"0.1.0-canary-20230213183355","@blockprotocol/graph":"0.1.0-canary-20230213183355","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230213183355"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230213183355_1676313251286_0.6256379500619345","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230214141700":{"name":"mock-block-dock","version":"0.1.0-canary-20230214141700","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230214141700","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"408e55849f954950e19765d3c34f5982f2f6959e","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230214141700.tgz","fileCount":305,"integrity":"sha512-F5rsbtoq8E6Dcg5vLN63bRQH0EyblejL7ywX0r0dffkRHuOj2UKvkXaZMa6k+PNFq0aaCNnRuaRnVrg/cSGFmA==","signatures":[{"sig":"MEUCIQDPsMg5tR9eScREaMYFFRQZb7l7c5qIBwRIYic0X/aJ/gIgbnRI46pELyDLIupsLQWagD6IrrrTFpyE4P2Q9FT22Xk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":998679,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj65fsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmolyw/+PoczJr7tn10Ywte3nMWrepDnvh+U4yf2jImhQGrc6s6hQbbk\r\nugOZQzI/MBOsZ+aYyu4/bzZ2bpEHRf8HIdV8JnfYf+3ILB48LcZAE6Iyg/W9\r\njHG7KBUKIlSZMjC3qlMs4I1xqLeQVkWcuJ+1+NljALqr8pflDMv8d5lYkf/p\r\nObNMdNapM7xnVLEpmabUQob01FyHvsqVWI3t7YYlkpuEv40oTwgDu2slbcsh\r\n78E6GdIHuVu9jNkc6aE8b5g7qPlem4pYj7fEHoVHdUFQXKNASwSRDzbt/W77\r\n81Dce63mPAxGR/DS07N+2V6RuVAXH65IcVmCSPj8PDLUbi7JRENu4D6VVdzX\r\nnTctOdqxtFuhzB6JMNNHquXZTq2VwW1+o051pTzRyjfR0EaAgikQzQNEs2Yn\r\nKi4UfwpyBk6iQYOJZUCreRUmJGlK4H5igz10aY8y3/y8Fp06qD9bSultrgcd\r\nyIDm3KsSIf1d5M5ZD8NSn1euN1cP5X4c5TsSerTaR91Yl4ApJ5pj1G5RD9y6\r\n5hoCz8ZovzSA1oFtltEI+hCZ8NdfYOzAtKsFyTB5NydRjk0eNr/LrmEw9yf9\r\ngwmBctEkRH/80Mxa4XVffpf9+Hs+zWt6xLT974GwEs6Mqf1cLEqtVyrXgqJv\r\nQPVOd7Gv5shULx7JjE1Tz4QfWGLsD0RqfsU=\r\n=1YPE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphService.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity via the `blockEntity` prop:\n\n```typescript\nconst blockEntity: Entity = {\n  entityId: \"test-id-1\",\n  properties: {\n    name: \"World\",\n  },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }}\n  blockEntity={blockEntity}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  properties={blockEntity}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug=true`, `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `blockProperties` to set your block's starting properties.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockProperties,\n  blockSchema,\n});\n```\n\n## Customising the mock data\n\nWith either the hook or component you can also pass the following optional arguments to customise the datastore:\n\n- `initialEntities`\n- `initialEntityTypes`\n- `initialLinks`\n- `initialLinkedAggregations`\n\nFor any omissions, the default mock data in `src/data/*` will be used.\n\nThese dummy records will be in the data store, and your block can discover them by calling `aggregateEntityTypes` or `aggregateEntities`.\n\n```jsx\n<MockBlockDock\n  initialEntities={[\n    // other entities for your block to use can be loaded into the datastore here\n    {\n      entityId: \"my-dummy-entity\",\n      entityTypeId: \"dummy\",\n      myOtherEntitysProperty: \"foo\",\n    },\n  ]}\n>\n  <TestBlock myBlockProperty=\"bar\" /> // starting properties for your block\n  should still be set here\n</MockBlockDock>\n```\n","gitHead":"1175f52d4c7b456dde4c11b42a5a039d12bccc68","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"^5.10.4","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.0.14-canary-20230214141700","@blockprotocol/hook":"0.1.0-canary-20230214141700","@blockprotocol/graph":"0.1.0-canary-20230214141700","use-local-storage-state":"^18.1.1","@blockprotocol/type-system":"0.0.4-canary-20230214141700"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230214141700_1676384236357_0.24250643729628707","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230220234726":{"name":"mock-block-dock","version":"0.1.0-canary-20230220234726","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230220234726","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"bdf69794fb1dd80017c5c8de118cdbfa98e0b067","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230220234726.tgz","fileCount":335,"integrity":"sha512-61oJn1lYYYbMa/LMxQr4F0itrKpTS0rYDExbRUgJABB96ZrEVZTNCER6+M4n3W8dcBhvbFvRbnjoN8Zq31NMvA==","signatures":[{"sig":"MEYCIQDADyWBlcDyjRAqJtxw2CFvFeffw4Yplow4A1Va10T2TAIhAP4UxPhLjgWvomjRVqEkDXFC6ZlMQUQxnYvspw/4f5e0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1268615,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9AdxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmop3xAAlgI6fX7VL4ieFYrjwUev8eSW+wInpPalhvp/NUdTZOrlDeY+\r\nq+EGjkCooxLlz697EUzQa5NB71eBSUW9R4R1JWLXJP+G1ZpXBWCWPC7d/c+3\r\noWK0DnVxBylGKTf05qFyPchn8s/vLaWFlUZbszIQlSFS1Rp8g4/+QCELZV6V\r\nck00lpAqTse8N2krzaaLsNCIgfnjkVXDRzcDKcYUyyx7lmDoQ0TPj0y4UADQ\r\nyI87JpIWKWZ7VsoLtWXz68+CQiGEhoy2VBQRWcbvbB1l62eVT/MMThAGlFP4\r\nEJSXVuXASJP1V7XHRgBJRLlY+92tQBgXZq/S2BxLK1GnhiXNOQ+tIRpL7wL3\r\na8zPp9KpZI3o868iEjykSQpSRh/uGzgKQXzGBt8OM8hEaIiZzR28IG33lVd/\r\nZbIybvyriSvZqfRBxkOJADo7uZqbNp/mnZeU+56VhufziJYMfPuFOoit0UB2\r\njHfL3ShGPsaRvHxJqpyq+QFSuNK+rkoHrTFHUjV0qCWu/rfSosK82zE4MfxO\r\nb8GQp9QU1Om0Av0ydyZNqKKuGPQdU2xoC4pDCONX11JKdH0Y4S11EFjgMqCK\r\nJDKgCgaAGvPGdJPX5jhf5OhkPHRYTEUNMaZYLC4m4R/GaYr1SjOq00fsLLXK\r\n/vkfNGNMqPCtbBhinf5o/8SxwwfUOp0nbXo=\r\n=qKnc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"c60b8132f9c8986a3bf768ca4517daa3ffca8c53","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"cmorinan","email":"c@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.18.0","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.7.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0-canary-20230220234726","@blockprotocol/hook":"0.1.0-canary-20230220234726","@blockprotocol/graph":"0.1.0-canary-20230220234726","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230220234726_1676937072807_0.9363190111036894","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230222150704":{"name":"mock-block-dock","version":"0.1.0-canary-20230222150704","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230222150704","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"d7fc974a7a8f5529ecf2a218d102ba57d243cc6f","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230222150704.tgz","fileCount":335,"integrity":"sha512-nHF2tUQ9HKT5ovRYzSoTZ0yuRt/h8cEB6ihb220kIE79xFPEgMEB96NSlYPyMAbGTQHZPpskLVLsBXEbhAhHBg==","signatures":[{"sig":"MEUCIEylYySBf/hee+f/I3uY5cCy6JCN4OgganKCVRghtQo4AiEAu0QzcEphngZyBv6BuVdrVqBS4bDGj7xg1rr4+uoQFlQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1335753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9i+mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqJAw/8D/qTA0eL1BCZs0HbNGs/QHEk+q4EAufXDfCBs+Xch2Ofy5Ki\r\nTuf90oSjo+4hrPQlTivwRRNuOLWmFpqLAF9c5TLWu/fvDrtBiZ0FUAYmAys7\r\nOTivujuw3ZpvXJ37AyqGXfEFmizeg2ddExun8mBsVoOEWC6qCJkgcKwR2S3M\r\n+UQ7reiisY8EEUipUoambL7ulrAjjvNmG5QZzYPHdYT6WbLK4+jdc3KAgfpW\r\nmZ04s3YtYKe4aTR7n3JLGqzyIVvQxEiT2K+TjasKKIStwizmW+YJy3/xXstv\r\nmsZfzkrqOOtjFaDJnxJX3nRtO2+GfmNdCoHvs5IftK2af2vYGu/cgiUWUObj\r\nSfFvQMRQ1m4a1+xaXu7rV56t2vQflWxDh8WNaGRsOGwk7IrcqEiLqJFZvN8q\r\nv1mn8mmhVzMtgZEZOk++QXPhNg67ijRl2lYWt8DBk2dWab3aF9T5mOsWDC/P\r\n0CuD7MNikIXpxu33a5BGq+lMQ1Kg3uo6UHk+UBIUufvojVeWjJvUvInTT09C\r\nFum43v1z42DOexsp5iIPRt8we7ivN7wI2kURCjOTcEihuRlZcHjSpkstYc3x\r\nhEMCG7SNX6O/19D8wtn8z02HIUIBc0xR5oRyFpUpZk1DQaKsodx0nB2o9iHO\r\nkrf7oZ1CPShb5wPtZ+JS8ncZCqNtzr+E9gY=\r\n=jla6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"8c77e87a75de7f1227274a2d00934bb2cdd1528a","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0-canary-20230222150704","@blockprotocol/hook":"0.1.0-canary-20230222150704","@blockprotocol/graph":"0.1.0-canary-20230222150704","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230222150704_1677078438175_0.3550405532437728","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230223103409":{"name":"mock-block-dock","version":"0.1.0-canary-20230223103409","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230223103409","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"21d16cfcf449bf9d39b783e80bb1e7075dfbeb31","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230223103409.tgz","fileCount":341,"integrity":"sha512-95DxiBN6+wU3SsXUwixKAtiTBj8FIXkc1A9lEe6pUJszOWoH4MdLuECF8pgEdYcsuw/DWH7J5Dt/NgkMU4AwSw==","signatures":[{"sig":"MEYCIQCIjdxrntK9DkytoXkxmBA5O/cd9uhvZKKOiKVHn/rPFAIhANKvDuGj76Joh5KDCnBuKd8GQJgZ7Hv+rrWWI3DXxzwq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1356957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj90EyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqH+g/9GWDjr2eCexEPqj6lxfuYjfWn8/yL5V2VRNrRDQpzhoDH9Nxv\r\n6ZDMTvv1Pbp5TJfFko9zvR0dzxkLWsR8RZHwllduXbsxfDEqzUY9HIMLguGm\r\n1UxLLlpybx7nyjwO3wbgYC0L10XcVdGbMAz0cCok082TLXcTo9ziT74N3XfD\r\n+cR0EIAdXR5kyDNsPRx+mMjeyCQ99oOB7/5y1KkDqjfqZ40HsL2N8HYWaB9B\r\nmuGI1x5BHCuLTLg1ug3IdaciMb5iOhh3utn6/S9+AP1wPnnIiIcTHEJoyt4u\r\nED9HkVQjawenjedUlAUSGTe5ALewEHVWBUrohHM7mW9oH8x6PFUegWbtXLPk\r\nz5bQ0eMWaYTZUcCOY+pTKLMbdAle/0JCZ5hDqtlHzr5BU316mXxFPZyb4/9B\r\n+IMdEKOgDtKDZ3PZHJgNb7N+UWoExSKk18JAz3dRd6IMMhYKn3Y2b23foqZS\r\nhhaURluJ3RG7yNdSYgFiRHuwbv+Cl4QuXAhAaZ9Oadu8nw+k1r6Skq5GSh5P\r\nCGKSgZjag9aq29BOlZA8I2Fubh9dirzNDZS5WxDANGWgYoK7BG1dHkHX0Z/9\r\nka0uXtJmBHBh/VtQLOTVU05DmfTiDAEFna+zgwpCv0pG0uB73oznJa1gpKA1\r\nvoDsrE48XKuqzm8qlR/lmru3BytrSeoBlzs=\r\n=25fS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"9e0155a3b24b712f126b04f3554f07a0973e8fbf","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0-canary-20230223103409","@blockprotocol/hook":"0.1.0-canary-20230223103409","@blockprotocol/graph":"0.1.0-canary-20230223103409","@blockprotocol/service":"0.0.1-canary-20230223103409","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230223103409_1677148465705_0.9059179088435743","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230223145025":{"name":"mock-block-dock","version":"0.1.0-canary-20230223145025","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230223145025","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"142eabfe6661103af160c02d2b039bec0fa8823a","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230223145025.tgz","fileCount":341,"integrity":"sha512-nzq30TCMHA7icFxHoI0MSBsiDJyMue2SLyqNpV/xDx4d8eMtSC1MwDWLyi2aQKtS8cXAVBG56KJwq51ZDyV/3Q==","signatures":[{"sig":"MEUCIQCpuj1IviqMUWCaxlV3QQkLS98oapRPwTDt9JI6JVL4LwIgePj/LSEUOr9h9gH3nZ6XQqpYimIPZrNEkkmlpyw6APY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1356957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj931DACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmovmg/9HlyeVVltAvJn4QtnGlEp7JtaV8rnHGvLUKI1UbeF3SpgH0pc\r\njXVchIhZicVCFqpZdWtpjCy86wzkiHsqUBmo0wYWGsJ9xejMZdclexhzn0h0\r\nV/6VIslVU5j5rWnbfNNsnGR2+wlSmgyiUujXCbr1PpzvggM6c9Xt0VzdXDCD\r\nq/jH4OCBXhUZBBYQ7mIEt8Sfwm+OhJxiaEodmBpR/7R7CFoQKpmDyTOJbDp1\r\nSxUqEifc+r+uTX6vp5n9TnI6r4ThgtFMiRNghODji7ZCM07dk/1y3DOJLMLV\r\nxlk6vb713Ac5i3OyTFpuxu+XT+zuOqHbGvBi1B5H2gYAmG56q0DgXKfrATII\r\nuZllWGMUAwzJSiPFdJiTJ/U6gZQtL6Kr+IMBwH2ZhtPva/lgRexgiQZ1n6e6\r\nEqK/NcgToNNNqMUApOohPb2iABE5urDTwr/raTB35qu5C2wwjrBAa1ZyD14q\r\n6KxLEeWZpGRoBLeXGK5i14grJLargVGkqGla2zOl+KxOrIGn4SDUStn4hQnn\r\nFTRXJf57gx7wjNRzOHO/foaDPrje4Eq4sNwvO88fw3tLEtrbMzaQ1wXLlmjB\r\nXB9vztx9pj9557Yud+yqMlIxkkWXKwbBp/osER/MtRDGW1PhbpCwjhfyE8UW\r\npXWZSSr2sGk6awAr00tdMNZRKGEQsFATvH0=\r\n=nSMD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedAggregations,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"d37e68f1d76dba72175bdca2be0176d5ee442566","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"^5.3.3","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0-canary-20230223145025","@blockprotocol/hook":"0.1.0-canary-20230223145025","@blockprotocol/graph":"0.1.0-canary-20230223145025","@blockprotocol/service":"0.0.1-canary-20230223145025","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"^18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"^18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230223145025_1677163843664_0.8764923473931243","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230225164454":{"name":"mock-block-dock","version":"0.1.0-canary-20230225164454","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230225164454","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"af6b72dd5a96b29f1a50b3e4a848f7c49be1f549","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230225164454.tgz","fileCount":335,"integrity":"sha512-/WokWaJpUoZHU1QDOcjidKOsENHOengJNlMzEN2/9ofDPO5rUIiF/ADuIrdwxn5zw1jZAqSobu8fpLaK/z+mOg==","signatures":[{"sig":"MEUCIH5ApbNqVB6XbkHNgA/ZFpZUakCnFnj2HXc/6r2vMINAAiEAuOfiAEM2l1QFcZbfHyefO4xajPHVzmV9TvfR2mAQ1CE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1290287,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+jsXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq3gg/7BXQxkJdSmO4OFJpvb6G1nwjYTJCtOBOcumc48q8nV+LybRbO\r\ntRN14xrQF8WalYh8MLsn5YgTDcJL0aVGbDfKi24BOkaIPGYa7/zXMA/5UETO\r\n7clYmvs+BSaY8na7HDdYtdrOoA9Hu/RKcQYQLyHULAmcX8eaW9znr6l/OELN\r\n69r0xhF6O47lFX28IfnS83kfi32+5NtlCDo1OMgvKX4W+bKXcqMnTieQpz5Z\r\nqMvCNnvvNfX+6JTs4K8WqFqkRB4z6RlbChUoiPt5NnYW+zZNqHygFYH3jHEX\r\nmWc7DWn+uNuPbl2PV9bQL6ObHO2djBrCnzzdvZyRtNhM6hoviV68D/X7MF2R\r\nMtHNq4ZQprPUctVxdxqixS08GubD504JiPUZQ0rap4XcvErAqDs3trjy/37G\r\n66880HjUPYKA6n3wczaFR3v7tUH7gE7lfqSt23KJxSEX6n3vp/wMtfbwvpBO\r\n8iaUG2SVln1lmOJLe6JxWUDcy4AfJAnbexHNv3uKji2xFsjHTUxZQfYbI6f6\r\np5ttypnLYasn6x98k3ChZ+EzVniYhJ8tvo4EgAviXajkh1SQ4sJVnfFDGANe\r\nGoxdIQ0AniFmpgp6lbuiDbVco3zuhxlOgYnGn0Zf39jixdU9h18xzyUL7tEM\r\nb9lL9BZ+qwb3ntGvusAHsAPfM1FXB1cJlB8=\r\n=F8Kq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"6065b24a3d2c8bc2a9a9cc8c103ebc028727b8e8","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0-canary-20230225164454","@blockprotocol/hook":"0.1.0-canary-20230225164454","@blockprotocol/graph":"0.1.0-canary-20230225164454","@blockprotocol/service":"0.1.0-canary-20230225164454","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230225164454_1677343510985_0.4434636116833155","host":"s3://npm-registry-packages"}},"0.1.0-canary-1048-20230227024627":{"name":"mock-block-dock","version":"0.1.0-canary-1048-20230227024627","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-1048-20230227024627","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"c018881f511afbee710224f80fcc2406b83f5158","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-1048-20230227024627.tgz","fileCount":65,"integrity":"sha512-XjhUFHK7/0zR5ttDBrdRX0wmice9LA3rXRzqgP1D111TGCAtWSgD8rK0lXNT/lHndBFtxwarUt+HmIDyzutTwA==","signatures":[{"sig":"MEQCIE/6PEW7N6L/iOKheErdOBklOXm6xH1SQzKWiuxANy5QAiBss/MXiV3lgYcVRzZk5wgoC94MKmxj9fu+z5wXWXgmPA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23733150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/BotACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqTqRAAnCwzNdJnjQNw07ZWqAtF+CKLJuLjXKNgvva6Jl6xz7mLcMg1\r\nBVB0aWkPexVu8ETXv4Lh2Z3tDN/QFVkZzcU0Zy1XWqwnuHvYFEWP0S032AHV\r\nY43DuNWhNL9aQHtKsG4kS42RDc/B4f0VE7GIaTZ9+wspKve1dPwnR+h4kIPY\r\nvcjmr4q9AaveBOzFPKlGmhORYSubU+eKwuvbE7kUzJbnnsd3hZz0NR2YNk2R\r\nXJVfbnDxCER+ZI6B6jdAKcv+kzLHtQd90gfAlrJI/3OL6d4UX7SZS0bSdtva\r\nRW0MxM8bihKAsmlV3MuN0k41WDpwOGsYzNey9H3LSUgHlgEx9E7JP1RdPDwx\r\nwSEXR6SJzVQHv9jcW54EU/pI3kfxsV427J2AAQGoTdJBfluuqPkaf1hk0ZSS\r\nvIPRtSM9SBJjBYbIQrqlxqVRNPAKSDlBO7sp72LQ8G+nuHgikc4shmpd36Op\r\nQqQcWy1qa1q520+BRAHArEfASxLrVK2y4rpOgV6goXCwmvDGjLO4rUFJF1KW\r\nL4PVQ69S8BDx3LymBQNHzvvMEkYNCHeH53tTvnYKeZmHwYRmry9qI1nFU+Lq\r\nENIVnhlFN3aCK2Zj7YKU46fmU9MbK2w6qLYtu9Ydb9hVdV7JBJmp+tvu1Ltj\r\nRR/NKy5YiCJgoACRotVsjvpywOxO32Iv4Us=\r\n=i6Sp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"3dc6dc18b4ec4dd5a489955020dc97c3c98759c1","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"nathggns","email":"nat@nath.is"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.1","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.9.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0-canary-1048-20230227024627","@blockprotocol/hook":"0.1.0-canary-1048-20230227024627","@blockprotocol/graph":"0.1.0-canary-1048-20230227024627","@blockprotocol/service":"0.1.0-canary-1048-20230227024627","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-1048-20230227024627_1677466157264_0.26934588613687493","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230227111813":{"name":"mock-block-dock","version":"0.1.0-canary-20230227111813","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230227111813","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"bfdae6c2884aebfac37375e0976dc6af54d80e08","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230227111813.tgz","fileCount":335,"integrity":"sha512-ayk5xAwdw5cbwXmoj7B9DDS3Elm2n2LrWuNfXtKFTmxZg40pBXstAVjfkZg8FW7eSGuHV4uVdCC2FmuiyALo5A==","signatures":[{"sig":"MEYCIQDvDGhmTd7jQLMMn1Z12xH6RFFjuVxL51R0tobpb4oAVwIhAMgf63knYkeH1bbhF3xmslDjnjkqKi0YSLD9FElgvVkJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1290261,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/JGGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovMQ//ZkLPlnea6RiMgItHSRngNO5SSxK9+KPG47+cJ9x0SxEaD9U1\r\nenL70Iy2k04WgcjaVrff0mL7+H1p0XwAy/GsatDvL0h8kpFE1tuuRMOzZxx+\r\nIyh0dN8HhSOtQ2lHnGOXEZhL5FKiQ75S8LVL6mh1lbD83Ykei4uiyX/JIyjT\r\n/AOJKSXxkARZpXTRkZ7DHaCgcdtpxpe1x2TZkaadx2Xq2Zidpy2wmkH1RVB3\r\nUwds++EAsHuKYDg77A1yuk8cIwr7lynH13aIiUQ3AcGPpodcI4463iNq+LWY\r\nUUW7vR4I5FWGkAb1P1iia2OwMgXHwA8g/LMaVb7yJKEmS5afbagK9TwwKY6N\r\nM1zHYfdJCUpdsLpsMbhp1hgvjiXUhLsZPe56B8t6noHtLgLvOOD8FCLkpBxM\r\nWFEhtLhraNc16FX8ERwb1R0XX+xBYAHKLoSxBCWiVqDXSXrREW9Js35EGlpD\r\nnBFcc7Hj4EZiuRWXwxwtZNtwBJ4F8v8ank4ICt2NG/KVHM9AHelvSBu5D5ty\r\nN+FXNj9UweAe+BW1S++gxvRSt2+p42KBY6wq8lp2iVF9KcfUpXBgvvRy9p/J\r\nyeB73OnsMUKKifzxVq/4uWVpigaWgWwwa3sibFYH4LbhQb6Ahe5u0j+5iVqu\r\n9w3Cgx7E0wKbTUT2BPWyNjLFNRF8fv5cCpQ=\r\n=pFVX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"9ed96782b79d5fec2047d44ea02817368d10da5c","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0-canary-20230227111813","@blockprotocol/hook":"0.1.0-canary-20230227111813","@blockprotocol/graph":"0.1.0-canary-20230227111813","@blockprotocol/service":"0.1.0-canary-20230227111813","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230227111813_1677496710758_0.8250009145185175","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230227152050":{"name":"mock-block-dock","version":"0.1.0-canary-20230227152050","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230227152050","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"26e66a0e6d0ca93beab915fcc75ac38746ff3044","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230227152050.tgz","fileCount":335,"integrity":"sha512-MWXrWlh9k14gpu5hbOqzoq4iPcRGVdgpAbQFik51LoZaAJo3DBH2DR4B544bnnMi+Bym+qD9uJh5/Tcx97nqPw==","signatures":[{"sig":"MEYCIQDCTtK+sgU6IPvTYCju32I7jmUl+fAPzsbe9Kq9/KPbdwIhAI4cw/46M+sZ3fshgwGjXlJUEs6Q/nipUTfo7L5Wy4KW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1292278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/MpkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrmng//YRZ1e1dXaaI/01F1w5rcQAFOq2hYfGtu1GEPjJhC2oYqtTfq\r\niSZ1MCgiSrUxaT38dZzEz0P3/9VzS9447zb2wQBzmdPAqIzsCiyAFMPG7L1F\r\nRLCNA++Y/i3+5fqmtdxVxq/MEbm/1i4hIdrpd4WpRx3Aow99rHjTPxdZN+GJ\r\nflaDbc7x944QdyboxiEVp2ZfuNQR1bgLoLwL8e/DzWgWZJk89r5rosSc5Azy\r\nHuJkalEAcnM23dhRtkHB0OkIPZq02HiQ23tkRTTeqhiN2bDb8qfGzSERLmBQ\r\ncKRQok0NNvzitnQqmbxyDmaa5NIx6vjtH3N2GxfQQB6hU3zH7POoH3/gOP8v\r\nHyo8ZTjXS84gRQT4jQzS5ffx3fBLbpccUm8f1eVpc2dQfQ8knorWluIwNG40\r\n3gWOT0SPz/FfAym0rOOO38KJBXHJN/lygIHSYmAV8RCype4HMQrZhrmRzj9J\r\nMyflPTAuEwICBYua4cMKk/kRaF/f86XijyYDjzog5F/K+1h4xMIf9znL7llk\r\nvdhmvtGDY/6Et8LWEGK0AXe6Laj+Ijpw1ClPDktgBAO77DjByMttRuk9E+4n\r\n00KtxmEgXcyRsJkyVOsYtfQTUlga+YMfI0u7HulppmdNE0+7ho/0qdZ0YRpD\r\n9rdd0tUvFDSHdBG1/QE9cS9AD736KpqSASA=\r\n=kO7q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"14ae73a871c3c091b0379829913b1a288856b9de","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0-canary-20230227152050","@blockprotocol/hook":"0.1.0-canary-20230227152050","@blockprotocol/graph":"0.1.0-canary-20230227152050","@blockprotocol/service":"0.1.0-canary-20230227152050","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230227152050_1677511268240_0.022808973313184433","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230227204452":{"name":"mock-block-dock","version":"0.1.0-canary-20230227204452","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230227204452","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"aad4d828532eac5f4142725f44cca3b790efd981","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230227204452.tgz","fileCount":335,"integrity":"sha512-efdvY87J+3AkWhAOch8qawThLxqzFpHs5Bfx8w45sigFfvJTB/yR/JcKxeaBkNFkz2YYfIbreRphK0sKncmeWQ==","signatures":[{"sig":"MEYCIQDmYaeXwNu4vYiMYaGNATZA7qb4vy3cE8A5qsvlyM5/DQIhAIujr29FJhzZrtryZd7XlntK1IUWcLmicwQAFfNWGKvV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1294203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/RZXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqtZw//ZXK0BRUpLrfNAPwmCJiKz5zRteG+LJe5aYvHm8PRn6WD1+XS\r\nqb3evXO8dvE+/2TCQr//GZZdxFW1UbYAaJYnU8CBxs7wUCGuCQZiEQB7LnnJ\r\n489wGOSYAhl7GF+yDDuK+BdLSDKL/W2UAQ4QaVfFshvILJBMISlF0BPCMrey\r\ncSHUbcr3HxUrgIzbLkP22qSuBM92ctCASwZ31B3HogSLDE+6iE+a6Eb/k67d\r\nyWR58mgy0yxXDl4I0ocjg2IZN70/uzBVHbl2b9OZSOj4UzkPTObNk/gsNazH\r\nK+Hp3nNQpLUfK6WP/jO3+C6gfCbAhwPwHanwBSXt8Pq0wjQeNQYQmgSLNVNL\r\ntammwY/uhRkC7HpYMVza1puXy5b1zZsUK4TeeoFjWQH04D2n5u0vUrRDUJPC\r\nAQnW5lm6uKe/cnl3fFVPvdBYLGt1lqNC5byynt3lpf5EVnjJHjnZ0RdY2pHS\r\nLhNXZjZVv6F62DxGcKFsf2z7FLp2EYrOdyDU7uVUuAN5c2jBKLq4IDipIvVk\r\nOCGBtYOLEsS1ugSBUA7wthLXB7LKmV4yNnCmb5piUamn2eQkYj6rz38N4ILX\r\nrChJhShO2jA/UPj2Msv48tDv1xEy9w158i5rjgmTXcweDt6PSPnNvJ3LVc+Z\r\nufsKAsOomf8jWsbPlbM/TYCZQ6JHkjj1JAQ=\r\n=NE3q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"73e980b5532bf8623f2f49dfd6410e65af10f79e","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0-canary-20230227204452","@blockprotocol/hook":"0.1.0-canary-20230227204452","@blockprotocol/graph":"0.1.0-canary-20230227204452","@blockprotocol/service":"0.1.0-canary-20230227204452","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230227204452_1677530711150_0.4924251916487459","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230228103144":{"name":"mock-block-dock","version":"0.1.0-canary-20230228103144","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230228103144","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"6b43e0a325bee6d48cd214436c25a2283dfc15d8","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230228103144.tgz","fileCount":335,"integrity":"sha512-L54bSsKrOZv11g3OiXCe/5M00ljVQrvU6jfQ3bRiFn/Cg9JiR1G6ry682EC2VUhyxyvRhLrTN300jAbWjq2SeA==","signatures":[{"sig":"MEUCIFmyMwWzbIKgdGNhui+pfbBKeoSdzykdpiYzDbZj1qkFAiEA6YziFH2aWIhuJ+tfJdGBcx0+7qLAjwMqEjVSez3rY3M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1294203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/dgjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpp1w//XnzpgD9TJtBXgGencNItKyqx1K6vLQIVvZIt1lm7Q9/BN5wu\r\n5pg/djScu9UACeZShMkfow3MelCytiO2yPYKvvCFlpyC3G3GXeb3b+tT61p4\r\nao2h0/y0UZT3lX0rke2hiq/b5OD7oueG0/uc1dtqDhoilpyewXWpw1FamWyB\r\nJdPBNvKhODeAuCxNAjuGg4FUXIim7m0u6jcP2KakcHYiT+UyW2RTb7pK813r\r\nWn+K/fcyMxsOz2w8zBfGOeYRFxpGBmTgivBrxROgdc+fASFPILj/r5zmBCGV\r\nIjGPHhd0IKFBbTqz/x2sMRbe10hMVWoIEiQE8T6TRYwMjFJD8vTWrlvFBi5C\r\n3SlKqUhLQDTqNCM30i81iX4hDQo5LFZdqtgb5S+o0ksFZg7azSLnSdOWW6l6\r\ntUcR9W/d2hhFNOR770xCFgJbat/jERCtqEEOY4MJqO8JVNyZAcugIlG7fMI5\r\nFuCK7IL7WJQdOSrfMzx7qZJxyH+lJYD3OHPx1Jiovgp4P7UUrpe1u1hL+1E/\r\nYwEwu3sLxr9J5iNz3ivvETVnRvvtTH8azrkYHAGi0IcZYuFMlwfZ7Z4SQHPm\r\nXqHfPgbfM4GVrfKMrwm8NlfuXNVIdiv3cePgNqX72BXRx9SI4C5QDMVa9ohD\r\nVVlFz8jdo3XE+ISMAoFE/cfyF3efftimyNU=\r\n=Nmfw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"253c2358a373cd21701503a626235e6046169d38","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0-canary-20230228103144","@blockprotocol/hook":"0.1.0-canary-20230228103144","@blockprotocol/graph":"0.1.0-canary-20230228103144","@blockprotocol/service":"0.1.0-canary-20230228103144","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230228103144_1677580323473_0.5015606026763424","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230228184514":{"name":"mock-block-dock","version":"0.1.0-canary-20230228184514","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230228184514","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"955eecbca9fc06fc8d1a0f9b45e0571550787f45","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230228184514.tgz","fileCount":335,"integrity":"sha512-gqElryb/V6U3pJJVLyUCqbjcknbgcaZv/BfKA6/orX0/1ELDIeb/QZrfpTbqvIHErSfHEtFl5UDP/LOudaBpQg==","signatures":[{"sig":"MEUCIHnaYm0dOEy/2DXzAQZ+iW6LpwpVXDN+GXu8HbgBvB/qAiEAjy+sYEbo5UCC7MpXNWlb7KKYephQWDyugDcE/Z0i8yY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1287546,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/kvTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr/QQ//cNLok6tDY4eUWKy437DZZIaFqbCpgAtTvpNHXsejNSJEvR5g\r\nyjuw9wa319o4G0tj74mzWFZFn5rrviQm4cgVhAoWxUUy8CJCMeqISjU/iqsr\r\nbM/75c30J9gACMzy/rUXWe/IwCVfZ1kjXikkdHI1SAjLiPW/RHEwMC5D1ss5\r\nswuLZvnpxNWW3QT09l7Xo5s8oAn0umuWke7bnwQ9ctTe85VjSOImIEs2+gkX\r\n7/u9dbweqa7HrZpIosDOcoYvOilGcYiH6hmT67ypMi84s7sKOE04R29rjYGD\r\naE8mfjDcS2TeK9Tum6qagN/N+Z2V/V+UM87keDzHF6diZpevTVoqOOD0xmIZ\r\nF0HXRX6yC/mwOoJEVzaJhUpPGJF3hqT9VHmuYX7cPfT2WBHVOkKxs1Z4kQok\r\nNsCiaRCcauNcJUgB8UosZElBA9gA9OG9gsTc92ruqn5g5RlNw/xF+KhLyujz\r\n5rxqwuI7L9az10MaqS42Y24KsZAn4Fw07FBwccX/kwE1vsMwvYC51NVD1z1H\r\nAceDb8JUtQzskxn3Lfmkshg9dPvVXUkF5bhIuxJkHxQn1r6Ie+xbM5rsXr+A\r\nutmVL6Ui5HJdcLWDqM7Waiak2ioVkDwV07uD73kzASzGuAuVn6+XXtjjTB0l\r\nCjaJeoxE+I/p/L3+w2J7AT4dPsnZ8oUIe20=\r\n=doBN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"3cd858fcb19e81ff8a23a1b754ddaf44a740416d","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0-canary-20230228184514","@blockprotocol/hook":"0.1.0-canary-20230228184514","@blockprotocol/graph":"0.1.0-canary-20230228184514","@blockprotocol/service":"0.1.0-canary-20230228184514","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230228184514_1677609939215_0.8737337463857575","host":"s3://npm-registry-packages"}},"0.1.0-canary-20230228220237":{"name":"mock-block-dock","version":"0.1.0-canary-20230228220237","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0-canary-20230228220237","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"063796363f4a440344e5ce8c715dda97d78a950c","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0-canary-20230228220237.tgz","fileCount":335,"integrity":"sha512-ObJ4pHnVyuvIh1lYRjo866ihNF9KnP85QV7oHktCjTZg9kuvbLXKdctDBn9Q4zzQJL87JGBhLGYpG6ZKxeYc3g==","signatures":[{"sig":"MEUCIG15Ueuxn4CD0gyNT69WibgBpfmJa1IuyM//yrKVePN7AiEA6bs5+hGCIswd2/KyQ3B8RGHviocQeeSs0KHLtC+EByw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1287546,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/noQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqrRw//RuuKdeZPwLRNnmKyMa54LnqBLO/Hcs7MDZIMnJUY//wcTZ28\r\nYlzYkuaOu7YKFsiFrE969bIyET7YPKCqbfeDTWpYZqkSJR9oEGoid/azTtXp\r\nT2BNLq5n0C34BdeorCtJVSHfFwK6BWdf4+Fd5odMbi7EG0ugwACxvc30FMXs\r\nu7SVhPF+ZHAtfWzWSQMvda/5SF1BWlWJzNEebsR2sSjwQjaJFhBMGTyUPjG4\r\nCGtHgvARzyF1rpk9tErB0q994I05c5nzhPiR7b6O9nTDSB3DK3kdSL6cMrl8\r\nt2ai2UcbfUPWQFL8qpzvZ+LLxI3XWmAoTWYKB47rIYkc65R1V3T2WIztU+GY\r\n8E7j/xgr6E+iZ09xpsQ0zQN0AsInLJ9X8mpmCq2Pq6yXThaeb6IcR8G18OAC\r\nn0Q6E5pBQ8LAkUj9cl89z7uoeE/JE+unY3OaHRCDOnsAkM57xz4G3SlUGFRg\r\n9pkK9X0ZSaD+qpwkF3Pga9V1zlGDDLkYHg3ilpLnL9GFOwIRscxic+jCdjWm\r\nbOKthTJiaurwrhKEdXRJdHD+A4P+oKVcahd5lfAqJNIPsSA289pNkVB6UZdO\r\nMC7S+bQZnPBONqkBoD49HkWZQ9/OZftYBS1w30Yc1BISccOi4jBDqy35iFiz\r\n+p5OhWQg0xNrsNAGHRaplNpHpjnwnHgTwn8=\r\n=dHKm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"904584376befa6b9d2eff5e5f4a4c59e506bab0c","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0-canary-20230228220237","@blockprotocol/hook":"0.1.0-canary-20230228220237","@blockprotocol/graph":"0.1.0-canary-20230228220237","@blockprotocol/service":"0.1.0-canary-20230228220237","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0-canary-20230228220237_1677621775999_0.5977194280431384","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"mock-block-dock","version":"0.1.0","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.0","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"8a097b51867a91c914501424379324e17071d9e9","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.0.tgz","fileCount":335,"integrity":"sha512-YqXn42yBFj8dImV0aGYmWjP4MCupScrThG5MozMH2ikBk4UEZAbSSrJ8pzaTNYLTh+R+Y5QOT8vHf9DjxC+RIw==","signatures":[{"sig":"MEUCIQDufoAiAnZMYmJSvrzq4x+/VGsCSwQS3IHWv4OKKrp1CAIgCNSZVFFhm79iK063yMwPilmx6e8dr4EKt5T9oF2z7d8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1287432,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/qJ7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrEPA//fRFRVClHI++491yUyftt600MYeS00iLIW8SmG+Lrtm4Cg7wf\r\nKASNvT4eRfPBexnNRBm8L8RgWQePQ6OkkGnuEyhDJJh0DP8c1nalLINxDPh1\r\n9wnebe3jTyjIPb4i5NpOWbQXYN/2/tOibGXFRGxcaMbyQGBr3g3u+wnXm4Fd\r\nYoQlwlCsFaGMhy0OsKnQSKr/E29T6JGQ270ytlznkrgYA/Xtj1BMFazNa8vd\r\nC66OvsTXode0xUFOL5q4XjnLWlrQYxlPC0CpTKBvTv1RHtlaNGr1DFbXJSwM\r\ntyS2oL/RBo4AvpkogfCXp+4+ltdYzRjLiZtMASbPUANYRHD1sVrNIp/niQ+B\r\nMx+VihaGgM+asgzENU5P+KkSkNTesThEbfusacc6Y9qelDqR/qLn8c6PFOEE\r\nkt9sVr+teEZLTnEp+buFt+ra2Lj2aiwk95eVUOZhZ2UtnCoBwMQXpRoBNDVs\r\nb1ZArmLkiygHCaNFJ79Oo8HJ1oofRbtTxWhZGL9R7gf6e/WXvIueS0xdFwZ+\r\n2JeglgJlTcs4JrO+pYFxJ5IDTDd1X7w8wo5MC6D4jM1JBlhNi4Bswhvh+KS5\r\ndSRN/UF2XeCsv2Hh+2RyIunAXd+J4k6/hWi1Y9knJTFQFWYEXmdSRN5GbYjl\r\n1vA6nXj4JuBvVqiZXnQUvlrk/IFub95AcfU=\r\n=f428\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"84e3ff36e2f56d315943d93ab0c9fec467a4a4e9","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0","@blockprotocol/hook":"0.1.0","@blockprotocol/graph":"0.1.0","@blockprotocol/service":"0.1.0","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.20.5","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/runtime":"^7.20.6","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"7.18.6","@babel/plugin-transform-runtime":"^7.19.6","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.0_1677632123018_0.488241419571126","host":"s3://npm-registry-packages"}},"0.1.1-canary-20230306175645":{"name":"mock-block-dock","version":"0.1.1-canary-20230306175645","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.1-canary-20230306175645","maintainers":[{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"},{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"a0ff6f504e75bae3010988dcd32241f9c9158a3a","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.1-canary-20230306175645.tgz","fileCount":335,"integrity":"sha512-MuxNH6IQcJfmAv/yTmbiUVWB0Vk5p5eCeDgGt1MgKX4STjaXiJSpSKptJOv+pmKVNoha2f7fs5vsS9Et18bkBQ==","signatures":[{"sig":"MEUCIQDj6t9itEzwXlF6TzcokLcLaf2rHWhVHWrPHzYx/wVM+wIgMH3Jmwp1wYaw5HAFcheXZoaMh8lTbrnpeYsc2UsVHaA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1288331,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBilrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrOSg/8C0RydjVzMmC3AlZ78maZWou2q0PNAPxNmWvxl3ZdRzoCRdJi\r\niEhdP23EsTqaAMf007vJeEH1nWU8g6ZclPXf574XkAvW4bZKmm/EV9Ov0knv\r\noxpTXkoPybZE5fF2qoRBbLsCkgQHycXfxeYRMpH3+4qwR/+7rAdvIwznd8q+\r\nYehZNPyfFwCP+/hlz4i0jNHdtmIJQKZ9WLp7VsXJs834dU/gT4FjOQmyF53d\r\nM8eTclxws0JFiQHpQ21bBEusoLBvT9uoJ+uy6rGOET4rQ4L3wFWPu205qg4H\r\n8cK3Nt60sOffBBFYgfXmcXMX1ZGQdLrQqtgGlzO5+H72dGw5btvpQTobCv7t\r\nBsScAJ5iJvYplSphCMECZlkVR0tM1bgaj1zYxD6TKKzZQ+QhsV/ser7CB6dz\r\n0RfUtBvy0UML/g1nmVPWvHjbvMcI9r9cdr3BWvwnL1dCfsWmkA0kJPVNs0LS\r\n90ilxSE70eyfrBeyKn0w8DCXFjKSBIyNrVxjsgYGbYBFVw7qoCyVMMbR6XdW\r\nFO/x88LJmhyISAPKlRy8afdS/0v9xdWg8iHZdlsHaLKf5XjLK+9lGa/oK8dZ\r\nJCSoOTPuDwLXQ2mcjQxCItHJqcqvQ73uBS+14ICh6q0JPEWKYZ3UuSHKdu5W\r\n7dA4tyirCAoN87Tpe11TOV9IPnAQpXV2vi8=\r\n=nyaz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"e20d07e8ea624145a50862f4ee706f04a4e4a1d3","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0","@blockprotocol/hook":"0.1.0","@blockprotocol/graph":"0.1.0","@blockprotocol/service":"0.1.1-canary-20230306175645","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.1-canary-20230306175645_1678125419278_0.5689397036126684","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"mock-block-dock","version":"0.1.1","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.1","maintainers":[{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"},{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"b4dcbbd63ea027b88c1508a40e18f17914066f8e","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.1.tgz","fileCount":335,"integrity":"sha512-j3qeNdRS4xfOkseI8uv+3iVG62IiLv/bizN842Ombxpcq52GkoaHgwQqWdzES6U9KBUCFViBLMKD7+VxtQecEg==","signatures":[{"sig":"MEUCIQDrQtUv50aOKZNUBG9jpqRkVmkmcPVQwegTxTfKtZ+UFwIgLvs/fiIEEX1p+qEFJ1yAicJj1nFLRLB4Ai4jVCHel4I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1298109,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCGYVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo0tA/8DFjtRswWhIoqAW5P25L0tShgPD3EmsxMTZYld/CZsEGONL5U\r\nTJYExkvhpBXQBpMs+EJbwt0DS7R3dpA8UkkKypbxuVyCh7MFChJwgrfvbtQb\r\ncAlaubuuwnrPP6HzJr6giciQ035fT7tT13j97sH6FIXXs7Iu9fkEgkzhUMGk\r\nKeUCzsJs2RYF/C5iyMm9Wvt6V0FaIVHzSpNtS00FIWTaz1jh2NS/W0t6UXBe\r\nWeQbul+y3TT5Tgbij8mrcRuuM+ublg/Q3QsE9yh9QE1NUGcEvZku2CgJqB37\r\ncmcQ/DlmbEoPHsoLTpOGZj2fKxScbOs4PnXlA1l5y+oaCvxuKiIhYHXOHBbc\r\nQisxfqj8rZZcSU6qOnMoej7PS5BAHWiCvdsKFMbhsue1svF6q01zlUTBxKg4\r\niiGqGf0kUdhgst2TvevfvWbyhRtqnRHHW9zOFrUwhUBNKmSDSN5I9Ctiy8Or\r\nzW/ynJPLPcTyMnai8Crsjfw1vNOLk621c2qSdP9LmEUz4hqKDo4BEo7oYKL9\r\n5eLKyWmcr2AZQqMgAetFgwQNMEdl8GytHhbO6/dgmq5rEpGNFVN9egiF6fkv\r\njONwnNwU2LfA8d9zyqGA9OQWsWlQ2r07QrZ3GmKgmfTVEpCda9hk1u1wA1Gf\r\nebW4ve6tyw2gOMuck7UXhSaK6auIgUw0ASU=\r\n=dsW2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"aa07ebbd02981889900a8480265d5123aca46224","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && yarn build:cjs && yarn build:esm","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:cjs":"tsc --skipLibCheck --project tsconfig.build.cjs.json","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","build:esm":"tsc --skipLibCheck --project tsconfig.build.esm.json","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"^1.0.4","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.0","@blockprotocol/hook":"0.1.0","@blockprotocol/graph":"0.1.0","@blockprotocol/service":"0.1.1","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.75.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.1_1678272021139_0.6299480794423662","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"mock-block-dock","version":"0.1.2","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.2","maintainers":[{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"},{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"e4efc39b817387a3d2b6fff2a1c657e8972d0e07","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.2.tgz","fileCount":172,"integrity":"sha512-xceLc8zC9JI7Qn6EburzijCOgCyKf1PlQeOuYVHUGbVqyaJ6jfb7rmMqUXKtdLz+iALRe6ONs9ot5SSdIknbwg==","signatures":[{"sig":"MEUCIQDhfXL0AvhpaRmBp/NlHoFyukAZLYBfVDP02LghQKnG1gIga/ALwDj6jbb4hdl/ICUzhMcw/oGkv80/PrByI1YtMdk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":649402,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEttkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+VhAAm0AR8UwlFXGtO0lpF/Jb0NwowNAZ1W41fr/JInZ9BGvd7nHZ\r\nph7c+4lCiaWLGEYxj0ayCuMDjLHT3iGcE/r+YHeCsyQXlPmw2b9ZGVyQRIss\r\n8ch9N6srXy5YqU5hgOuf+6fSPNyRzQPGXEgEILPmRG/72/Oj+KaTQZP4J6xd\r\niu16+c34Fjs80+LOzPNeTlRe1xz4IZLpelhnjxNUWmTLdKinYPO6ikKjKEWe\r\nhsrh3XeAg4Uc1Y9cT/bHzav6LEB78R3aY8TGYB9KZkZd+I8YwGzWWXmeg1pe\r\nohWvz6WpK+yxvKSnQphjgj1zwdXiIn+xiodFFp7i21iIcZvJ556GjIa7kw17\r\nQGT4Sx0Zk1nwuG7WQkY2u8PLlCDD9BaMmiVZog1zUWX3LC/cujXwRHrU5O0W\r\n4M0AgcYAsW8Sddve6rnsJ09rHeSiB0I7NhvXKwSfDn+nBvVUMxOGsUOI8hSN\r\n8CG31fF256dJ2regqvRbA5VLjdPcwmg3UdBrWUMVjzMzn0Bay+KiQXshybjQ\r\nomL/vaOke57imFKmgxiqigxd6ZAM9npS0cHtxJaPrhGmlke30DCEWgo40QCr\r\nAGl0SQhN2pC3xCDSWpdWKYerKSE3pIa1unZmZvs/18nSwZs7o1aD39fzv7Y4\r\ngF50NJbW8jpUO0+B/7SkFFB3h+rQOlyZ6sw=\r\n=tFfB\r\n-----END PGP SIGNATURE-----\r\n"},"types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"f4aad130c59e3d2c8bdcf154322bd1b1dd9214fa","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.1","@blockprotocol/hook":"0.1.1","@blockprotocol/graph":"0.2.0","@blockprotocol/service":"0.1.2","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.2_1678957412316_0.3280043801445085","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"mock-block-dock","version":"0.1.3","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.3","maintainers":[{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"},{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"1735f8bbb4456c5b9c02194b360fb5ac5d5f5980","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.3.tgz","fileCount":172,"integrity":"sha512-SiKebJBFEYLhg4NC+3p7FFQJHG5/8+VbmkbWdlqiZ6Y8lMM1uyqSMDHaSWs7+0APeWrFlWV4YJUT3e6RVF6AjA==","signatures":[{"sig":"MEUCIQCprfXPurm2KgI9uFSxde/xbC0mVLOGbul0wQ0FWpB3FQIgEx5J23UOrZH4QSSm0rUi3IzxAMoJaGLr6ycnTFLQPWc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":649402,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkE2r/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpSpg/9HJcYVGJ4QuCQ8TkM/UH6l7mA6Eim8wUwExjKLBErT/k84EsT\r\nKBUuFBhUX46Pt8zfVt8Lk49Qq9z7S3xfk4vozIeXrgTQDWJMwaC6fbxKP9WQ\r\ngosuS9YWSnlHETH2sAoOrmmx24hh+OEimwx7NmDW9ZHoHkogFbwucpjJW08U\r\nvse7k5UrfML38PuAqT5PF+xKiK049peDQl6V41yfTYQdZ6PFx7qUA3gugeGE\r\nRM5Ilw1//T+x8uOxm+tLA3KAP5swCv/k+cGyNHm2HmIaSPtIg+W2SJQ5WGtZ\r\nVWRBhkFKF47Xw1HnyJtQLtNNnd1ExYGOnn9169VSHLKsCjW/2jXMGQ1Ogac3\r\nfdvuUCa5Vbz/anpKrgnEvKrCP7D/JXHwHsrJMRgp9P1+D+MHkCH5nsPjMdUQ\r\nchZTav2O0RzhYVbRmuGmguLsEMdLcv0f1Wkk8beVbU1tU6AKgKl5QFTLZQ96\r\n1JAGk9LPQUFfrCpYblL8dZPsWBfAIGXB6i1SvSl0DMgakBUPg39DCvJ7N/uY\r\n2sfE4oJcVaBQ49blXhh8fF9q9T0DdrPm5LKvfz5H58kgKLIAxvQAC1pRxJE2\r\nwqERRP+dRmeuSAnl971vMaN77ladNTEXnlXE+fxepDCYtRDoIFnmJkHhxn6d\r\nQGsPwgIdVLsxMHqolltt/OSKXz+daFX2baw=\r\n=lHz2\r\n-----END PGP SIGNATURE-----\r\n"},"types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"d81b1d908aaee2f7fa5cec48fb14112769c8fbc3","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.1","@blockprotocol/hook":"0.1.2","@blockprotocol/graph":"0.2.1","@blockprotocol/service":"0.1.2","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.3_1678994174842_0.731099037928769","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"mock-block-dock","version":"0.1.4","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.4","maintainers":[{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"},{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"558190c4fd21687483c12a3fc03e2cca25352f43","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.4.tgz","fileCount":172,"integrity":"sha512-rCqOW+rghHL1Sc/Ii8jldIx8fxLKPzJ2UUKEc+Oh5LQTTMvucv52bLK2mJdqWhtWQ+6EH9Gcod5bxN2syiHVBg==","signatures":[{"sig":"MEYCIQDBpvjdebfFmVSU3l8r+ty+Ts518wftNZJ7bXfMo+7exwIhAMK5TE0YJ1Qfd4+OheWreuCkZJ8wxi4vBiy6PsMx9vxt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":656478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHb1OACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqdxA/9HDN4EgCwO4dPd9bclinu9BF5glLMSqa6n36PPMd1yK6a7weQ\r\nuBfR9oLrq0dk+DvbDX64ThLXbf0K08/9f5JA1bB5FOyA2IZAs+YWf5qL3vIR\r\nSz4iFFqS0DkO6129bvloJt3RG8Lo038TpuQJfeIxTalTWGmzIVL9crWlvX34\r\n1BAZaROQ2sK771YP00mro2RQ+uc6LdGTnccR9xpJQXFiyrZFl0Af7plrCPZi\r\noXR4EAHRk9Y50w94mgDGeIYWoTBUDTSaHz25Nef26pmw/YJjNOOsPuhiLLMm\r\n3bhFjO+TPnZgsapa9ZLRixAPAswdTTbw6hTVQ9Nv932EKuSZculYYZ/79uAG\r\nxHb1RthxV241/lFqzSs2+joUttgS63+zwYML1E3pPX60vSjfxSRg6roKeUBc\r\n+6pJghn/IpvZWGrg3shbY+zjdsDyMNXaV9UqxigExe46vF64ePGSfJ0EpdN5\r\ngllzOO+a2C/4sMI2fyLrMIHVEVn9bB9CGmVq0wPUpJPjXgKPE+sn61fhJfQL\r\nitOGwY8TiLUQw6JNc+jsUWdePd9f5z/AQN7RHVC9p2Hqk2t9TmGJWZ7wYYnu\r\n7MvGYhiCnaCpFqra3nEwqfFUSIMW1QQxQ0CxkNXKTNmmjXxiWXTJwBdNt5zR\r\nR64gIh7idachbznfu4zOSs57W/8utzSlKIc=\r\n=nzi4\r\n-----END PGP SIGNATURE-----\r\n"},"types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"7fd819ad5a33275f197b2ad909b7a1b2a2504d7c","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.3","@blockprotocol/graph":"0.2.2","@blockprotocol/service":"0.1.3","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.4_1679670605912_0.18566068536598324","host":"s3://npm-registry-packages"}},"0.1.5-canary-20230413145831":{"name":"mock-block-dock","version":"0.1.5-canary-20230413145831","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.5-canary-20230413145831","maintainers":[{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"},{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"3f81576dbfd31d625c43416df0d7c119ba940484","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.5-canary-20230413145831.tgz","fileCount":172,"integrity":"sha512-P+4wJ57FHbcUcOZQ/keLGf5jS0X3wEE6bNnXEnSkUDPRN6jYhbm0frEk9EFe+I+wb8Yy9SwhJNayOvACYBSjRg==","signatures":[{"sig":"MEUCIQDDPkBXwVmSQwOjAHfgMfooP6AugRE8WUe12XJeSXwJTgIgfnuNpDDpJPopt+pK5BQNZrcQ+LfRdy0NIrb8oVpcZMs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":656588,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOBioACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqohw/+MzD4UncV5U3zQYdevnrpnhNZv29fp2u4inkUO+VT/yw7DcsX\r\nnCKm4H/oAUD/M4JWqFpc5kkFFFL22NEEicarTuS5q/BTBtSPLaNHuC7y7zTK\r\nKXfCi9pqxmsSGcmpHKQRWccUhDA5ilZa+fmSCLTatUdCjhO1Kt54r5tkQDZx\r\n76doSWyCFp2tjKtwGjpWCdwveESsXFiRqiWQMTVjrVReJjXpd0E8n7mwEOgj\r\nntaUF5c4Wn/qj/0NeOisiFk0qqr3Xvl9AMcMOzIPO3AqDjlzZsr+J1+I6Xih\r\nDAut5/17gwTab1qoBl8x7EQZXuxrXKU0tjj1OBkQXHoXfNEI0kS1Qk6LRMvn\r\nYfe3keabD/eZDf59nlKui3nq82tjyRIFbt8g4Pw0A0DOCRvGhN8RMzY3Rh/2\r\nkZnfVtu/FTY71RuzvusgT7EmJXRl4Y7hAHbhPJJyWJ1qxv32fPbWMAiiO7pM\r\nEGb9C2J7sFNuw7gqaDyJlFg6gPNB5DNUAxwfyTsO3NLk4Zfe9eWjLuPc7cij\r\nEhn1tXcHuCP/g3Hr9vlCBX9UXjyC/3vptAkXyg0FEBYu4qBQEsOxysJgcOGE\r\nwVi1auHJbjQU8XUUylzhHXPrmuU++rXJoVdCOhZB5RhePo2vTuc1XIYZDEpG\r\n4lwUbdSVALBrXHVoX8yvgg++1Tt1NLN0oyI=\r\n=6SLE\r\n-----END PGP SIGNATURE-----\r\n"},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"fdb94a862d1732a92ef37d2941167049e2839b96","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.20.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.3-canary-20230413145831","@blockprotocol/hook":"0.1.4-canary-20230413145831","@blockprotocol/graph":"0.2.3-canary-20230413145831","@blockprotocol/service":"0.1.4-canary-20230413145831","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.5-canary-20230413145831_1681397928582_0.5476352010966679","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"mock-block-dock","version":"0.1.5","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.5","maintainers":[{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"},{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"b7a57152c9ea75b9eee7063164fe3fe710c30db3","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.5.tgz","fileCount":172,"integrity":"sha512-0Yx0LTHB8U+fhZFgytwvyuK5MsPKiEI0uWx9az6oDfAeVUE54huZ7NNDXBA6U/TarGBNZDZ3oT0g5p79aFPOww==","signatures":[{"sig":"MEUCIQCO11hWWtg8erOQ33dGMjcfmP/99IiJE/k3OCtBl+igBQIgNa6Y1yAqLWHdXh+KRmr+O8HyorenSAum0xyljBIEaR0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":657181,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkS9gkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPDw/+MLHjGaoYiw6S+d4XOoCkixaQENS3jIDEGkPBQweiuWeUo8TH\r\noGSdKPpBi6fxDrrI/A9F4bQmr+GwO1K5HFELuATgznKWxykTW8eQbyE2mP/R\r\n9auZ9j6mGQZnlkatQyBbRLViM/cckFMoMuM8FyWaHxSKhgLYgCLm9PIYNefx\r\nBsGtw2itAS7xE8UoTMHypdzLmU2h+Xs6hz/hEwRfLr+pZN+J4mQSmk+QLuXg\r\no38ZCN6VtgbXpPOiIwmV+zl0INCsetFfBwJA3mc81jUwUWqmTA/B071ZbG5E\r\nJS5Bi4kghaDFvkAOiuL2CjXyLaOEf3LvgHWTQVxaUWEVUWeAsKVTklpon1S7\r\ncQG32xZF+Vt4rplIVPcEv7XLpx6B2BxI4S8Ya907JzeNKljQ3FtSFDw3acTN\r\nyeYDsFystXsNpJTROm0msEtpniVLGuHwoO76yEEQJ5rytDwEyIWEDVnrJ2Uv\r\nWNLP8Bwkzr1xQYGvRClYhsNNaD9Cu7wwsvtegxguNLJZtAUQn+SmxysrbL2C\r\nkukQ2uMXa6y7079rTRGgCsC8IMtlHqmdpkxiB4jzB4+4yyzRSXVz3ndkTmjo\r\nrfnVpSl7Q4OlptJaSFWgYr5rwjReKpLqmeCapvF04Jdrnmttm1LIKgk9h3RC\r\nyL8TbcgyMBgotsXeHzcBrb3yLShx8zqH10E=\r\n=R3U5\r\n-----END PGP SIGNATURE-----\r\n"},"types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"3e49e00d7055b7f27c1af238da0d6b03992f4daf","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.20.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.4","@blockprotocol/graph":"0.3.0","@blockprotocol/service":"0.1.3","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-class-properties":"^7.18.6"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.5_1682692131960_0.8537068482252457","host":"s3://npm-registry-packages"}},"0.1.6":{"name":"mock-block-dock","version":"0.1.6","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.6","maintainers":[{"name":"nathggns","email":"nat@nath.is"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"},{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"kachkaev","email":"alexander@kachkaev.ru"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"3532feb4c900e12befff7bf901a16194b7d1ddf7","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.6.tgz","fileCount":172,"integrity":"sha512-/rs8rs+Mn5absVFCFuy3gqOc1PuxpmUHHxDuHfwyCUG+kIOkh532/icFjUJd9o7BxU/hbvrkjY/G1MQLfW+eKQ==","signatures":[{"sig":"MEUCIQDBLWUMjGCljFu3Sp/q/u5u53PsZWwzRxANAEGmcSuz+wIgSqbaUSqmzZBokT2QDkDVdmswIyvBA/29MrxoCyJaq6I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":657304},"types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"a4eddcb337105444ba41d02a0bb62665371948ce","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.20.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.4","@blockprotocol/graph":"0.3.0","@blockprotocol/service":"0.1.3","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.6_1685443838092_0.13071942668901482","host":"s3://npm-registry-packages"}},"0.1.7-canary-20230803130052":{"name":"mock-block-dock","version":"0.1.7-canary-20230803130052","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.7-canary-20230803130052","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"8a507bb7399ac639440616b04491a36f34d1fc9b","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.7-canary-20230803130052.tgz","fileCount":172,"integrity":"sha512-t7C1G6MI71ezR02WjxXzP+vhIObDLieGNfFOqPLK5tAM2dTjTC98QL1IiesNWTSIAi1rKTYewfqgOcfqqt1uBQ==","signatures":[{"sig":"MEQCICr3gSdZTOYGyT6+Kb0UX1O4RtI1dK3BAG5HQ26CbenRAiBLzkQt1M5W7IWQYMAq7R/0La+liUCCtSbdz0ZtjzTmQA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":657370},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"49fdeab0241e019c2ea2d3c6c4e8c07c29634270","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"9.6.7","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.17.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.5-canary-20230803130052","@blockprotocol/graph":"0.3.1-canary-20230803130052","@blockprotocol/service":"0.1.3","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.7-canary-20230803130052_1691067670733_0.01542215891833365","host":"s3://npm-registry-packages"}},"0.1.7-canary-20230803163819":{"name":"mock-block-dock","version":"0.1.7-canary-20230803163819","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.7-canary-20230803163819","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"83b91264c7b17112ddc5db08b14194ca95b34a79","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.7-canary-20230803163819.tgz","fileCount":172,"integrity":"sha512-1fqWfQbe5OAmA6DosK2bPfNV+x2lhX+DlGo/LGN+TxQZdMV8s9XxE2LyUR6/y5dNgnWGOXDCdFy5CmRMteKMbA==","signatures":[{"sig":"MEQCIDLnOa2llfU38n+QzlM1R0khriuIkO28b95h6STMad8XAiBlLgjmZBN4lKvfrAyi+iLp3Ue/81OGYXRi2jMC9UxKIg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":657370},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"2b270975fecd3277ace89d8f70a3250032e389b8","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"9.6.7","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.17.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.3.2","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.5-canary-20230803163819","@blockprotocol/graph":"0.3.1-canary-20230803163819","@blockprotocol/service":"0.1.3","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.7-canary-20230803163819_1691080717553_0.8630125596430231","host":"s3://npm-registry-packages"}},"0.1.7-canary-20231120181031":{"name":"mock-block-dock","version":"0.1.7-canary-20231120181031","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.7-canary-20231120181031","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"5b49f4bd5d22dd47496c6e2b7dd8f36fcc255a39","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.7-canary-20231120181031.tgz","fileCount":172,"integrity":"sha512-g9TaQOjHkdVjnY8rhlWCEtgJ6Z3Z2Od8dv9F+NBkX8xsxpxRm/43Gt808aicL5tLaZbElXeH22ZouJsYJQjg/Q==","signatures":[{"sig":"MEYCIQCRffjDmEkfEqBmYjhiuMne3PdbvnhUyQoA1fgP8WVT+gIhAJ9381Sw0Q5hk36IEKE5i1aDY+EZ7PjCT81t3JwO/9BG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":657370},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"36113bf7045fbf448f83ec9b9878238005b44a8d","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.20.2","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.5-canary-20231120181031","@blockprotocol/graph":"0.3.1-canary-20231120181031","@blockprotocol/service":"0.1.3","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.7-canary-20231120181031_1700503844029_0.7099175470075192","host":"s3://npm-registry-packages"}},"0.1.7-canary-20231207113055":{"name":"mock-block-dock","version":"0.1.7-canary-20231207113055","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.7-canary-20231207113055","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"0714bb758d28ae01eecf86ca89b69aad0b81e7b1","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.7-canary-20231207113055.tgz","fileCount":172,"integrity":"sha512-PkF1BcsKE9q7P4eyJ1pzrxCJ/gL92r0QqzfFw5SdVvV8a2tXNeciUXTaqPfS4Tr7XerqueQ/0EujjzZ6DfuazQ==","signatures":[{"sig":"MEYCIQCYUIUrMygZ7m1R4e8t0d99VIveuXBAz72mTW7nxmKzjwIhAL+bxO5x/5FAIrrsSZUD/rvYHmCs8vYvZfetHp7yrcqv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":657370},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"33bd595819daf0d137ac1b2405f950f3dd81f577","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.20.2","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.5-canary-20231207113055","@blockprotocol/graph":"0.3.1-canary-20231207113055","@blockprotocol/service":"0.1.3","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.7-canary-20231207113055_1701948665943_0.2344159237300769","host":"s3://npm-registry-packages"}},"0.1.7-canary-20240108132503":{"name":"mock-block-dock","version":"0.1.7-canary-20240108132503","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.7-canary-20240108132503","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"d7f93a5d6cccdaad369fb867a52039b8b00e965a","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.7-canary-20240108132503.tgz","fileCount":172,"integrity":"sha512-coorOC7B5dC1H9rO0K6PGwbI7XPs8AYgyCs4px3UaFL25X00qo4YcTQvYkTdaPor9vKrH+lte+ethhQxPUP7Qg==","signatures":[{"sig":"MEQCIE3QbNHX88UdWoT/E+SWsIAhw49su0+pMm7Ab8tCkwv2AiBDSY5eyxKnuuDuWTDl9orsDffYBrMDtdEjpnNDquQ3eA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":657416},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"0552392b7ff20cc88cfa2faaf4059bae442ca14a","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.20.2","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.5-canary-20240108132503","@blockprotocol/graph":"0.3.1-canary-20240108132503","@blockprotocol/service":"0.1.3","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.7-canary-20240108132503_1704720313616_0.3567812808233777","host":"s3://npm-registry-packages"}},"0.1.7-canary-20240110180542":{"name":"mock-block-dock","version":"0.1.7-canary-20240110180542","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.7-canary-20240110180542","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"4d5e77ebddd8ec61a16f5e1d587ba26a4e575238","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.7-canary-20240110180542.tgz","fileCount":172,"integrity":"sha512-WgiPZFwhn0CV+LpLapzJi8deZykniA9TmmqKAInSVVVzyCqTw7u1KvdpTsEMPDIrl3kfd33eW7tAEOYmCyHGHg==","signatures":[{"sig":"MEUCIQDvIbNmk1iVR7f9A7yi0IfciAPMv58tcA6h6QUdBb0BrgIgRqBHVFymI/2W8iWLC2JZHgfcJdWadaUGF/7IsMJvmEY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":657011},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"5bbc5686f864b665e34bc767887b0e9e22738ba6","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.20.2","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.5-canary-20240110180542","@blockprotocol/graph":"0.3.1-canary-20240110180542","@blockprotocol/service":"0.1.4-canary-20240110180542","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.7-canary-20240110180542_1704909953460_0.5938323240094299","host":"s3://npm-registry-packages"}},"0.1.7":{"name":"mock-block-dock","version":"0.1.7","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.7","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"efe67744d07a83e03f0e19ae26d0fcfc4fc44ab7","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.7.tgz","fileCount":172,"integrity":"sha512-7VAE5TL5Ar4N8LkuPg/7zLRFCRYkCwRZCO0LTyjBOOigZrzRNgamPYieztWPYkPNcMVaTuCs4f+3j1HKdk2XQQ==","signatures":[{"sig":"MEYCIQCvOVRILaOe9OC/Hj7CFd28dWK+BWmvXCUhvhCJrXq8GAIhAN9Pg0Xgp2YlEZofp4ZI6sQn978pe4frKdKBH+ogj/Dm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":656923},"types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"44cecc4a5c4a9e2857f948fb1d49947675aff0fe","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.20.2","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.5","@blockprotocol/graph":"0.3.1","@blockprotocol/service":"0.1.4","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.7_1704974320614_0.713086682066201","host":"s3://npm-registry-packages"}},"0.1.8":{"name":"mock-block-dock","version":"0.1.8","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.8","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"544b46ac5112cf13b0594769f804045ec1b8a805","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.8.tgz","fileCount":172,"integrity":"sha512-W0V4uDCtDTDI+nfnDp6QYgYWuVt/3EYnZfVmGOeBM1WvWV9nSTi55ofjE4Dipwdklu/YVkNXIa1Vd9+usXjZyg==","signatures":[{"sig":"MEUCIFGv4UosRJCpJ32N9LtF3eHFsMWLvEDjiuYUhtNy9tp7AiEApPQteknHVktanSNHX7QuQvLydPfu30TDb2nYPzVGMC0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":656923},"types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"5ae03905a34e4ad28d74c5ec1b8a9ba3bc6d5651","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"8.19.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"16.20.2","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.6","@blockprotocol/graph":"0.3.2","@blockprotocol/service":"0.1.4","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.8_1706880750328_0.5813929460715506","host":"s3://npm-registry-packages"}},"0.1.9":{"name":"mock-block-dock","version":"0.1.9","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.9","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"7c5e5fd40f4a0ad52517a30a9895e4e9b322229e","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.9.tgz","fileCount":172,"integrity":"sha512-Y0UNqqMXoFYnOpg7IrMRQvrCuK5WKfrF7vWlQ7FAf6k3swFop+YHWzyaxS3CTubi7LSsyb2QE0iu2tsQ5IbwUQ==","signatures":[{"sig":"MEYCIQD92G0c58Adpu4pVraJ3hGNn/SV6mAYWbwktNP7xNtU2QIhAOtv7aNVKqxZfi6GzWyDGUXP7hx1NLMLkfE90RsvJMbW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":656923},"types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"ef0d1895bae71a57c2a59d86e157165f102fed15","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"10.2.3","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.7","@blockprotocol/graph":"0.3.3","@blockprotocol/service":"0.1.4","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.9_1706888782246_0.6913075327277933","host":"s3://npm-registry-packages"}},"0.1.10-canary-20240304142521":{"name":"mock-block-dock","version":"0.1.10-canary-20240304142521","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.10-canary-20240304142521","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"b440ceb8d68635b7af44a29336ab0b9bb631fb57","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.10-canary-20240304142521.tgz","fileCount":172,"integrity":"sha512-zsxZY1+OvmdsN7phospkQpZurMoqztCsoJpeJHcq3Pe7U8rN5z/r7/P8iHQNduWwl6VNHWLxNRJ72YhqeHtbpA==","signatures":[{"sig":"MEUCIGGylCRwgS6TkUzfxEddxwL/dRITO6CpST9D5uyzAIDgAiEAsL4/qQOEddbKT43HsmTJYcTn2wBC4iq33RRQyX9bGM0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":657006},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"8971639137f3e200a2676f12dcd3cc28388d27b8","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"10.2.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.3-canary-20240304142521","@blockprotocol/hook":"0.1.8-canary-20240304142521","@blockprotocol/graph":"0.3.4-canary-20240304142521","@blockprotocol/service":"0.1.5-canary-20240304142521","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.10-canary-20240304142521_1709562332878_0.7441981097808241","host":"s3://npm-registry-packages"}},"0.1.10-canary-20240304154726":{"name":"mock-block-dock","version":"0.1.10-canary-20240304154726","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.10-canary-20240304154726","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"983b26e65c1e6bc874cfdacdd23b47e451c60f04","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.10-canary-20240304154726.tgz","fileCount":172,"integrity":"sha512-336Toz8Do6LM4aSDLAomX7ahILifVDmxvf9v0PzfS0IGmxOJKRGPNE1jqW86j2IfBrrQuaGy32AEV2Ek5lyyfw==","signatures":[{"sig":"MEUCIQC8eKinCuRELW18a4rx6wC0jLawy3bayXcEQFwccYTHLQIgbluKZkWZughIvbLbGkLj3OuLLg9+GvEnQsq7/vdiopU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":657181},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"411a5cc5506fb4c26c8a9c66bc48fc7b4b9f61e4","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"10.2.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.3-canary-20240304154726","@blockprotocol/hook":"0.1.8-canary-20240304154726","@blockprotocol/graph":"0.3.4-canary-20240304154726","@blockprotocol/service":"0.1.5-canary-20240304154726","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.10-canary-20240304154726_1709567258867_0.49659051767574747","host":"s3://npm-registry-packages"}},"0.1.10-canary-20240312191227":{"name":"mock-block-dock","version":"0.1.10-canary-20240312191227","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.10-canary-20240312191227","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"e53d245942f2e76e329dcec7f375a7e6954f397a","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.10-canary-20240312191227.tgz","fileCount":172,"integrity":"sha512-UaBVTPBURdmwCq4BjqXUGfwJvuiu81whCi5ZU5H5F2uT4rjs39zldybY/hfGpihNE7NabbpsuVVE+aDOC2ordA==","signatures":[{"sig":"MEUCIQCjTpcxSk/tJBwu4qirwReIlBy5FU0VCt4gEN+miSkskQIgap9HMp/nbE9pDI/1OVKEYMHSfjow5yAiu4gdLDHDpgw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":656538},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"9d70ab60d7e97f1b15fa72500811ee0ab3287dea","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"10.2.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.3-canary-20240312191227","@blockprotocol/hook":"0.1.8-canary-20240312191227","@blockprotocol/graph":"0.3.4-canary-20240312191227","@blockprotocol/service":"0.1.5-canary-20240312191227","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.10-canary-20240312191227_1710270761593_0.4627154100311406","host":"s3://npm-registry-packages"}},"0.1.10-canary-20240313122533":{"name":"mock-block-dock","version":"0.1.10-canary-20240313122533","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.10-canary-20240313122533","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"1e7fbdcd913058ba4f217972e93e4af974ff7993","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.10-canary-20240313122533.tgz","fileCount":172,"integrity":"sha512-fabbvYVBKSMzyAk8egYmU46UGAqEqcVM4cguu622egKletQN6DJVb2MVq771TKNK35rTrMYmArO4lHNiPjdNIw==","signatures":[{"sig":"MEUCIEAqgmN14bMlP/JV3t9yvCx8oZyj6kRKseD/zaP+9301AiEA/8HwQqCLEL7S/vXY2H+6v+u57lV2IbVIMhBXGMXDvDU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":656538},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"7d35c3b0c18dfd381c4273352c0b72a1c7f903fa","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"10.2.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.3-canary-20240313122533","@blockprotocol/hook":"0.1.8-canary-20240313122533","@blockprotocol/graph":"0.3.4-canary-20240313122533","@blockprotocol/service":"0.1.5-canary-20240313122533","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.10-canary-20240313122533_1710332746390_0.7364074037648205","host":"s3://npm-registry-packages"}},"0.1.10-canary-20240313191438":{"name":"mock-block-dock","version":"0.1.10-canary-20240313191438","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.10-canary-20240313191438","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"d2cfc15f86f2cb1524a6595863956a83b03bf475","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.10-canary-20240313191438.tgz","fileCount":172,"integrity":"sha512-84aRFdRZ746l4r30IymsPqZ58Oqey+MQ+0zVlOJs+uUEAOzPSaD35p79qy+6oWrlUFnW56MZhix/d7LKGrU+Lg==","signatures":[{"sig":"MEUCIAN8KbRQWK1G/uvkW5RCCD8Wkp+GsbT66h7xJmvhQEKCAiEAmDM4VIw31IKjk554B/1hQpKWyln9ku3Zdu8zkH85D4I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":656990},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"92dccb86c85a83b83e7d9ba5f4c184e73ea9ce54","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"10.2.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.2","@blockprotocol/hook":"0.1.8-canary-20240313191438","@blockprotocol/graph":"0.3.4-canary-20240313191438","@blockprotocol/service":"0.1.4","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.10-canary-20240313191438_1710357290506_0.2115050869022186","host":"s3://npm-registry-packages"}},"0.1.10-canary-20240314113521":{"name":"mock-block-dock","version":"0.1.10-canary-20240314113521","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.10-canary-20240314113521","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"777936b6e87413b84b87013ab82b31bf141cb6d7","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.10-canary-20240314113521.tgz","fileCount":172,"integrity":"sha512-oGWq5htdGSAFlnmEeQz7RiQvHcqxYB46Y/OU2HkUZxFo2bxzQjchcPNHQOdOF5vu2FdbuUTA0xl2EE7ooYM2Pw==","signatures":[{"sig":"MEYCIQCj/TQugYSfranU3kEbT/NvegHJuNnxeT37rq/62vDVDgIhAKSLU9gT2porpGLBod3HplrANP/aXxAC1S9mS1Hh0Emt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":656391},"types":"./dist/index.d.ts","module":"./dist/index.js","readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","gitHead":"db739916b55ef8745b11db02bcc2cce99240734f","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"10.2.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.3-canary-20240314113521","@blockprotocol/hook":"0.1.8-canary-20240314113521","@blockprotocol/graph":"0.3.4-canary-20240314113521","@blockprotocol/service":"0.1.5-canary-20240314113521","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.10-canary-20240314113521_1710416131791_0.1819322316526235","host":"s3://npm-registry-packages"}},"0.1.10":{"name":"mock-block-dock","version":"0.1.10","keywords":["blockprotocol","blocks"],"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","_id":"mock-block-dock@0.1.10","maintainers":[{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},{"name":"hashai_admin","email":"hq@hash.ai"},{"name":"nonparibus","email":"david@wilkinson.xyz"},{"name":"benwerner","email":"ben.werner01@gmail.com"},{"name":"cmorinan","email":"c@hash.ai"},{"name":"nathggns","email":"nat@nath.is"},{"name":"kachkaev","email":"alexander@kachkaev.ru"},{"name":"thehabbos007","email":"thehabbos007@gmail.com"}],"homepage":"https://blockprotocol.org","bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"dist":{"shasum":"f45c103ae8ffb3a243e3942671a25b35972b5053","tarball":"https://registry.npmjs.org/mock-block-dock/-/mock-block-dock-0.1.10.tgz","fileCount":172,"integrity":"sha512-/xvpq0kErOboXC/gMG41dyK7+O1jECCOaNfGxOw9gSSPnd8/HRFCrt7MGL/WnqAMfgSpDafo1Nzu/EG22eLv/g==","signatures":[{"sig":"MEQCIAUQv0zSJyl9LZQvSyBRKHVigQClv9XkgOjAuVre0kfhAiAMq6pDTVo2umoFPPw8MiJ1vRTNalkc+gcJ2DHmUvevdw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":656430},"types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"a1ee46d4277ae35d86891152a5b7ad98df97de1a","scripts":{"dev":"concurrently -n webpack,webpack-dev-server -c green,cyan \"yarn build:dev --watch\" \"yarn run-dev-server\"","build":"yarn clean && tsc --skipLibCheck --project tsconfig.build.json","clean":"rimraf ./dist/","codegen":"node -p \"'export const MOCK_BLOCK_DOCK_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts","lint:tsc":"tsc --noEmit","build:dev":"yarn clean && cross-env NODE_ENV=development webpack --mode development --config=dev/webpack.config.js","fix:eslint":"eslint --fix .","lint:eslint":"eslint --report-unused-disable-directives .","run-dev-server":"cross-env NODE_ENV=development webpack-dev-server --config dev/webpack.config.js"},"_npmUser":{"name":"hashdotai","email":"c+npmhashdotai@hash.ai"},"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"_npmVersion":"10.2.4","description":"A mock embedding application for Block Protocol blocks","directories":{},"_nodeVersion":"18.19.1","dependencies":{"ajv":"^8.11.2","mime":"^3.0.0","uuid":"^8.3.2","axios":"^1.6.0","slate":"^0.82.1","echarts":"5.4.1","styled-jsx":"^5.1.0","slate-react":"^0.83.1","@mui/material":"5.11.8","@emotion/react":"^11.10.0","dotenv-webpack":"^8.0.1","@emotion/styled":"^11.10.0","@lit-labs/react":"1.1.1","react-json-view":"^1.21.3","react-resizable":"^3.0.4","@blockprotocol/core":"0.1.3","@blockprotocol/hook":"0.1.8","@blockprotocol/graph":"0.3.4","@blockprotocol/service":"0.1.5","use-local-storage-state":"^18.1.1"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^2.4.1","react":"18.2.0","eslint":"8.33.0","rimraf":"^3.0.2","core-js":"^3.26.1","webpack":"^5.76.0","cross-env":"^7.0.3","react-dom":"18.2.0","typescript":"4.9.4","@babel/core":"^7.21.0","@types/mime":"^3.0.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","concurrently":"^7.6.0","@babel/runtime":"^7.21.0","@local/tsconfig":"0.0.0-private","@babel/preset-env":"^7.20.2","webpack-dev-server":"^4.11.1","@babel/preset-react":"^7.18.6","html-webpack-plugin":"^5.5.0","@local/eslint-config":"0.0.0-private","@types/dotenv-webpack":"^7.0.3","@types/react-resizable":"^3.0.3","@babel/preset-typescript":"^7.21.0","@babel/plugin-transform-runtime":"^7.21.0","@babel/plugin-proposal-private-methods":"7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"7.21.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mock-block-dock_0.1.10_1710852960900_0.39265041598769335","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-01-27T15:30:24.046Z","modified":"2025-11-09T02:38:49.466Z","0.0.2":"2022-01-27T15:30:24.153Z","0.0.3":"2022-01-27T17:45:25.034Z","0.0.4":"2022-02-01T18:33:53.992Z","0.0.5":"2022-02-09T20:03:06.787Z","0.0.6":"2022-03-07T14:05:36.591Z","0.0.7":"2022-04-22T17:08:02.190Z","0.0.8":"2022-04-25T16:47:05.849Z","0.0.9":"2022-05-10T07:58:31.529Z","0.0.10":"2022-06-02T19:01:53.417Z","0.0.11-beta":"2022-06-08T11:10:36.752Z","0.0.12-beta":"2022-06-09T08:05:03.091Z","0.0.13-beta":"2022-06-09T11:03:18.469Z","0.0.14-next.0":"2022-06-12T12:51:52.781Z","0.0.14-next.1":"2022-06-13T12:37:10.714Z","0.0.14":"2022-06-14T22:42:23.610Z","0.0.15":"2022-06-15T08:36:44.982Z","0.0.16":"2022-06-23T14:12:37.726Z","0.0.16-next.0":"2022-06-27T15:17:25.216Z","0.0.17-canary.0":"2022-07-01T08:12:32.657Z","0.0.17-canary.1":"2022-07-01T08:17:42.235Z","0.0.17-canary.2":"2022-07-01T08:55:39.834Z","0.0.17-canary.3":"2022-07-04T10:12:16.123Z","0.0.17-canary.4":"2022-07-04T10:25:33.814Z","0.0.17":"2022-07-04T14:54:17.255Z","0.0.18-canary.0":"2022-08-04T06:38:14.738Z","0.0.18-canary.1":"2022-08-04T07:17:33.914Z","0.0.18":"2022-08-04T12:48:57.165Z","0.0.19":"2022-08-09T16:34:46.579Z","0.0.20":"2022-08-09T18:40:19.309Z","0.0.21":"2022-08-18T19:32:41.037Z","0.0.22":"2022-08-22T09:59:36.797Z","0.0.23-canary.0":"2022-08-26T00:54:29.793Z","0.0.23-canary.1":"2022-08-26T01:20:53.814Z","0.0.23-canary.2":"2022-08-26T18:09:59.861Z","0.0.23-canary.3":"2022-08-28T19:25:21.327Z","0.0.23-canary.4":"2022-08-28T20:43:38.211Z","0.0.23-canary.5":"2022-08-29T11:07:00.091Z","0.0.23":"2022-09-05T11:21:58.984Z","0.0.24":"2022-09-05T20:14:23.215Z","0.0.25":"2022-09-08T07:18:14.130Z","0.0.26":"2022-09-13T14:59:16.543Z","0.0.27":"2022-09-15T15:31:20.731Z","0.0.28":"2022-09-16T11:02:37.099Z","0.0.29":"2022-09-16T13:37:52.303Z","0.0.30":"2022-09-19T15:10:11.786Z","0.0.31":"2022-09-20T17:45:24.268Z","0.0.32":"2022-09-21T06:59:34.301Z","0.0.33":"2022-10-14T15:26:35.150Z","0.0.34":"2022-10-21T07:16:24.193Z","0.0.35":"2022-10-21T09:44:27.792Z","0.0.36-canary.0":"2022-10-21T19:17:15.048Z","0.0.36-canary.1":"2022-10-23T10:10:27.212Z","0.0.36-canary.2":"2022-10-23T10:16:33.987Z","0.0.36-canary.4":"2022-10-23T10:36:37.923Z","0.0.36-canary.5":"2022-10-23T10:44:16.293Z","0.0.36":"2022-10-24T11:29:29.554Z","0.0.37-canary.0":"2022-10-25T07:20:13.193Z","0.0.37-canary.1":"2022-10-25T07:27:31.305Z","0.0.37-canary.2":"2022-10-25T07:30:38.038Z","0.0.37-canary.3":"2022-10-25T07:50:00.254Z","0.0.37-canary.4":"2022-10-25T08:05:15.719Z","0.0.37":"2022-10-28T14:27:07.890Z","0.0.38":"2022-10-28T17:03:18.026Z","0.1.0-canary-20230111084611":"2023-01-11T08:49:38.909Z","0.0.39":"2023-01-19T11:47:05.914Z","0.0.0-canary-20230119201228":"2023-01-19T20:13:57.779Z","0.1.0-20230124234232":"2023-01-24T23:44:27.660Z","0.1.0-20230127104746":"2023-01-27T10:49:40.409Z","0.1.0-canary-20230130231944":"2023-01-30T23:19:57.991Z","0.0.40-canary-20230131114622":"2023-01-31T11:47:51.804Z","0.1.0-canary-20230206110959":"2023-02-06T11:10:16.092Z","0.1.0-canary-20230207085507":"2023-02-07T08:55:25.087Z","0.1.0-canary-20230208150010":"2023-02-08T15:00:24.586Z","0.1.0-canary-20230208173733":"2023-02-08T17:37:49.574Z","0.1.0-canary-20230208204713":"2023-02-08T20:47:27.215Z","0.1.0-canary-20230208230541":"2023-02-08T23:05:55.311Z","0.1.0-canary-20230208234343":"2023-02-08T23:44:00.660Z","0.1.0-canary-20230209082837":"2023-02-09T08:28:55.158Z","0.1.0-canary-20230209084023":"2023-02-09T08:40:38.451Z","0.0.40-canary-20230209090045":"2023-02-09T09:01:00.477Z","0.1.0-canary-20230209153829":"2023-02-09T15:38:45.133Z","0.0.40":"2023-02-09T18:37:06.380Z","0.1.0-canary-20230209191938":"2023-02-09T19:19:54.141Z","0.1.0-canary-20230210130343":"2023-02-10T13:03:56.494Z","0.1.0-canary-20230213183355":"2023-02-13T18:34:11.580Z","0.1.0-canary-20230214141700":"2023-02-14T14:17:16.630Z","0.1.0-canary-20230220234726":"2023-02-20T23:51:13.124Z","0.1.0-canary-20230222150704":"2023-02-22T15:07:18.478Z","0.1.0-canary-20230223103409":"2023-02-23T10:34:25.969Z","0.1.0-canary-20230223145025":"2023-02-23T14:50:43.817Z","0.1.0-canary-20230225164454":"2023-02-25T16:45:11.243Z","0.1.0-canary-1048-20230227024627":"2023-02-27T02:49:17.471Z","0.1.0-canary-20230227111813":"2023-02-27T11:18:30.946Z","0.1.0-canary-20230227152050":"2023-02-27T15:21:08.503Z","0.1.0-canary-20230227204452":"2023-02-27T20:45:11.404Z","0.1.0-canary-20230228103144":"2023-02-28T10:32:03.719Z","0.1.0-canary-20230228184514":"2023-02-28T18:45:39.484Z","0.1.0-canary-20230228220237":"2023-02-28T22:02:56.284Z","0.1.0":"2023-03-01T00:55:23.263Z","0.1.1-canary-20230306175645":"2023-03-06T17:56:59.485Z","0.1.1":"2023-03-08T10:40:21.304Z","0.1.2":"2023-03-16T09:03:32.539Z","0.1.3":"2023-03-16T19:16:15.133Z","0.1.4":"2023-03-24T15:10:06.237Z","0.1.5-canary-20230413145831":"2023-04-13T14:58:48.859Z","0.1.5":"2023-04-28T14:28:52.268Z","0.1.6":"2023-05-30T10:50:38.323Z","0.1.7-canary-20230803130052":"2023-08-03T13:01:11.016Z","0.1.7-canary-20230803163819":"2023-08-03T16:38:37.965Z","0.1.7-canary-20231120181031":"2023-11-20T18:10:44.302Z","0.1.7-canary-20231207113055":"2023-12-07T11:31:06.251Z","0.1.7-canary-20240108132503":"2024-01-08T13:25:13.769Z","0.1.7-canary-20240110180542":"2024-01-10T18:05:53.666Z","0.1.7":"2024-01-11T11:58:40.822Z","0.1.8":"2024-02-02T13:32:30.650Z","0.1.9":"2024-02-02T15:46:22.438Z","0.1.10-canary-20240304142521":"2024-03-04T14:25:33.091Z","0.1.10-canary-20240304154726":"2024-03-04T15:47:39.142Z","0.1.10-canary-20240312191227":"2024-03-12T19:12:41.865Z","0.1.10-canary-20240313122533":"2024-03-13T12:25:46.599Z","0.1.10-canary-20240313191438":"2024-03-13T19:14:50.729Z","0.1.10-canary-20240314113521":"2024-03-14T11:35:31.982Z","0.1.10":"2024-03-19T12:56:01.107Z"},"bugs":{"url":"https://github.com/blockprotocol/blockprotocol/issues"},"author":{"url":"https://hash.ai","name":"HASH"},"license":"MIT","homepage":"https://blockprotocol.org","keywords":["blockprotocol","blocks"],"repository":{"url":"git+ssh://git@github.com/blockprotocol/blockprotocol.git","type":"git","directory":"libs/mock-block-dock"},"description":"A mock embedding application for Block Protocol blocks","maintainers":[{"email":"dei@hash.ai","name":"nonparibus"},{"email":"c@hash.ai","name":"cmorinan"},{"email":"c+npmhashdotai@hash.ai","name":"hashdotai"},{"email":"nat@nath.is","name":"nathggns"},{"email":"thehabbos007@gmail.com","name":"thehabbos007"}],"readme":"# Mock Block Dock\n\nMock datastore and embedding application for testing [Block Protocol](https://blockprotocol.org) blocks.\n\n`yarn add mock-block-dock`\n\n`MockBlockDock` is automatically included the template generated using [create-block-app](https://www.npmjs.com/package/create-block-app)\n\nSee the docs for help with the fundamental Block Protocol concepts [Block Protocol](https://blockprotocol.org/docs)\n\n## Usage\n\nThere are two options for usage:\n\n1.  Use the component `MockBlockDock`, and pass it your block source, to have it automatically:\n\n- render your block\n- pass it its starting properties\n- listen for messages from the block, updates the datastore and respond appropriately\n\n1.  Use the hook `useMockBlockProps`, which returns the mock data, properties and message callbacks for your custom use.\n\n### Component: mock embedding application\n\n```js\nimport { MockBlockDock } from \"mock-block-dock\";\n```\n\nThe component will automatically load your block, pass it properties (where it accepts properties),\nand listen for messages from the block, responding accordingly.\n\nThe properties passed are described in the full [Block Protocol documentation]((https://blockprotocol.org/docs).\n\nFor example, if you call `updateEntity`, MockBlockDock will update the specified entity and return it.\nIf the entity is part of the properties sent to your block, they will be updated and the block re-rendered.\n\n```typescript\nconst { data, errors } = await graphModule.updateEntity({\n  entityId,\n  properties: newProps,\n});\n```\n\nThere are different ways of loading your block source depending on the entry point.\n\nFor each, you can set the block's starting entity by providing it among `initialData.initialEntities` and\nidentifying it via the `blockEntityRecordId` prop (see examples below))\n\n```typescript\nconst blockEntity: Entity = {\n  metadata: {\n    recordId: {\n      entityId: \"entity-1\", // the entity's unique, stable identifier\n      editionId: new Date(0).toISOString(), // the specific edition/version identifier\n    },\n    entityTypeId: \"https://example.com/my-types/entity-types/person/v/1\",\n  },\n  properties: { \"https://example.com/my-types/property-type/name/\": \"World\" },\n};\n```\n\n#### React\n\nWhen developing a React block, pass your component\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyBlock from \"./my-block.tsx\";\n\n<MockBlockDock\n  blockDefinition={{ ReactComponent: MyBlock }} // provide the block source code\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Custom element / Web Component\n\nWhen developing a custom element block, pass `MockBlockDock` the class and the desired tag name.\n\n```jsx\nimport { MockBlockDock } from \"mock-block-dock\";\n\nimport MyCustomElement from \"./my-custom-element.ts\";\n\n<MockBlockDock\n  blockDefinition={{\n    customElement: { elementClass: MyCustomClass, tagName: \"my-block\" },\n  }}\n  blockEntityRecordId={blockEntity.metadata.recordId} // identifies the block entity among the initial entities\n  debug // show the debug UI on startup\n  initialData={{\n    initialEntities: [blockEntity], // initial entities to load into the mock datastore\n  }}\n/>;\n```\n\n#### Debug mode\n\nWhen passed `debug={true}` (which can be shortened to `debug`), `MockBlockDock` will also render a display of:\n\n1.  the properties being passed to the blocks (for non-HTML blocks), which are derived from the mock datastore\n1.  the raw contents of the mock datastore\n\n### Readonly mode\n\nWhen passed `readonly={true}` (which can be shortened to `readonly`), `MockBlockDock` will send a `readonly: true`\nmessage to the block, and will reject any attempts to mutate data in the datastore.\n\nYou can also toggle this option in the debug UI.\n\n### Hook: custom, manual control\n\nIf you want more control or visibility over the mock properties, you can retrieve them as a hook instead,\nand pass them to your block yourself.\n\nYou should pass `initialData` and `blockEntityRecordId` to set the starting datastore and identify the block entity.\n\n```jsx\nimport { useMockBlockProps } from \"mock-block-dock\";\n\nconst {\n  blockProperties,\n  blockProtocolFunctions,\n  entityTypes,\n  linkedQueries,\n  linkedEntities,\n  linkGroups,\n} = useMockBlockProps({\n  blockEntityRecordId: blockEntity.metadata.recordId,\n  initialData: { initialEntities: [blockEntity] },\n});\n```\n","readmeFilename":"README.md"}