{"_id":"@boardxus/x-canvas","_rev":"10-344fc83b683a698538307ba2d55b0348","name":"@boardxus/x-canvas","dist-tags":{"latest":"0.1.11"},"versions":{"0.1.2":{"name":"@boardxus/x-canvas","version":"0.1.2","keywords":["canvas","graphic","graphics","SVG","node-canvas","parser","HTML5","object model"],"author":{"name":"usam@boardx.us"},"license":"MIT","_id":"@boardxus/x-canvas@0.1.2","maintainers":[{"name":"usam","email":"usam@boardx.us"}],"contributors":[],"homepage":"http://boardx.us/","bugs":{"url":"https://github.com/fabricjs/fabric.js/issues"},"dist":{"shasum":"1b6647b0ccf424070d3b011a3594ff71201e8f0d","tarball":"https://registry.npmjs.org/@boardxus/x-canvas/-/x-canvas-0.1.2.tgz","fileCount":533,"integrity":"sha512-Vv5XZ5Aykt30rTyVrxn16qQnlJeRgkH/0rmGw1rdeJzFXpaUqpi5x4QhZkycc5FgLOT21legtF23/uO9Isjrrw==","signatures":[{"sig":"MEYCIQCHZRJCB/u+PFQlXlV3lEkXPwrEZNQCqS9mo0lGqzoOuQIhAOytyCRp1I8+lUrJi1oxdStPEuUkZEEs5wJsdsBTgvBj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17122555},"main":"./dist/index.node.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=14.0.0"},"exports":{".":{"node":null,"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.js","require":"./dist/index.js"},"./node":{"node":"./dist/index.node.cjs","types":"./dist/index.node.d.ts","import":"./dist/index.node.mjs","default":"./dist/index.node.cjs","require":"./dist/index.node.cjs"}},"gitHead":"c482aba62a407df6d8880fa8f38e4f162d43f6a8","scripts":{"all":"npm run build && npm run test -- --all && npm run lint && npm run lint_tests && npm run export","cli":"node ./scripts/index.mjs","dev":"npm run cli -- dev","docs":"typedoc --out docs fabric.ts","lint":"eslint --config .eslintrc.js src/**/*.ts","test":"npm run cli -- test","build":"npm run cli -- build","start":"npm run sandboxscript -- start","export":"npm run cli -- website export","sandbox":"npm run sandboxscript -- sandbox","babel-src":"babel --no-babelrc src --extensions '.ts' --ignore 'src/constants.ts' --out-dir dist/src --config-file ./.babelrcAlt","changelog":"auto-changelog -o change-output.md --unreleased-only","build:fast":"npm run build -- -f","lint_tests":"eslint test/unit --config .eslintrc_tests && eslint test/visual --config .eslintrc_tests","build-tests":"rollup -c ./rollup.test.config.js","sandboxscript":"node ./scripts/sandbox.mjs","test:coverage":"nyc --silent qunit test/node_test_setup.js test/lib test/unit","prettier:check":"prettier --check .","prettier:write":"prettier --write .","babel-constants":"babel --no-babelrc src/constants.ts --extensions '.ts' --out-dir dist/src/ --config-file ./.babelrcAlt --plugins=babel-plugin-import-json-value","coverage:report":"nyc report --reporter=lcov --reporter=text","test:unit-browser":"npm run test -- -s unit -p 8080 -l -c chrome firefox","test:visual-browser":"npm run test -- -s visual -p 8081 -l -c chrome firefox","test:visual:coverage":"nyc --silent --no-clean qunit test/node_test_setup.js test/lib test/visual"},"_npmUser":{"name":"usam","email":"usam@boardx.us"},"repository":{"url":"git+https://github.com/fabricjs/fabric.js.git","type":"git"},"_npmVersion":"6.14.18","description":"digital whiteboard canvas for visual collaboration","directories":{},"_nodeVersion":"18.16.0","dependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"typesVersions":{">=4.2":{"*":["dist/index.d.ts"],"node":["dist/index.node.d.ts"],"src/*":["src/*"]}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","axios":"^0.27.2","chalk":"^2.4.1","fuzzy":"^0.1.3","qunit":"^2.17.2","tslib":"^2.4.1","busboy":"^1.6.0","eslint":"^8.34.0","moment":"^2.29.1","rollup":"^3.9.1","semver":"^7.3.8","testem":"^3.8.0","ps-list":"^8.1.0","typedoc":"^0.23.24","fireworm":"^0.7.2","fs-extra":"^10.0.1","inquirer":"^8.2.1","prettier":"2.7.1","commander":"^9.1.0","kill-port":"^2.0.1","@babel/cli":"^7.20.7","micromatch":"^4.0.5","pixelmatch":"^4.0.2","typescript":"^4.9.4","@babel/core":"^7.20.12","@types/node":"^17.0.21","@types/jsdom":"^20.0.1","@types/lodash":"^4.14.180","auto-changelog":"^2.3.0","@types/fs-extra":"^9.0.13","abort-controller":"^3.0.0","@babel/preset-env":"^7.20.2","source-map-support":"^0.5.21","@rollup/plugin-json":"^6.0.0","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-terser":"^0.3.0","eslint-config-prettier":"^8.6.0","@babel/preset-typescript":"^7.18.6","@rollup/plugin-typescript":"^11.0.0","@typescript-eslint/parser":"^5.53.0","inquirer-checkbox-plus-prompt":"^1.0.1","babel-plugin-import-json-value":"^0.1.2","@typescript-eslint/eslint-plugin":"^5.53.0"},"optionalDependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"_npmOperationalInternal":{"tmp":"tmp/x-canvas_0.1.2_1700015938063_0.6992443246068241","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@boardxus/x-canvas","version":"0.1.3","keywords":["canvas","graphic","graphics","SVG","node-canvas","parser","HTML5","object model"],"author":{"name":"usam@boardx.us"},"license":"MIT","_id":"@boardxus/x-canvas@0.1.3","maintainers":[{"name":"usam","email":"usam@boardx.us"}],"contributors":[],"homepage":"http://boardx.us/","bugs":{"url":"https://github.com/fabricjs/fabric.js/issues"},"dist":{"shasum":"5cab5787bc1335f6d3aeee4a607fe4ce75ef94ff","tarball":"https://registry.npmjs.org/@boardxus/x-canvas/-/x-canvas-0.1.3.tgz","fileCount":533,"integrity":"sha512-sAJ8DAKALsvmZWRge4Bg1LcUxXcegTb2RLD91EsV+paG9rnUQaysESdvcP9Dad41SBjnOwbFrZkZc1GPa5nqMQ==","signatures":[{"sig":"MEUCIBCuQf8ZFsxgehP0ljbLoLqfeQbn9aWZPYCiUks/aGViAiEA0guEPNAq5kNTxm3GqSzPyxtj/PPLDo9Q3uCPUn1x6w0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17116670},"main":"./dist/index.node.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=14.0.0"},"exports":{".":{"node":null,"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.js","require":"./dist/index.js"},"./node":{"node":"./dist/index.node.cjs","types":"./dist/index.node.d.ts","import":"./dist/index.node.mjs","default":"./dist/index.node.cjs","require":"./dist/index.node.cjs"}},"gitHead":"936323b70e8976147c04b02ba029b7fcd2ec8919","scripts":{"all":"npm run build && npm run test -- --all && npm run lint && npm run lint_tests && npm run export","cli":"node ./scripts/index.mjs","dev":"npm run cli -- dev","docs":"typedoc --out docs fabric.ts","lint":"eslint --config .eslintrc.js src/**/*.ts","test":"npm run cli -- test","build":"npm run cli -- build","start":"npm run sandboxscript -- start","export":"npm run cli -- website export","sandbox":"npm run sandboxscript -- sandbox","babel-src":"babel --no-babelrc src --extensions '.ts' --ignore 'src/constants.ts' --out-dir dist/src --config-file ./.babelrcAlt","changelog":"auto-changelog -o change-output.md --unreleased-only","build:fast":"npm run build -- -f","lint_tests":"eslint test/unit --config .eslintrc_tests && eslint test/visual --config .eslintrc_tests","build-tests":"rollup -c ./rollup.test.config.js","sandboxscript":"node ./scripts/sandbox.mjs","test:coverage":"nyc --silent qunit test/node_test_setup.js test/lib test/unit","prettier:check":"prettier --check .","prettier:write":"prettier --write .","babel-constants":"babel --no-babelrc src/constants.ts --extensions '.ts' --out-dir dist/src/ --config-file ./.babelrcAlt --plugins=babel-plugin-import-json-value","coverage:report":"nyc report --reporter=lcov --reporter=text","test:unit-browser":"npm run test -- -s unit -p 8080 -l -c chrome firefox","test:visual-browser":"npm run test -- -s visual -p 8081 -l -c chrome firefox","test:visual:coverage":"nyc --silent --no-clean qunit test/node_test_setup.js test/lib test/visual"},"_npmUser":{"name":"usam","email":"usam@boardx.us"},"repository":{"url":"git+https://github.com/fabricjs/fabric.js.git","type":"git"},"_npmVersion":"6.14.18","description":"digital whiteboard canvas for visual collaboration","directories":{},"_nodeVersion":"18.16.0","dependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"typesVersions":{">=4.2":{"*":["dist/index.d.ts"],"node":["dist/index.node.d.ts"],"src/*":["src/*"]}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","axios":"^0.27.2","chalk":"^2.4.1","fuzzy":"^0.1.3","qunit":"^2.17.2","tslib":"^2.4.1","busboy":"^1.6.0","eslint":"^8.34.0","moment":"^2.29.1","rollup":"^3.9.1","semver":"^7.3.8","testem":"^3.8.0","ps-list":"^8.1.0","typedoc":"^0.23.24","fireworm":"^0.7.2","fs-extra":"^10.0.1","inquirer":"^8.2.1","prettier":"2.7.1","commander":"^9.1.0","kill-port":"^2.0.1","@babel/cli":"^7.20.7","micromatch":"^4.0.5","pixelmatch":"^4.0.2","typescript":"^4.9.4","@babel/core":"^7.20.12","@types/node":"^17.0.21","@types/jsdom":"^20.0.1","@types/lodash":"^4.14.180","auto-changelog":"^2.3.0","@types/fs-extra":"^9.0.13","abort-controller":"^3.0.0","@babel/preset-env":"^7.20.2","source-map-support":"^0.5.21","@rollup/plugin-json":"^6.0.0","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-terser":"^0.3.0","eslint-config-prettier":"^8.6.0","@babel/preset-typescript":"^7.18.6","@rollup/plugin-typescript":"^11.0.0","@typescript-eslint/parser":"^5.53.0","inquirer-checkbox-plus-prompt":"^1.0.1","babel-plugin-import-json-value":"^0.1.2","@typescript-eslint/eslint-plugin":"^5.53.0"},"optionalDependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"_npmOperationalInternal":{"tmp":"tmp/x-canvas_0.1.3_1700016001878_0.8317372996252299","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"@boardxus/x-canvas","version":"0.1.4","keywords":["canvas","graphic","graphics","SVG","node-canvas","parser","HTML5","object model"],"author":{"name":"usam@boardx.us"},"license":"MIT","_id":"@boardxus/x-canvas@0.1.4","maintainers":[{"name":"ziwei_777","email":"ziwei@boardx.us"},{"name":"usam","email":"usam@boardx.us"}],"contributors":[],"homepage":"http://boardx.us/","bugs":{"url":"https://github.com/boardx/x-canvas/issues"},"dist":{"shasum":"430744bd6f5c6254a3e1fa60111d73597d9bb892","tarball":"https://registry.npmjs.org/@boardxus/x-canvas/-/x-canvas-0.1.4.tgz","fileCount":533,"integrity":"sha512-i3aLNr6ijzWIdRZ83/OHzfbXuxFm/lF4wr9lfbVyg/GdC72wsIeIgNkIIhzGO0QXbTOOKE5eZEcZKvfUkWwfMw==","signatures":[{"sig":"MEYCIQDKm5WoXcuTede0YF80Vtw35v3lGbARd21ytB3aYbDD3gIhANgOyl0rQmu9ezsXib4R+HN/0lsKiV3YBfW30Ao1N3dR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17116664},"main":"./dist/index.node.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=14.0.0"},"exports":{".":{"node":null,"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.js","require":"./dist/index.js"},"./node":{"node":"./dist/index.node.cjs","types":"./dist/index.node.d.ts","import":"./dist/index.node.mjs","default":"./dist/index.node.cjs","require":"./dist/index.node.cjs"}},"gitHead":"936323b70e8976147c04b02ba029b7fcd2ec8919","scripts":{"all":"npm run build && npm run test -- --all && npm run lint && npm run lint_tests && npm run export","cli":"node ./scripts/index.mjs","dev":"npm run cli -- dev","docs":"typedoc --out docs fabric.ts","lint":"eslint --config .eslintrc.js src/**/*.ts","test":"npm run cli -- test","build":"npm run cli -- build","start":"npm run sandboxscript -- start","export":"npm run cli -- website export","sandbox":"npm run sandboxscript -- sandbox","babel-src":"babel --no-babelrc src --extensions '.ts' --ignore 'src/constants.ts' --out-dir dist/src --config-file ./.babelrcAlt","changelog":"auto-changelog -o change-output.md --unreleased-only","build:fast":"npm run build -- -f","lint_tests":"eslint test/unit --config .eslintrc_tests && eslint test/visual --config .eslintrc_tests","build-tests":"rollup -c ./rollup.test.config.js","sandboxscript":"node ./scripts/sandbox.mjs","test:coverage":"nyc --silent qunit test/node_test_setup.js test/lib test/unit","prettier:check":"prettier --check .","prettier:write":"prettier --write .","babel-constants":"babel --no-babelrc src/constants.ts --extensions '.ts' --out-dir dist/src/ --config-file ./.babelrcAlt --plugins=babel-plugin-import-json-value","coverage:report":"nyc report --reporter=lcov --reporter=text","test:unit-browser":"npm run test -- -s unit -p 8080 -l -c chrome firefox","test:visual-browser":"npm run test -- -s visual -p 8081 -l -c chrome firefox","test:visual:coverage":"nyc --silent --no-clean qunit test/node_test_setup.js test/lib test/visual"},"_npmUser":{"name":"usam","email":"usam@boardx.us"},"repository":{"url":"git+https://github.com/boardx/x-canvas.git","type":"git"},"_npmVersion":"6.14.18","description":"digital whiteboard canvas for visual collaboration","directories":{},"_nodeVersion":"18.16.0","dependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"typesVersions":{">=4.2":{"*":["dist/index.d.ts"],"node":["dist/index.node.d.ts"],"src/*":["src/*"]}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","axios":"^0.27.2","chalk":"^2.4.1","fuzzy":"^0.1.3","qunit":"^2.17.2","tslib":"^2.4.1","busboy":"^1.6.0","eslint":"^8.34.0","moment":"^2.29.1","rollup":"^3.9.1","semver":"^7.3.8","testem":"^3.8.0","ps-list":"^8.1.0","typedoc":"^0.23.24","fireworm":"^0.7.2","fs-extra":"^10.0.1","inquirer":"^8.2.1","prettier":"2.7.1","commander":"^9.1.0","kill-port":"^2.0.1","@babel/cli":"^7.20.7","micromatch":"^4.0.5","pixelmatch":"^4.0.2","typescript":"^4.9.4","@babel/core":"^7.20.12","@types/node":"^17.0.21","@types/jsdom":"^20.0.1","@types/lodash":"^4.14.180","auto-changelog":"^2.3.0","@types/fs-extra":"^9.0.13","abort-controller":"^3.0.0","@babel/preset-env":"^7.20.2","source-map-support":"^0.5.21","@rollup/plugin-json":"^6.0.0","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-terser":"^0.3.0","eslint-config-prettier":"^8.6.0","@babel/preset-typescript":"^7.18.6","@rollup/plugin-typescript":"^11.0.0","@typescript-eslint/parser":"^5.53.0","inquirer-checkbox-plus-prompt":"^1.0.1","babel-plugin-import-json-value":"^0.1.2","@typescript-eslint/eslint-plugin":"^5.53.0"},"optionalDependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"_npmOperationalInternal":{"tmp":"tmp/x-canvas_0.1.4_1700016299433_0.9211839998859039","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"@boardxus/x-canvas","version":"0.1.5","keywords":["canvas","graphic","graphics","SVG","node-canvas","parser","HTML5","object model"],"author":{"name":"usam@boardx.us"},"license":"MIT","_id":"@boardxus/x-canvas@0.1.5","maintainers":[{"name":"ziwei_777","email":"ziwei@boardx.us"},{"name":"usam","email":"usam@boardx.us"}],"contributors":[],"homepage":"http://boardx.us/","bugs":{"url":"https://github.com/boardx/x-canvas/issues"},"dist":{"shasum":"02de381220221f9135d25ed5ea97e988c949e5bc","tarball":"https://registry.npmjs.org/@boardxus/x-canvas/-/x-canvas-0.1.5.tgz","fileCount":533,"integrity":"sha512-wGfQ+swL2qnHbR9WDgwYHHjO3kMCRg3Y8wxcWS3xHnfxsk0Zc/OzCH8kf2TMz1xDYBVgsjN7la93CnL+bBahSg==","signatures":[{"sig":"MEQCIAJ0hC5gHkR06RMcF/N0cwna3h84n0koLkNof/W02Ok5AiBvg8gta4njHAG2oI3/Qm4DdoFkK+PzVSRIzIuDvGIC9w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17111055},"main":"./dist/index.node.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=14.0.0"},"exports":{".":{"node":null,"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.js","require":"./dist/index.js"},"./node":{"node":"./dist/index.node.cjs","types":"./dist/index.node.d.ts","import":"./dist/index.node.mjs","default":"./dist/index.node.cjs","require":"./dist/index.node.cjs"}},"gitHead":"936323b70e8976147c04b02ba029b7fcd2ec8919","scripts":{"all":"npm run build && npm run test -- --all && npm run lint && npm run lint_tests && npm run export","cli":"node ./scripts/index.mjs","dev":"npm run cli -- dev","docs":"typedoc --out docs fabric.ts","lint":"eslint --config .eslintrc.js src/**/*.ts","test":"npm run cli -- test","build":"npm run cli -- build","start":"npm run sandboxscript -- start","export":"npm run cli -- website export","sandbox":"npm run sandboxscript -- sandbox","babel-src":"babel --no-babelrc src --extensions '.ts' --ignore 'src/constants.ts' --out-dir dist/src --config-file ./.babelrcAlt","changelog":"auto-changelog -o change-output.md --unreleased-only","build:fast":"npm run build -- -f","lint_tests":"eslint test/unit --config .eslintrc_tests && eslint test/visual --config .eslintrc_tests","build-tests":"rollup -c ./rollup.test.config.js","sandboxscript":"node ./scripts/sandbox.mjs","test:coverage":"nyc --silent qunit test/node_test_setup.js test/lib test/unit","prettier:check":"prettier --check .","prettier:write":"prettier --write .","babel-constants":"babel --no-babelrc src/constants.ts --extensions '.ts' --out-dir dist/src/ --config-file ./.babelrcAlt --plugins=babel-plugin-import-json-value","coverage:report":"nyc report --reporter=lcov --reporter=text","test:unit-browser":"npm run test -- -s unit -p 8080 -l -c chrome firefox","test:visual-browser":"npm run test -- -s visual -p 8081 -l -c chrome firefox","test:visual:coverage":"nyc --silent --no-clean qunit test/node_test_setup.js test/lib test/visual"},"_npmUser":{"name":"usam","email":"usam@boardx.us"},"repository":{"url":"git+https://github.com/boardx/x-canvas.git","type":"git"},"_npmVersion":"6.14.18","description":"digital whiteboard canvas for visual collaboration","directories":{},"_nodeVersion":"18.16.0","dependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"typesVersions":{">=4.2":{"*":["dist/index.d.ts"],"node":["dist/index.node.d.ts"],"src/*":["src/*"]}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","axios":"^0.27.2","chalk":"^2.4.1","fuzzy":"^0.1.3","qunit":"^2.17.2","tslib":"^2.4.1","busboy":"^1.6.0","eslint":"^8.34.0","moment":"^2.29.1","rollup":"^3.9.1","semver":"^7.3.8","testem":"^3.8.0","ps-list":"^8.1.0","typedoc":"^0.23.24","fireworm":"^0.7.2","fs-extra":"^10.0.1","inquirer":"^8.2.1","prettier":"2.7.1","commander":"^9.1.0","kill-port":"^2.0.1","@babel/cli":"^7.20.7","micromatch":"^4.0.5","pixelmatch":"^4.0.2","typescript":"^4.9.4","@babel/core":"^7.20.12","@types/node":"^17.0.21","@types/jsdom":"^20.0.1","@types/lodash":"^4.14.180","auto-changelog":"^2.3.0","@types/fs-extra":"^9.0.13","abort-controller":"^3.0.0","@babel/preset-env":"^7.20.2","source-map-support":"^0.5.21","@rollup/plugin-json":"^6.0.0","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-terser":"^0.3.0","eslint-config-prettier":"^8.6.0","@babel/preset-typescript":"^7.18.6","@rollup/plugin-typescript":"^11.0.0","@typescript-eslint/parser":"^5.53.0","inquirer-checkbox-plus-prompt":"^1.0.1","babel-plugin-import-json-value":"^0.1.2","@typescript-eslint/eslint-plugin":"^5.53.0"},"optionalDependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"_npmOperationalInternal":{"tmp":"tmp/x-canvas_0.1.5_1703049400127_0.44793925405977975","host":"s3://npm-registry-packages"}},"0.1.6":{"name":"@boardxus/x-canvas","version":"0.1.6","keywords":["canvas","graphic","graphics","SVG","node-canvas","parser","HTML5","object model"],"author":{"name":"usam@boardx.us"},"license":"MIT","_id":"@boardxus/x-canvas@0.1.6","maintainers":[{"name":"ziwei_777","email":"ziwei@boardx.us"},{"name":"usam","email":"usam@boardx.us"}],"contributors":[],"homepage":"http://boardx.us/","bugs":{"url":"https://github.com/boardx/x-canvas/issues"},"dist":{"shasum":"33ea280d1b34201638f31008b0807554c5f7a737","tarball":"https://registry.npmjs.org/@boardxus/x-canvas/-/x-canvas-0.1.6.tgz","fileCount":533,"integrity":"sha512-0UmysbN+OrMmqXBSnGhH3EmhXlbjNzxEvC+rLky95PS7gM/7nge70nWzv26aw0wnHq6Lx459TSkVeKDsPegDjQ==","signatures":[{"sig":"MEYCIQCpqLKnB60827zeKsAqRHEfx6NkPWB84N6Dl5XCeENHcgIhAIEFmBouveZoNjbYOGtrYVMBCw60MfPhRGnKZsW4HkWq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17023940},"main":"./dist/index.node.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=14.0.0"},"exports":{".":{"node":null,"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.js","require":"./dist/index.js"},"./node":{"node":"./dist/index.node.cjs","types":"./dist/index.node.d.ts","import":"./dist/index.node.mjs","default":"./dist/index.node.cjs","require":"./dist/index.node.cjs"}},"gitHead":"936323b70e8976147c04b02ba029b7fcd2ec8919","scripts":{"all":"npm run build && npm run test -- --all && npm run lint && npm run lint_tests && npm run export","cli":"node ./scripts/index.mjs","dev":"npm run cli -- dev","docs":"typedoc --out docs fabric.ts","lint":"eslint --config .eslintrc.js src/**/*.ts","test":"npm run cli -- test","build":"npm run cli -- build","start":"npm run sandboxscript -- start","export":"npm run cli -- website export","sandbox":"npm run sandboxscript -- sandbox","babel-src":"babel --no-babelrc src --extensions '.ts' --ignore 'src/constants.ts' --out-dir dist/src --config-file ./.babelrcAlt","changelog":"auto-changelog -o change-output.md --unreleased-only","build:fast":"npm run build -- -f","lint_tests":"eslint test/unit --config .eslintrc_tests && eslint test/visual --config .eslintrc_tests","build-tests":"rollup -c ./rollup.test.config.js","sandboxscript":"node ./scripts/sandbox.mjs","test:coverage":"nyc --silent qunit test/node_test_setup.js test/lib test/unit","prettier:check":"prettier --check .","prettier:write":"prettier --write .","babel-constants":"babel --no-babelrc src/constants.ts --extensions '.ts' --out-dir dist/src/ --config-file ./.babelrcAlt --plugins=babel-plugin-import-json-value","coverage:report":"nyc report --reporter=lcov --reporter=text","test:unit-browser":"npm run test -- -s unit -p 8080 -l -c chrome firefox","test:visual-browser":"npm run test -- -s visual -p 8081 -l -c chrome firefox","test:visual:coverage":"nyc --silent --no-clean qunit test/node_test_setup.js test/lib test/visual"},"_npmUser":{"name":"usam","email":"usam@boardx.us"},"repository":{"url":"git+https://github.com/boardx/x-canvas.git","type":"git"},"_npmVersion":"6.14.18","description":"digital whiteboard canvas for visual collaboration","directories":{},"_nodeVersion":"18.16.0","dependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"typesVersions":{">=4.2":{"*":["dist/index.d.ts"],"node":["dist/index.node.d.ts"],"src/*":["src/*"]}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","axios":"^0.27.2","chalk":"^2.4.1","fuzzy":"^0.1.3","qunit":"^2.17.2","tslib":"^2.4.1","busboy":"^1.6.0","eslint":"^8.34.0","moment":"^2.29.1","rollup":"^3.9.1","semver":"^7.3.8","testem":"^3.8.0","ps-list":"^8.1.0","typedoc":"^0.23.24","fireworm":"^0.7.2","fs-extra":"^10.0.1","inquirer":"^8.2.1","prettier":"2.7.1","commander":"^9.1.0","kill-port":"^2.0.1","@babel/cli":"^7.20.7","micromatch":"^4.0.5","pixelmatch":"^4.0.2","typescript":"^4.9.4","@babel/core":"^7.20.12","@types/node":"^17.0.21","@types/jsdom":"^20.0.1","@types/lodash":"^4.14.180","auto-changelog":"^2.3.0","@types/fs-extra":"^9.0.13","abort-controller":"^3.0.0","@babel/preset-env":"^7.20.2","source-map-support":"^0.5.21","@rollup/plugin-json":"^6.0.0","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-terser":"^0.3.0","eslint-config-prettier":"^8.6.0","@babel/preset-typescript":"^7.18.6","@rollup/plugin-typescript":"^11.0.0","@typescript-eslint/parser":"^5.53.0","inquirer-checkbox-plus-prompt":"^1.0.1","babel-plugin-import-json-value":"^0.1.2","@typescript-eslint/eslint-plugin":"^5.53.0"},"optionalDependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"_npmOperationalInternal":{"tmp":"tmp/x-canvas_0.1.6_1703050585565_0.9898928918470749","host":"s3://npm-registry-packages"}},"0.1.7":{"name":"@boardxus/x-canvas","version":"0.1.7","keywords":["canvas","graphic","graphics","SVG","node-canvas","parser","HTML5","object model"],"author":{"name":"usam@boardx.us"},"license":"MIT","_id":"@boardxus/x-canvas@0.1.7","maintainers":[{"name":"ziwei_777","email":"ziwei@boardx.us"},{"name":"usam","email":"usam@boardx.us"}],"contributors":[],"homepage":"http://boardx.us/","bugs":{"url":"https://github.com/boardx/x-canvas/issues"},"dist":{"shasum":"e591e59bc532e0e657638437338c593042a6d433","tarball":"https://registry.npmjs.org/@boardxus/x-canvas/-/x-canvas-0.1.7.tgz","fileCount":533,"integrity":"sha512-N/fJlpQB/508TW6nJ+T1u/06mXBLELvzEzR/fmZe0Dc4IP3pXInXIfjBiHqNC+thQaGdul1gpv2y4efnXSSB0g==","signatures":[{"sig":"MEQCIBXzf/9qgc5bk+yuvZp7JjMhO4BLLbPm4FqoHHHkzsN9AiBIvRQXdvZ8YJmWTurkGJDw01LuAykpu60ovC6hA4ocUg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17024670},"main":"./dist/index.node.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=14.0.0"},"exports":{".":{"node":null,"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.js","require":"./dist/index.js"},"./node":{"node":"./dist/index.node.cjs","types":"./dist/index.node.d.ts","import":"./dist/index.node.mjs","default":"./dist/index.node.cjs","require":"./dist/index.node.cjs"}},"gitHead":"936323b70e8976147c04b02ba029b7fcd2ec8919","scripts":{"all":"npm run build && npm run test -- --all && npm run lint && npm run lint_tests && npm run export","cli":"node ./scripts/index.mjs","dev":"npm run cli -- dev","docs":"typedoc --out docs fabric.ts","lint":"eslint --config .eslintrc.js src/**/*.ts","test":"npm run cli -- test","build":"npm run cli -- build","start":"npm run sandboxscript -- start","export":"npm run cli -- website export","sandbox":"npm run sandboxscript -- sandbox","babel-src":"babel --no-babelrc src --extensions '.ts' --ignore 'src/constants.ts' --out-dir dist/src --config-file ./.babelrcAlt","changelog":"auto-changelog -o change-output.md --unreleased-only","build:fast":"npm run build -- -f","lint_tests":"eslint test/unit --config .eslintrc_tests && eslint test/visual --config .eslintrc_tests","build-tests":"rollup -c ./rollup.test.config.js","sandboxscript":"node ./scripts/sandbox.mjs","test:coverage":"nyc --silent qunit test/node_test_setup.js test/lib test/unit","prettier:check":"prettier --check .","prettier:write":"prettier --write .","babel-constants":"babel --no-babelrc src/constants.ts --extensions '.ts' --out-dir dist/src/ --config-file ./.babelrcAlt --plugins=babel-plugin-import-json-value","coverage:report":"nyc report --reporter=lcov --reporter=text","test:unit-browser":"npm run test -- -s unit -p 8080 -l -c chrome firefox","test:visual-browser":"npm run test -- -s visual -p 8081 -l -c chrome firefox","test:visual:coverage":"nyc --silent --no-clean qunit test/node_test_setup.js test/lib test/visual"},"_npmUser":{"name":"usam","email":"usam@boardx.us"},"repository":{"url":"git+https://github.com/boardx/x-canvas.git","type":"git"},"_npmVersion":"6.14.18","description":"digital whiteboard canvas for visual collaboration","directories":{},"_nodeVersion":"18.16.0","dependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"typesVersions":{">=4.2":{"*":["dist/index.d.ts"],"node":["dist/index.node.d.ts"],"src/*":["src/*"]}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","axios":"^0.27.2","chalk":"^2.4.1","fuzzy":"^0.1.3","qunit":"^2.17.2","tslib":"^2.4.1","busboy":"^1.6.0","eslint":"^8.34.0","moment":"^2.29.1","rollup":"^3.9.1","semver":"^7.3.8","testem":"^3.8.0","ps-list":"^8.1.0","typedoc":"^0.23.24","fireworm":"^0.7.2","fs-extra":"^10.0.1","inquirer":"^8.2.1","prettier":"2.7.1","commander":"^9.1.0","kill-port":"^2.0.1","@babel/cli":"^7.20.7","micromatch":"^4.0.5","pixelmatch":"^4.0.2","typescript":"^4.9.4","@babel/core":"^7.20.12","@types/node":"^17.0.21","@types/jsdom":"^20.0.1","@types/lodash":"^4.14.180","auto-changelog":"^2.3.0","@types/fs-extra":"^9.0.13","abort-controller":"^3.0.0","@babel/preset-env":"^7.20.2","source-map-support":"^0.5.21","@rollup/plugin-json":"^6.0.0","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-terser":"^0.3.0","eslint-config-prettier":"^8.6.0","@babel/preset-typescript":"^7.18.6","@rollup/plugin-typescript":"^11.0.0","@typescript-eslint/parser":"^5.53.0","inquirer-checkbox-plus-prompt":"^1.0.1","babel-plugin-import-json-value":"^0.1.2","@typescript-eslint/eslint-plugin":"^5.53.0"},"optionalDependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"_npmOperationalInternal":{"tmp":"tmp/x-canvas_0.1.7_1703104126033_0.1875353795200705","host":"s3://npm-registry-packages"}},"0.1.9":{"name":"@boardxus/x-canvas","version":"0.1.9","keywords":["canvas","graphic","graphics","SVG","node-canvas","parser","HTML5","object model"],"author":{"name":"usam@boardx.us"},"license":"MIT","_id":"@boardxus/x-canvas@0.1.9","maintainers":[{"name":"ziwei_777","email":"ziwei@boardx.us"},{"name":"usam","email":"usam@boardx.us"}],"contributors":[],"homepage":"http://boardx.us/","bugs":{"url":"https://github.com/boardx/x-canvas/issues"},"dist":{"shasum":"80c1332de6d7e389c95419f9a5f0b370c1ef3958","tarball":"https://registry.npmjs.org/@boardxus/x-canvas/-/x-canvas-0.1.9.tgz","fileCount":533,"integrity":"sha512-9bMmq3acLWNM2Fw7ZOaJCKhJiQ9fWi10l5pYoWwzk+O6s15UreP+VDvHdwL4pQUorCwmhLCmA/enYB9g3k9eQw==","signatures":[{"sig":"MEUCIQDZLGiDfi2ecYFLz39PJDkJb/pr0p+M1LPqvxkQvIWloQIgGdJ5Cs6HT/oNmyuKF8wsoltfb2Z87gaJOk6kP2wuijk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17023423},"main":"./dist/index.node.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=14.0.0"},"exports":{".":{"node":null,"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.js","require":"./dist/index.js"},"./node":{"node":"./dist/index.node.cjs","types":"./dist/index.node.d.ts","import":"./dist/index.node.mjs","default":"./dist/index.node.cjs","require":"./dist/index.node.cjs"}},"gitHead":"936323b70e8976147c04b02ba029b7fcd2ec8919","scripts":{"all":"npm run build && npm run test -- --all && npm run lint && npm run lint_tests && npm run export","cli":"node ./scripts/index.mjs","dev":"npm run cli -- dev","docs":"typedoc --out docs fabric.ts","lint":"eslint --config .eslintrc.js src/**/*.ts","test":"npm run cli -- test","build":"npm run cli -- build","start":"npm run sandboxscript -- start","export":"npm run cli -- website export","sandbox":"npm run sandboxscript -- sandbox","babel-src":"babel --no-babelrc src --extensions '.ts' --ignore 'src/constants.ts' --out-dir dist/src --config-file ./.babelrcAlt","changelog":"auto-changelog -o change-output.md --unreleased-only","build:fast":"npm run build -- -f","lint_tests":"eslint test/unit --config .eslintrc_tests && eslint test/visual --config .eslintrc_tests","build-tests":"rollup -c ./rollup.test.config.js","sandboxscript":"node ./scripts/sandbox.mjs","test:coverage":"nyc --silent qunit test/node_test_setup.js test/lib test/unit","prettier:check":"prettier --check .","prettier:write":"prettier --write .","babel-constants":"babel --no-babelrc src/constants.ts --extensions '.ts' --out-dir dist/src/ --config-file ./.babelrcAlt --plugins=babel-plugin-import-json-value","coverage:report":"nyc report --reporter=lcov --reporter=text","test:unit-browser":"npm run test -- -s unit -p 8080 -l -c chrome firefox","test:visual-browser":"npm run test -- -s visual -p 8081 -l -c chrome firefox","test:visual:coverage":"nyc --silent --no-clean qunit test/node_test_setup.js test/lib test/visual"},"_npmUser":{"name":"usam","email":"usam@boardx.us"},"repository":{"url":"git+https://github.com/boardx/x-canvas.git","type":"git"},"_npmVersion":"6.14.18","description":"digital whiteboard canvas for visual collaboration","directories":{},"_nodeVersion":"18.16.0","dependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"typesVersions":{">=4.2":{"*":["dist/index.d.ts"],"node":["dist/index.node.d.ts"],"src/*":["src/*"]}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","axios":"^0.27.2","chalk":"^2.4.1","fuzzy":"^0.1.3","qunit":"^2.17.2","tslib":"^2.4.1","busboy":"^1.6.0","eslint":"^8.34.0","moment":"^2.29.1","rollup":"^3.9.1","semver":"^7.3.8","testem":"^3.8.0","ps-list":"^8.1.0","typedoc":"^0.23.24","fireworm":"^0.7.2","fs-extra":"^10.0.1","inquirer":"^8.2.1","prettier":"2.7.1","commander":"^9.1.0","kill-port":"^2.0.1","@babel/cli":"^7.20.7","micromatch":"^4.0.5","pixelmatch":"^4.0.2","typescript":"^4.9.4","@babel/core":"^7.20.12","@types/node":"^17.0.21","@types/jsdom":"^20.0.1","@types/lodash":"^4.14.180","auto-changelog":"^2.3.0","@types/fs-extra":"^9.0.13","abort-controller":"^3.0.0","@babel/preset-env":"^7.20.2","source-map-support":"^0.5.21","@rollup/plugin-json":"^6.0.0","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-terser":"^0.3.0","eslint-config-prettier":"^8.6.0","@babel/preset-typescript":"^7.18.6","@rollup/plugin-typescript":"^11.0.0","@typescript-eslint/parser":"^5.53.0","inquirer-checkbox-plus-prompt":"^1.0.1","babel-plugin-import-json-value":"^0.1.2","@typescript-eslint/eslint-plugin":"^5.53.0"},"optionalDependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"_npmOperationalInternal":{"tmp":"tmp/x-canvas_0.1.9_1705130565565_0.2744107701152272","host":"s3://npm-registry-packages"}},"0.1.11":{"name":"@boardxus/x-canvas","version":"0.1.11","keywords":["canvas","graphic","graphics","SVG","node-canvas","parser","HTML5","object model"],"author":{"name":"usam@boardx.us"},"license":"MIT","_id":"@boardxus/x-canvas@0.1.11","maintainers":[{"name":"ziwei_777","email":"ziwei@boardx.us"},{"name":"usam","email":"usam@boardx.us"}],"contributors":[],"homepage":"http://boardx.us/","bugs":{"url":"https://github.com/boardx/x-canvas/issues"},"dist":{"shasum":"efff7fa539d3762b32bdc40df73db5bbc3084a72","tarball":"https://registry.npmjs.org/@boardxus/x-canvas/-/x-canvas-0.1.11.tgz","fileCount":533,"integrity":"sha512-z9v1RM63hFjlg+3ZF1sphUaw2gA+OAfWRZi/UwW8054w33UFYjUPD5nbWMpkY5ViRiasXPxlKonnoAvWmlV7dg==","signatures":[{"sig":"MEQCIAPtuGyeHOdEM56GW1/2YxNwiU3BNFIF3+hQgBtYN69BAiAa2BrHMyER/E1mk9+YbPVB4dwt3qut1SV5KctWkWhBkQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17035861},"main":"./dist/index.node.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=14.0.0"},"exports":{".":{"node":null,"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.js","require":"./dist/index.js"},"./node":{"node":"./dist/index.node.cjs","types":"./dist/index.node.d.ts","import":"./dist/index.node.mjs","default":"./dist/index.node.cjs","require":"./dist/index.node.cjs"}},"gitHead":"e9badc05d120aeb3f5c913b8dedda4cc6102d639","scripts":{"all":"npm run build && npm run test -- --all && npm run lint && npm run lint_tests && npm run export","cli":"node ./scripts/index.mjs","dev":"npm run cli -- dev","docs":"typedoc --out docs fabric.ts","lint":"eslint --config .eslintrc.js src/**/*.ts","test":"npm run cli -- test","build":"npm run cli -- build","start":"npm run sandboxscript -- start","export":"npm run cli -- website export","sandbox":"npm run sandboxscript -- sandbox","babel-src":"babel --no-babelrc src --extensions '.ts' --ignore 'src/constants.ts' --out-dir dist/src --config-file ./.babelrcAlt","changelog":"auto-changelog -o change-output.md --unreleased-only","build:fast":"npm run build -- -f","lint_tests":"eslint test/unit --config .eslintrc_tests && eslint test/visual --config .eslintrc_tests","build-tests":"rollup -c ./rollup.test.config.js","sandboxscript":"node ./scripts/sandbox.mjs","test:coverage":"nyc --silent qunit test/node_test_setup.js test/lib test/unit","prettier:check":"prettier --check .","prettier:write":"prettier --write .","babel-constants":"babel --no-babelrc src/constants.ts --extensions '.ts' --out-dir dist/src/ --config-file ./.babelrcAlt --plugins=babel-plugin-import-json-value","coverage:report":"nyc report --reporter=lcov --reporter=text","test:unit-browser":"npm run test -- -s unit -p 8080 -l -c chrome firefox","test:visual-browser":"npm run test -- -s visual -p 8081 -l -c chrome firefox","test:visual:coverage":"nyc --silent --no-clean qunit test/node_test_setup.js test/lib test/visual"},"_npmUser":{"name":"usam","email":"usam@boardx.us"},"repository":{"url":"git+https://github.com/boardx/x-canvas.git","type":"git"},"_npmVersion":"9.6.4","description":"digital whiteboard canvas for visual collaboration","directories":{},"_nodeVersion":"20.0.0","dependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"typesVersions":{">=4.2":{"*":["dist/index.d.ts"],"node":["dist/index.node.d.ts"],"src/*":["src/*"]}},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","axios":"^0.27.2","chalk":"^2.4.1","fuzzy":"^0.1.3","qunit":"^2.17.2","tslib":"^2.4.1","busboy":"^1.6.0","eslint":"^8.34.0","moment":"^2.29.1","rollup":"^3.9.1","semver":"^7.3.8","testem":"^3.8.0","ps-list":"^8.1.0","typedoc":"^0.23.24","fireworm":"^0.7.2","fs-extra":"^10.0.1","inquirer":"^8.2.1","prettier":"2.7.1","commander":"^9.1.0","kill-port":"^2.0.1","@babel/cli":"^7.20.7","micromatch":"^4.0.5","pixelmatch":"^4.0.2","typescript":"^4.9.4","@babel/core":"^7.20.12","@types/node":"^17.0.21","@types/jsdom":"^20.0.1","@types/lodash":"^4.14.180","auto-changelog":"^2.3.0","@types/fs-extra":"^9.0.13","abort-controller":"^3.0.0","@babel/preset-env":"^7.20.2","source-map-support":"^0.5.21","@rollup/plugin-json":"^6.0.0","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-terser":"^0.3.0","eslint-config-prettier":"^8.6.0","@babel/preset-typescript":"^7.18.6","@rollup/plugin-typescript":"^11.0.0","@typescript-eslint/parser":"^5.53.0","inquirer-checkbox-plus-prompt":"^1.0.1","babel-plugin-import-json-value":"^0.1.2","@typescript-eslint/eslint-plugin":"^5.53.0"},"optionalDependencies":{"jsdom":"^20.0.1","canvas":"^2.8.0"},"_npmOperationalInternal":{"tmp":"tmp/x-canvas_0.1.11_1716355983935_0.9409140550787087","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-11-15T02:38:57.978Z","modified":"2025-07-19T05:07:13.414Z","0.1.2":"2023-11-15T02:38:58.338Z","0.1.3":"2023-11-15T02:40:02.205Z","0.1.4":"2023-11-15T02:44:59.840Z","0.1.5":"2023-12-20T05:16:40.443Z","0.1.6":"2023-12-20T05:36:25.871Z","0.1.7":"2023-12-20T20:28:46.347Z","0.1.9":"2024-01-13T07:22:45.815Z","0.1.11":"2024-05-22T05:33:04.158Z"},"bugs":{"url":"https://github.com/boardx/x-canvas/issues"},"author":{"name":"usam@boardx.us"},"license":"MIT","homepage":"http://boardx.us/","keywords":["canvas","graphic","graphics","SVG","node-canvas","parser","HTML5","object model"],"repository":{"url":"git+https://github.com/boardx/x-canvas.git","type":"git"},"description":"digital whiteboard canvas for visual collaboration","contributors":[],"maintainers":[{"email":"ziwei@boardx.us","name":"ziwei_777"},{"email":"usam@boardx.us","name":"usam"},{"email":"yangjun.shen@boardx.us","name":"yangjun.shen"}],"readme":"# x-canvas\n\n## Overview\n\nx-canvas is an advanced digital canvas tool, essential for the next generation of digital whiteboard applications. Developed as a specialized fork of the fabric.js library, x-canvas is designed to enrich the user experience in digital whiteboard environments, providing a versatile and intuitive platform for creative and collaborative endeavors.\n![image](https://github.com/boardx/x-canvas/assets/2325074/1279e92f-f074-4bcc-9074-3827afc27634)\n## Background\n\n### Origin\n\nOriginating as a fork from fabric.js, x-canvas was tailored to meet the specific needs of digital whiteboard applications. Our team has built upon the solid foundation of fabric.js, enhancing its capabilities to cater to dynamic and interactive whiteboard sessions.\n\n### Enhancements Over fabric.js\n\nx-canvas introduces a range of improvements and additional features over the original fabric.js, including:\n\n- Enhanced interactivity and responsiveness for a more fluid user experience.\n- Scalability improvements to handle complex, high-traffic whiteboard sessions.\n- Custom tools and widgets designed for diverse digital whiteboard use cases.\n\n## Features\n\nx-canvas offers a wide array of features designed to empower users in a digital whiteboard setting. Key features include:\n\n- **Sticky Notes**: Users can easily add, edit, and move sticky notes, perfect for brainstorming sessions and quick note-taking.\n- **Shapes**: A comprehensive set of shapes including rectangles, circles, and custom polygons, allowing for clear and structured visual representations.\n- **Arrows**: Intuitive tools to create and manipulate arrows, ideal for demonstrating relationships and flow in diagrams.\n- **Customization**: Extensive customization options for all elements, including color, size, and text annotations.\n- **Interactive Tools**: Tools designed for user interaction, such as drag-and-drop, resizing, and rotation, enhancing the overall collaborative experience.\n- **Seamless Integration**: Designed to integrate smoothly with BoardX and other digital whiteboard systems, ensuring a cohesive user experience.\n- **Real-Time Collaboration**: Capabilities that support real-time collaboration, allowing multiple users to interact with the canvas simultaneously.\n\n## Getting Started\n\n### Prerequisites\n\nBefore installing x-canvas, ensure you have:\n\n- [List of prerequisites]\n\n### Installation\n\nTo install x-canvas:\n\n- [Installation steps]\n\n### Basic Usage\n\nGetting started with x-canvas is straightforward:\n\n- [Basic usage examples]\n\n## Usage in Digital Whiteboard Applications\n\nx-canvas is designed to enhance digital whiteboard applications:\n\n- [Examples and guides for using x-canvas in whiteboard scenarios]\n\n## Integration with BoardX\n\nx-canvas can be seamlessly integrated into BoardX or other digital whiteboard platforms:\n\n- [Integration guide]\n\n## API Documentation\n\nThe x-canvas API offers comprehensive functionalities:\n\n- [API reference and examples]\n\n## Development and Contribution\n\nContributions to x-canvas are welcome:\n\n- [Guide for developers]\n\n## Roadmap and Future Plans\n\nStay updated with our future plans for x-canvas:\n\n- [Roadmap and future features]\n\n## License\n\nx-canvas is licensed under:\n\n- MIT License\n\n## Support and Contact\n\nFor support or inquiries:\n\n- [Support channels and contact information]\n \n## Acknowledgements\n\nWe owe immense gratitude to the top contributors of fabric.js, whose dedication and expertise have significantly influenced the development of x-canvas. A special thank you to:\n\n- Andrea Bogazzi (GitHub: asturur)\n- Juriy Zaytsev (GitHub: kangax)\n- Keyur Patel (GitHub: keyurpatel)\n- Steve Eberhardt (GitHub: melchiar)\n- Nimish Rajwade (GitHub: nimworks)\n- Shachar (GitHub: ShaMan123)\n- Stefan Hayden (GitHub: stefanhayden)\n- Vincent Battaglia (GitHub: vinch)\n\nYour contributions to fabric.js have been instrumental in advancing digital canvas technology. The x-canvas project greatly benefits from the groundwork you have laid, and your commitment to open-source development inspires us to continue innovating and improving in the field of digital whiteboarding and collaborative tools.\n\n\n## Appendices\n\nFor more information:\n\n- [Additional resources and documentation]\n\n\n\n","readmeFilename":"README.md"}