{"_id":"@concord-consortium/drawing-tool","_rev":"7-293f72b4852ba2806e8e474243126c64","name":"@concord-consortium/drawing-tool","dist-tags":{"latest":"2.4.0","next":"2.4.0-pre.1"},"versions":{"0.0.0-development":{"name":"@concord-consortium/drawing-tool","version":"0.0.0-development","keywords":["drawing","tool","draw","js"],"author":"","license":"MIT","_id":"@concord-consortium/drawing-tool@0.0.0-development","maintainers":[{"name":"concordconsortium","email":"softwaredev@concord.org"},{"name":"scytacki","email":"scytacki@concord.org"},{"name":"dougmartin","email":"doug@zoopdoop.com"},{"name":"tealefristoe","email":"fristoe@gmail.com"},{"name":"kswenson","email":"kswenson@concord.org"},{"name":"emcelroy","email":"emcelroy@concord.org"}],"homepage":"https://github.com/concord-consortium/drawing-tool#readme","bugs":{"url":"https://github.com/concord-consortium/drawing-tool/issues"},"dist":{"shasum":"d2ec80e96c326934b8f2ccc461e2c77d150554f9","tarball":"https://registry.npmjs.org/@concord-consortium/drawing-tool/-/drawing-tool-0.0.0-development.tgz","fileCount":95,"integrity":"sha512-1NCInQSmGC/C+BoAgnPUZY1TKF6yPgcOgdD0wEl6klz+WcYsEVNlPOE9pUCl4FpUmeL6E5+sbLm218XW3xUJcg==","signatures":[{"sig":"MEUCIQCi/HwwxVnnxlsWtUKzMKFPo7URFB0trHW1olHD16bA+AIgKniGf0s9823Fj4ysXgUhQBhMPd15s1r4bVKWRE2nD48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":667258},"main":"app/index.js","gitHead":"c7bc4566e44a5fdb6ea3b52e15136771deff9f2e","scripts":{"build":"NODE_OPTIONS=--openssl-legacy-provider webpack","start":"webpack-dev-server --inline --hot --content-base dist/","server":"webpack-dev-server"},"_npmUser":{"name":"scytacki","email":"scytacki@concord.org"},"repository":{"url":"git+https://github.com/concord-consortium/drawing-tool.git","type":"git"},"_npmVersion":"11.3.0","description":"HTML5 Drawing Tool","directories":{},"_nodeVersion":"24.1.0","dependencies":{"uuid":"^8.3.2","fabric":"3.6.3","hammerjs":"~2.0.4","query-string":"^4.3.2","eventemitter2":"~0.4.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.55.0","jquery":">= 2.1.3","webpack":"^4.43.0","css-loader":"^3.6.0","url-loader":"^4.1.0","file-loader":"^6.2.0","sass-loader":"^8.0.2","webpack-cli":"^3.3.12","style-loader":"^1.2.1","webpack-dev-server":"^3.11.0","copy-webpack-plugin":"^6.0.2"},"peerDependencies":{"jquery":">= 2.1.3"},"_npmOperationalInternal":{"tmp":"tmp/drawing-tool_0.0.0-development_1781290295005_0.394761843627889","host":"s3://npm-registry-packages-npm-production"}},"2.3.3-pre.0":{"name":"@concord-consortium/drawing-tool","version":"2.3.3-pre.0","keywords":["drawing","tool","draw","js"],"author":"","license":"MIT","_id":"@concord-consortium/drawing-tool@2.3.3-pre.0","maintainers":[{"name":"concordconsortium","email":"softwaredev@concord.org"},{"name":"scytacki","email":"scytacki@concord.org"},{"name":"dougmartin","email":"doug@zoopdoop.com"},{"name":"tealefristoe","email":"fristoe@gmail.com"},{"name":"kswenson","email":"kswenson@concord.org"},{"name":"emcelroy","email":"emcelroy@concord.org"}],"homepage":"https://github.com/concord-consortium/drawing-tool#readme","bugs":{"url":"https://github.com/concord-consortium/drawing-tool/issues"},"dist":{"shasum":"9df1d8bb196b1c10305a7533a4415935e2029272","tarball":"https://registry.npmjs.org/@concord-consortium/drawing-tool/-/drawing-tool-2.3.3-pre.0.tgz","fileCount":95,"integrity":"sha512-RXPp5zrs4llA/CriFRyXyh46ig05RsgYdK1JGjPuhlTm8x4UYTiblPASnfLG+zLS9R+s4ib6/Py8Bt8oXNqslA==","signatures":[{"sig":"MEYCIQCSy6ma3/5GrPuYlumP99YCQFXLKwxctvjiq67qCp7liAIhAPVRwVGHFqVb6fSjv6Q/rYsqQBv/FMZ+1KJrQgP1bAJm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@concord-consortium%2fdrawing-tool@2.3.3-pre.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":667252},"main":"app/index.js","gitHead":"c7bc4566e44a5fdb6ea3b52e15136771deff9f2e","scripts":{"build":"NODE_OPTIONS=--openssl-legacy-provider webpack","start":"webpack-dev-server --inline --hot --content-base dist/","server":"webpack-dev-server"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5699bb79-ce4b-4f60-ad41-eeddecc0233c"}},"repository":{"url":"git+https://github.com/concord-consortium/drawing-tool.git","type":"git"},"_npmVersion":"11.5.2","description":"HTML5 Drawing Tool","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^8.3.2","fabric":"3.6.3","hammerjs":"~2.0.4","query-string":"^4.3.2","eventemitter2":"~0.4.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"sass":"^1.55.0","jquery":">= 2.1.3","webpack":"^4.43.0","css-loader":"^3.6.0","url-loader":"^4.1.0","file-loader":"^6.2.0","sass-loader":"^8.0.2","webpack-cli":"^3.3.12","style-loader":"^1.2.1","webpack-dev-server":"^3.11.0","copy-webpack-plugin":"^6.0.2"},"peerDependencies":{"jquery":">= 2.1.3"},"_npmOperationalInternal":{"tmp":"tmp/drawing-tool_2.3.3-pre.0_1781290656401_0.2775709683011227","host":"s3://npm-registry-packages-npm-production"}},"2.3.3-pre.1":{"name":"@concord-consortium/drawing-tool","version":"2.3.3-pre.1","keywords":["drawing","tool","draw","js"],"author":"","license":"MIT","_id":"@concord-consortium/drawing-tool@2.3.3-pre.1","maintainers":[{"name":"concordconsortium","email":"softwaredev@concord.org"},{"name":"scytacki","email":"scytacki@concord.org"},{"name":"dougmartin","email":"doug@zoopdoop.com"},{"name":"tealefristoe","email":"fristoe@gmail.com"},{"name":"kswenson","email":"kswenson@concord.org"},{"name":"emcelroy","email":"emcelroy@concord.org"}],"homepage":"https://github.com/concord-consortium/drawing-tool#readme","bugs":{"url":"https://github.com/concord-consortium/drawing-tool/issues"},"dist":{"shasum":"befffd6266947811c68c5e15185a839288eb1ef9","tarball":"https://registry.npmjs.org/@concord-consortium/drawing-tool/-/drawing-tool-2.3.3-pre.1.tgz","fileCount":95,"integrity":"sha512-/09wttGQBYAcHYxPvyJ9Poln9KwvULhqXm75YPWw7N+1OYjlTfCAikSfnkpkT5wc2pDJiRx7g0aJwB7Lkt0RQQ==","signatures":[{"sig":"MEUCIQDZCmG30tiM3rmnHQwk2CS6LqGznz53RY+QEMmvSVb9WQIgeSoYQAczb5Tm03WBSBfhfUNR1A0dAS0seGVzSHsDh+o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@concord-consortium%2fdrawing-tool@2.3.3-pre.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":667362},"main":"app/index.js","gitHead":"5e51179e8d10dd17e92ef969e0d55896ffcbee3b","scripts":{"build":"NODE_OPTIONS=--openssl-legacy-provider webpack","start":"NODE_OPTIONS=--openssl-legacy-provider webpack-dev-server --inline --hot --content-base dist/","server":"NODE_OPTIONS=--openssl-legacy-provider webpack-dev-server","prepack":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5699bb79-ce4b-4f60-ad41-eeddecc0233c"}},"repository":{"url":"git+https://github.com/concord-consortium/drawing-tool.git","type":"git"},"_npmVersion":"11.5.2","description":"HTML5 Drawing Tool","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^8.3.2","fabric":"3.6.3","hammerjs":"~2.0.4","query-string":"^4.3.2","eventemitter2":"~0.4.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"sass":"^1.55.0","jquery":">= 2.1.3","webpack":"^4.43.0","css-loader":"^3.6.0","url-loader":"^4.1.0","file-loader":"^6.2.0","sass-loader":"^8.0.2","webpack-cli":"^3.3.12","style-loader":"^1.2.1","webpack-dev-server":"^3.11.0","copy-webpack-plugin":"^6.0.2"},"peerDependencies":{"jquery":">= 2.1.3"},"_npmOperationalInternal":{"tmp":"tmp/drawing-tool_2.3.3-pre.1_1781299041980_0.8421403111979566","host":"s3://npm-registry-packages-npm-production"}},"2.3.3-pre.2":{"name":"@concord-consortium/drawing-tool","version":"2.3.3-pre.2","keywords":["drawing","tool","draw","js"],"author":"","license":"MIT","_id":"@concord-consortium/drawing-tool@2.3.3-pre.2","maintainers":[{"name":"concordconsortium","email":"softwaredev@concord.org"},{"name":"scytacki","email":"scytacki@concord.org"},{"name":"dougmartin","email":"doug@zoopdoop.com"},{"name":"tealefristoe","email":"fristoe@gmail.com"},{"name":"kswenson","email":"kswenson@concord.org"},{"name":"emcelroy","email":"emcelroy@concord.org"}],"homepage":"https://github.com/concord-consortium/drawing-tool#readme","bugs":{"url":"https://github.com/concord-consortium/drawing-tool/issues"},"dist":{"shasum":"f2514aa907b2d43cab1e7bada3f50f519f2b059c","tarball":"https://registry.npmjs.org/@concord-consortium/drawing-tool/-/drawing-tool-2.3.3-pre.2.tgz","fileCount":95,"integrity":"sha512-4HHriUIVJH+4sZvF3s2I5zjLcSe9xTM1YvjxXdnGUy2TNs/rqpIO60dKL389+7E2gcaQo14B3a6/v+i1wdJGig==","signatures":[{"sig":"MEYCIQDm2rFK9gxByjDk/XheB++P0t8vvYpKUO9xFqY0Qf8sJQIhAMiHWs1Vi8ZvK/KABv0Bha/7aGoBJ+Sj+qo4n06lZl2A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@concord-consortium%2fdrawing-tool@2.3.3-pre.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":667362},"main":"app/index.js","gitHead":"857798e16b541ff3eaaea82e69c1915fb160367d","scripts":{"build":"NODE_OPTIONS=--openssl-legacy-provider webpack","start":"NODE_OPTIONS=--openssl-legacy-provider webpack-dev-server --inline --hot --content-base dist/","server":"NODE_OPTIONS=--openssl-legacy-provider webpack-dev-server","prepack":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5699bb79-ce4b-4f60-ad41-eeddecc0233c"}},"repository":{"url":"git+https://github.com/concord-consortium/drawing-tool.git","type":"git"},"_npmVersion":"11.5.2","description":"HTML5 Drawing Tool","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^8.3.2","fabric":"3.6.3","hammerjs":"~2.0.4","query-string":"^4.3.2","eventemitter2":"~0.4.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"sass":"^1.55.0","jquery":">= 2.1.3","webpack":"^4.43.0","css-loader":"^3.6.0","url-loader":"^4.1.0","file-loader":"^6.2.0","sass-loader":"^8.0.2","webpack-cli":"^3.3.12","style-loader":"^1.2.1","webpack-dev-server":"^3.11.0","copy-webpack-plugin":"^6.0.2"},"peerDependencies":{"jquery":">= 2.1.3"},"_npmOperationalInternal":{"tmp":"tmp/drawing-tool_2.3.3-pre.2_1781303013769_0.9878913280577049","host":"s3://npm-registry-packages-npm-production"}},"2.4.0-pre.0":{"name":"@concord-consortium/drawing-tool","version":"2.4.0-pre.0","keywords":["drawing","tool","draw","js"],"author":"","license":"MIT","_id":"@concord-consortium/drawing-tool@2.4.0-pre.0","maintainers":[{"name":"concordconsortium","email":"softwaredev@concord.org"},{"name":"scytacki","email":"scytacki@concord.org"},{"name":"dougmartin","email":"doug@zoopdoop.com"},{"name":"tealefristoe","email":"fristoe@gmail.com"},{"name":"kswenson","email":"kswenson@concord.org"},{"name":"emcelroy","email":"emcelroy@concord.org"}],"homepage":"https://github.com/concord-consortium/drawing-tool#readme","bugs":{"url":"https://github.com/concord-consortium/drawing-tool/issues"},"dist":{"shasum":"3817dc1137c57cf7c1f30ecd068f37438859ed42","tarball":"https://registry.npmjs.org/@concord-consortium/drawing-tool/-/drawing-tool-2.4.0-pre.0.tgz","fileCount":95,"integrity":"sha512-bHyAAydF/lldbhvuJtVgReXxIry1xO9gXcm82rcFmMHZMUf1Pk39X4/ZQZOnkYy7/JC5Wgs0afk/WDRNvtjbFw==","signatures":[{"sig":"MEYCIQChRF+IpIAzP1Q2yxSRA+ligJ5IEXFWyFLFxW4LQk+EUwIhALLNu22/E+F6WvHiQDn8Lzjg9PlSn5zV8kXavL5aoMt+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@concord-consortium%2fdrawing-tool@2.4.0-pre.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":682764},"main":"app/index.js","gitHead":"90b3a8c8f79ab83e89aed7623d4afda7b6539e80","scripts":{"build":"NODE_OPTIONS=--openssl-legacy-provider webpack","start":"NODE_OPTIONS=--openssl-legacy-provider webpack-dev-server --inline --hot --content-base dist/","server":"NODE_OPTIONS=--openssl-legacy-provider webpack-dev-server","prepack":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5699bb79-ce4b-4f60-ad41-eeddecc0233c"}},"repository":{"url":"git+https://github.com/concord-consortium/drawing-tool.git","type":"git"},"_npmVersion":"11.5.2","description":"HTML5 Drawing Tool","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^8.3.2","fabric":"3.6.3","hammerjs":"~2.0.4","query-string":"^4.3.2","eventemitter2":"~0.4.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"sass":"^1.55.0","jquery":">= 2.1.3","webpack":"^4.43.0","css-loader":"^3.6.0","url-loader":"^4.1.0","file-loader":"^6.2.0","sass-loader":"^8.0.2","webpack-cli":"^3.3.12","style-loader":"^1.2.1","webpack-dev-server":"^3.11.0","copy-webpack-plugin":"^6.0.2"},"peerDependencies":{"jquery":">= 2.1.3"},"_npmOperationalInternal":{"tmp":"tmp/drawing-tool_2.4.0-pre.0_1781616678595_0.9313440259519368","host":"s3://npm-registry-packages-npm-production"}},"2.4.0-pre.1":{"name":"@concord-consortium/drawing-tool","version":"2.4.0-pre.1","keywords":["drawing","tool","draw","js"],"author":"","license":"MIT","_id":"@concord-consortium/drawing-tool@2.4.0-pre.1","maintainers":[{"name":"concordconsortium","email":"softwaredev@concord.org"},{"name":"scytacki","email":"scytacki@concord.org"},{"name":"dougmartin","email":"doug@zoopdoop.com"},{"name":"tealefristoe","email":"fristoe@gmail.com"},{"name":"kswenson","email":"kswenson@concord.org"},{"name":"emcelroy","email":"emcelroy@concord.org"}],"homepage":"https://github.com/concord-consortium/drawing-tool#readme","bugs":{"url":"https://github.com/concord-consortium/drawing-tool/issues"},"dist":{"shasum":"756c8dd998d58e0623717e506e88f47d7729f0e9","tarball":"https://registry.npmjs.org/@concord-consortium/drawing-tool/-/drawing-tool-2.4.0-pre.1.tgz","fileCount":95,"integrity":"sha512-ct4Hw2ArFw/t5YzxAGHl7+TKnp0QqXlMOzioSeBEEF3FFi1LX3gSl+eeMhh+DiyZIfoM8qDF3gtqg/1xCWQWwQ==","signatures":[{"sig":"MEUCIFCkp30VeX8elpZLoqbFAVRLMckTONaHDcEcIlyaiK7jAiEA+WgtcLX7re6acdUI1yWRPouZv/MkIJyIhMNCvtq5pPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@concord-consortium%2fdrawing-tool@2.4.0-pre.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":687241},"main":"app/index.js","gitHead":"b19b8d916c2f4cfe4d3e7ebe6a128f1999bcbdf2","scripts":{"build":"NODE_OPTIONS=--openssl-legacy-provider webpack","start":"NODE_OPTIONS=--openssl-legacy-provider webpack-dev-server --inline --hot --content-base dist/","server":"NODE_OPTIONS=--openssl-legacy-provider webpack-dev-server","prepack":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5699bb79-ce4b-4f60-ad41-eeddecc0233c"}},"repository":{"url":"git+https://github.com/concord-consortium/drawing-tool.git","type":"git"},"_npmVersion":"11.5.2","description":"HTML5 Drawing Tool","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^8.3.2","fabric":"3.6.3","hammerjs":"~2.0.4","query-string":"^4.3.2","eventemitter2":"~0.4.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"sass":"^1.55.0","jquery":">= 2.1.3","webpack":"^4.43.0","css-loader":"^3.6.0","url-loader":"^4.1.0","file-loader":"^6.2.0","sass-loader":"^8.0.2","webpack-cli":"^3.3.12","style-loader":"^1.2.1","webpack-dev-server":"^3.11.0","copy-webpack-plugin":"^6.0.2"},"peerDependencies":{"jquery":">= 2.1.3"},"_npmOperationalInternal":{"tmp":"tmp/drawing-tool_2.4.0-pre.1_1782221232258_0.7706816456268226","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@concord-consortium/drawing-tool","description":"HTML5 Drawing Tool","author":"","version":"2.4.0","bugs":{"url":"https://github.com/concord-consortium/drawing-tool/issues"},"homepage":"https://github.com/concord-consortium/drawing-tool#readme","main":"app/index.js","publishConfig":{"access":"public"},"keywords":["drawing","tool","draw","js"],"repository":{"type":"git","url":"git+https://github.com/concord-consortium/drawing-tool.git"},"scripts":{"build":"NODE_OPTIONS=--openssl-legacy-provider webpack","prepack":"npm run build","start":"NODE_OPTIONS=--openssl-legacy-provider webpack-dev-server --inline --hot --content-base dist/","server":"NODE_OPTIONS=--openssl-legacy-provider webpack-dev-server"},"peerDependencies":{"jquery":">= 2.1.3"},"dependencies":{"eventemitter2":"~0.4.14","fabric":"3.6.3","hammerjs":"~2.0.4","query-string":"^4.3.2","uuid":"^8.3.2"},"devDependencies":{"copy-webpack-plugin":"^6.0.2","css-loader":"^3.6.0","file-loader":"^6.2.0","jquery":">= 2.1.3","sass":"^1.55.0","sass-loader":"^8.0.2","style-loader":"^1.2.1","url-loader":"^4.1.0","webpack":"^4.43.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0"},"license":"MIT","_id":"@concord-consortium/drawing-tool@2.4.0","gitHead":"46cb0b061ddd8f9d5de7dac5a11c97a3f96002a2","_nodeVersion":"20.20.2","_npmVersion":"11.5.2","dist":{"integrity":"sha512-npz61VA7jcHCeN9h+g/P4tCfN0ngvcUMZphIqOqvpYYdr0X23RjyHDat07ZPch+BsdB+41gNVbPf2N/BrQObkQ==","shasum":"8bad56ce0afa1d4749a06bf3e25396e6683bac9d","tarball":"https://registry.npmjs.org/@concord-consortium/drawing-tool/-/drawing-tool-2.4.0.tgz","fileCount":95,"unpackedSize":687235,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@concord-consortium%2fdrawing-tool@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCMJTgJ5AjUKTrc4b07mrN21LXRaKFy0fqHhbXGN41fSwIhAMB+dPgFdK95hs3SsH13zhwW3KFVeiWQO4IFThjoo/o0"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5699bb79-ce4b-4f60-ad41-eeddecc0233c"}},"directories":{},"maintainers":[{"name":"concordconsortium","email":"softwaredev@concord.org"},{"name":"scytacki","email":"scytacki@concord.org"},{"name":"dougmartin","email":"doug@zoopdoop.com"},{"name":"tealefristoe","email":"fristoe@gmail.com"},{"name":"kswenson","email":"kswenson@concord.org"},{"name":"emcelroy","email":"emcelroy@concord.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/drawing-tool_2.4.0_1782393993018_0.2753244438467486"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-12T18:51:34.761Z","modified":"2026-06-25T13:26:33.579Z","0.0.0-development":"2026-06-12T18:51:35.187Z","2.3.3-pre.0":"2026-06-12T18:57:36.575Z","2.3.3-pre.1":"2026-06-12T21:17:22.164Z","2.3.3-pre.2":"2026-06-12T22:23:33.953Z","2.4.0-pre.0":"2026-06-16T13:31:18.774Z","2.4.0-pre.1":"2026-06-23T13:27:12.448Z","2.4.0":"2026-06-25T13:26:33.170Z"},"bugs":{"url":"https://github.com/concord-consortium/drawing-tool/issues"},"license":"MIT","homepage":"https://github.com/concord-consortium/drawing-tool#readme","keywords":["drawing","tool","draw","js"],"repository":{"type":"git","url":"git+https://github.com/concord-consortium/drawing-tool.git"},"description":"HTML5 Drawing Tool","maintainers":[{"name":"concordconsortium","email":"softwaredev@concord.org"},{"name":"scytacki","email":"scytacki@concord.org"},{"name":"dougmartin","email":"doug@zoopdoop.com"},{"name":"tealefristoe","email":"fristoe@gmail.com"},{"name":"kswenson","email":"kswenson@concord.org"},{"name":"emcelroy","email":"emcelroy@concord.org"}],"readme":"# HTML5 Drawing Tool\n\nDemo: https://models-resources.concord.org/drawing-tool/branch/master/examples/index.html\n\n## Using as a library\n\n`npm install @concord-consortium/drawing-tool`\n\nIn myComponent.js:\n\n```\nimport DrawingTool from \"@concord-consortium/drawing-tool\";\nimport '@concord-consortium/drawing-tool/dist/drawing-tool.css';\n\nconst drawingTool = new DrawingTool(\"#drawing-tool-container\");\n```\n\n## Development\n* Install (if you don't have them):\n    * [Node.js](http://nodejs.org) : `brew install node` on OS X\n    * Node.js 18+ is required for local builds (`npm run build`) — webpack 4 needs the `--openssl-legacy-provider` flag, which is baked into the build script and only exists on Node 17+.\n    * [Live server](https://www.npmjs.com/package/live-server) :`npm install -g live-server`\n* Run:\n    * `npm install` to install dependencies.\n    * `webpack --watch` -- Automatically compiles sources to `./dist`\n    * `live-server .` -- starts a web server on [http://localhost:8080/](http://localhost:8080/)\n    * Open [http://localhost:8080/examples/](http://localhost:8080/examples/).\n    * Code!!\n    * `dist/` is built output and is **not** committed to git — it is built in CI for both the demo deploy and npm publish. The `webpack --watch` step above builds it locally only for previewing the demo with live-server.\n\n### Releasing\n\nPublishing to npm is automated. To cut a release, push a semver tag:\n\n```\ngit tag v2.3.3          # or v2.4.0-pre.1 for a prerelease\ngit push origin v2.3.3\n```\n\nThis triggers `.github/workflows/publish-library.yml`, which builds the library\nand publishes `@concord-consortium/drawing-tool` to npm. Tags with a prerelease\nsuffix (containing `-`) publish under the `next` dist-tag; plain `X.Y.Z` tags\npublish under `latest`. The committed `package.json` version stays\n`0.0.0-development`; the real version comes from the tag.\n\n### Packaging notes\n\nConsumers import this library two ways at once:\n\n```\nimport DrawingTool from \"@concord-consortium/drawing-tool\";        // → main → app/index.js (SOURCE)\nimport \"@concord-consortium/drawing-tool/dist/drawing-tool.css\";   // → built CSS in dist/\n```\n\nSo the published package must ship **both** `app/` (the source, consumed via\n`main`) **and** `dist/` (for the CSS). The UMD bundle `dist/drawing-tool.js` is\n**not** used by consumers. Implications when editing `package.json`:\n\n- Keep `files: [\"app\", \"dist\"]`. `dist/` is gitignored, and without this\n  allowlist npm falls back to `.gitignore` and would silently drop `dist/` from\n  the package — breaking the CSS import.\n- Don't repoint `main` away from the source or drop `app/`; consumers bundle the\n  source themselves (this is why we don't ship only `dist/` like some sibling\n  libraries).\n\nA future migration could ship TypeScript types and/or a built entry point to\nsimplify this — see [docs/consumer-migration-to-scoped-package.md](docs/consumer-migration-to-scoped-package.md).\n\n### Undo / redo feature\n\nIf you are planning to add new feature that will be exposed in UI or via main API, you should consider whether\nthis action should be saved in history (so undo and redo is possible) or not.\n\nIf so, all you need to do is to call `DrawingTool.pushToHistory` method.\n\nThe current convention is that everything that modifies **canvas** should be saved in history, e.g.:\n\n* new object created\n* object removed\n* object stroke color changed\n* canvas dimensions changed\n\nHowever state of the drawing tool itself is not tracked, so e.g. following events are **not** saved:\n\n* tool changed\n* current stroke color changed\n* current fill color changed\n\nIf an action is async and callback can be provided, callback should be invoked **after** history is updated\n(see `DrawingTool.setBackgroundImage`). It gives us more flexibility, as the client code can reset history\nafter action is complete so user won't be able to undo it (sometimes it is useful).\n\n### JSON state converter\n\nDrawing Tool state can be serialized to JSON. If you're introducing non-backward compatible change, update version in `DrawingTool#save` method and add approperiate conversion to `convert-state.js`.\n","readmeFilename":"README.md"}