{"_id":"tiled-property-flattener","_rev":"12-c8bbbd0861d4868d4ab79b6fa94b3e91","name":"tiled-property-flattener","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.0":{"name":"tiled-property-flattener","type":"module","version":"1.0.0","description":"Flattens the properties of the Tiled classes contained by any Tiled class, or Tiled object/layer, into the Tiled class's/object's/layer's own properties, as if it had inherited the properties. Additionally, allows the user to mark classes as being intenti","main":"index.js","scripts":{"tsc":"tsc -p tsconfig.json","parse":"node --es-module-specifier-resolution=node ./dist/index.js"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/Tiled-Property-Flattener.git"},"keywords":["Tiled","Phaser","JSON","Parser"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","phaser":"^3.60.0","prettier":"2.8.8","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","minimist":"^1.2.8"},"gitHead":"34c48e374bb4453a95bce1074ffaefad34dea839","bugs":{"url":"https://github.com/rui-han-crh/Tiled-Property-Flattener/issues"},"homepage":"https://github.com/rui-han-crh/Tiled-Property-Flattener#readme","_id":"tiled-property-flattener@1.0.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-ifI5L9BqoGPSadh4xoGCGh+nf4wsv7pixu0rexXUNZWbXY1oSApUhJM8PcUUtUO2SjkNG5TsipT0bbWjwAxpIg==","shasum":"80b6d000f6f8c31870901e91c7dba51bcc5a8d9f","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.0.0.tgz","fileCount":29,"unpackedSize":74247,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDbEA73cpFgJBQogPctlFbKUuFfOP49m5lZ2DpupsND+AiBmNS0CNS0ckqQpwmcuVPQKCa2+l28Czl4+QVDWCL7Muw=="}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.0.0_1688156306969_0.6165324054193833"},"_hasShrinkwrap":false},"1.0.1":{"name":"tiled-property-flattener","type":"module","version":"1.0.1","description":"Flattens the properties of the Tiled classes contained by any Tiled class, or Tiled object/layer, into the Tiled class's/object's/layer's own properties, as if it had inherited the properties. Additionally, allows the user to mark classes as being intenti","main":"index.js","scripts":{"tsc":"tsc -p tsconfig.json","parse":"node --es-module-specifier-resolution=node ./dist/index.js"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/Tiled-Property-Flattener.git"},"keywords":["Tiled","Phaser","JSON","Parser"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","phaser":"^3.60.0","prettier":"2.8.8","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","minimist":"^1.2.8"},"gitHead":"7e7afce43f86c0c60e8880a9340402a232bf8e37","bugs":{"url":"https://github.com/rui-han-crh/Tiled-Property-Flattener/issues"},"homepage":"https://github.com/rui-han-crh/Tiled-Property-Flattener#readme","_id":"tiled-property-flattener@1.0.1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-MYAi0P/N7ZcCWzWTCv+x/C5Es4UF14dqDmESmXfFgIUIAqvuy3ONTHf+GJVBfL//XgYyWWVjXRpx7GVITs0oBQ==","shasum":"9cbcab7875850b7f7c7f1e9f68d3818dcbed7d8f","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.0.1.tgz","fileCount":25,"unpackedSize":177900,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQjOvNxk08injDTBpdhFx1rs2734EjA1Xu3Wo3Nt88fAIgD6v1SiYgDaflQs6D2ZiZeZMFfypyd2XXVc5W8VAEQG4="}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.0.1_1688189359216_0.12116053215348832"},"_hasShrinkwrap":false},"1.0.2":{"name":"tiled-property-flattener","type":"module","version":"1.0.2","description":"Flattens the properties of the Tiled classes contained by any Tiled class, or Tiled object/layer, into the Tiled class's/object's/layer's own properties, as if it had inherited the properties. Additionally, allows the user to mark classes as being intenti","main":"index.js","scripts":{"tsc":"tsc -p tsconfig.json","parse":"node --es-module-specifier-resolution=node ./dist/index.js"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/Tiled-Property-Flattener.git"},"keywords":["Tiled","Phaser","JSON","Parser"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","phaser":"^3.60.0","prettier":"2.8.8","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","minimist":"^1.2.8"},"gitHead":"11a2ff54fc90d7efb9666ee53f0937fd7eb5e6c2","bugs":{"url":"https://github.com/rui-han-crh/Tiled-Property-Flattener/issues"},"homepage":"https://github.com/rui-han-crh/Tiled-Property-Flattener#readme","_id":"tiled-property-flattener@1.0.2","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-1OQl0RCO5sqAR0TijTpxJDipuq7ggrYG+yDTZoQx2OEXi9q4cscVmdwDBWSVh7QFMOonlyUMDIa5PsBDk6v6ng==","shasum":"2586b4303115e346c96ee769fe9b859eab51b0bc","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.0.2.tgz","fileCount":25,"unpackedSize":178702,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHUwr5Npc0kYvMRQin1208FqTzzUae/pYn07NdfsLk65AiEA6MDrlBMv8ds7WmtlRLPkMtLS+YsOeOn+mLFqtHCMvX4="}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.0.2_1688190370506_0.6361004371651113"},"_hasShrinkwrap":false},"1.0.3":{"name":"tiled-property-flattener","version":"1.0.3","description":"Flattens the properties of the Tiled classes contained by any Tiled class, or Tiled object/layer, into the Tiled class's/object's/layer's own properties, as if it had inherited the properties. Additionally, allows the user to mark classes as being intenti","main":"dist/tiled-property-flattener.js","module":"dist/tiled-property-flattener.mjs","typings":"dist/tiled-property-flattener.d.ts","scripts":{"start":"node ./dist/tpf_cmd.js","test":"jest --config jestconfig.json","build":"tsc"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/Tiled-Property-Flattener.git"},"keywords":["Tiled","Phaser","JSON","Parser"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/jest":"^29.5.2","@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","jest":"^29.5.0","phaser":"^3.60.0","prettier":"2.8.8","rollup":"^3.26.0","ts-jest":"^29.1.1","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","minimist":"^1.2.8","rollup-plugin-dts":"^5.3.0","rollup-plugin-esbuild":"^5.0.0"},"gitHead":"f8d5d7da6c90a16d887df873120d17473da6594c","bugs":{"url":"https://github.com/rui-han-crh/Tiled-Property-Flattener/issues"},"homepage":"https://github.com/rui-han-crh/Tiled-Property-Flattener#readme","_id":"tiled-property-flattener@1.0.3","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-sKnbTNOdK0AA/anhcmcpCa1ymmdvD3fr6F5mRwet/DvzwV02XyPEZRVoihEbLhUQXEaS777iMw9NgPG906Cr4w==","shasum":"e7d1d058525790dbe6604dbe830504ce9114315f","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.0.3.tgz","fileCount":15,"unpackedSize":129927,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtJleBPR3tSj/9/j1uxIV5AhcuReYfDAaFLboset6lEAIhAOFUzs+rZayfJbBuJ1BxXu/ltFfw2i9NR19d1Nzu9wVc"}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.0.3_1688213678194_0.005401863600584589"},"_hasShrinkwrap":false},"1.0.4":{"name":"tiled-property-flattener","version":"1.0.4","description":"Flattens the properties of the Tiled classes contained by any Tiled class, or Tiled object/layer, into the Tiled class's/object's/layer's own properties, as if it had inherited the properties. This allows easy access to each asset's custom properties. Add","main":"dist/tiled-property-flattener.js","module":"dist/tiled-property-flattener.mjs","types":"dist/tiled-property-flattener.d.ts","type":"module","scripts":{"start":"node ./flatten_cli.js","test":"jest --config jestconfig.json","build":"npm run bundle && tsc","bundle":"esbuild src/tiled_property_flattener.ts --bundle --minify --format=esm --outfile=dist/tiled_property_flattener.min.js","clean":"rm -rf dist/*"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/Tiled-Property-Flattener.git"},"keywords":["Tiled","Phaser","JSON","Parser"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/jest":"^29.5.2","@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","jest":"^29.5.0","phaser":"^3.60.0","prettier":"2.8.8","ts-jest":"^29.1.1","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","minimist":"^1.2.8","tiled-property-flattener":"^1.0.3"},"gitHead":"c392e6276e4d65b0f50a36546a071e42115e5b84","bugs":{"url":"https://github.com/rui-han-crh/Tiled-Property-Flattener/issues"},"homepage":"https://github.com/rui-han-crh/Tiled-Property-Flattener#readme","_id":"tiled-property-flattener@1.0.4","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-1X43hJzHfumaYGfmnG5HPyRlsBryZhY43oSs2wx3eOqYyOuSSxZeyFVE2wiKP0UPoxKwAnRxp5l3PCfEAIX8rw==","shasum":"0b8c043e1dfa9b1aaca406d7e4ee9186d4dd9e4d","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.0.4.tgz","fileCount":12,"unpackedSize":21627,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDZDckbk236YuYgfz9JWHYN+x83g0nqycq9qZcuHfknpAiEArZ6/7K9BvaU+qzbtuLMKc49W+XVrWAntXheWjTfhG0Y="}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.0.4_1688222106518_0.9372853296927375"},"_hasShrinkwrap":false},"1.0.5":{"name":"tiled-property-flattener","version":"1.0.5","description":"Flattens the properties of the Tiled classes contained by any Tiled class, or Tiled object/layer, into the Tiled class's/object's/layer's own properties, as if it had inherited the properties. This allows easy access to each asset's custom properties. Add","main":"dist/tiled-property-flattener.min.js","types":"dist/tiled-property-flattener.d.ts","type":"module","scripts":{"start":"node ./flatten_cli.js","test":"jest --config jestconfig.json","build":"npm run bundle && tsc","bundle":"esbuild src/tiled_property_flattener.ts --bundle --minify --format=esm --outfile=dist/tiled_property_flattener.min.js","clean":"rm -rf dist/*"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/Tiled-Property-Flattener.git"},"keywords":["Tiled","Phaser","JSON","Parser"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/jest":"^29.5.2","@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","jest":"^29.5.0","phaser":"^3.60.0","prettier":"2.8.8","ts-jest":"^29.1.1","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","minimist":"^1.2.8","tiled-property-flattener":"^1.0.3"},"gitHead":"c392e6276e4d65b0f50a36546a071e42115e5b84","bugs":{"url":"https://github.com/rui-han-crh/Tiled-Property-Flattener/issues"},"homepage":"https://github.com/rui-han-crh/Tiled-Property-Flattener#readme","_id":"tiled-property-flattener@1.0.5","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-Yzv744+JrY2lnaCZSGRE662IQJh1hv3LEsvPJn02nYkP02De4tWOB5lFLv7zHmxZ7OO/DrkhTMoPu6I8DtV9pg==","shasum":"bccbf0da4daef62e2eea9e2c4ef833ff3025ee74","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.0.5.tgz","fileCount":12,"unpackedSize":21582,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBg5FIfEi5x0Gtx9gFYS9XsmCqkINKpeHNKQvuGiCxKVAiEAmcq+SoAAFlPOZ35/ZPf5fYgjiuhERnmHueATTSaXWj8="}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.0.5_1688222351186_0.27622799614472804"},"_hasShrinkwrap":false},"1.0.6":{"name":"tiled-property-flattener","version":"1.0.6","description":"Flattens the properties of the Tiled classes contained by any Tiled class, or Tiled object/layer, into the Tiled class's/object's/layer's own properties, as if it had inherited the properties. This allows easy access to each asset's custom properties. Add","main":"dist/tiled_property_flattener.min.js","types":"dist/tiled_property_flattener.d.ts","type":"module","scripts":{"start":"node ./flatten_cli.js","test":"jest --config jestconfig.json","build":"npm run bundle && tsc","bundle":"esbuild src/tiled_property_flattener.ts --bundle --minify --format=esm --outfile=dist/tiled_property_flattener.min.js","clean":"rm -rf dist/*"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/Tiled-Property-Flattener.git"},"keywords":["Tiled","Phaser","JSON","Parser"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/jest":"^29.5.2","@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","jest":"^29.5.0","phaser":"^3.60.0","prettier":"2.8.8","ts-jest":"^29.1.1","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","minimist":"^1.2.8","tiled-property-flattener":"^1.0.3"},"gitHead":"c392e6276e4d65b0f50a36546a071e42115e5b84","bugs":{"url":"https://github.com/rui-han-crh/Tiled-Property-Flattener/issues"},"homepage":"https://github.com/rui-han-crh/Tiled-Property-Flattener#readme","_id":"tiled-property-flattener@1.0.6","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-zZ9ISC4Yy7/EUQ1hsjGhsQDCXPGIM2XLMqlyoc5JzZM0CmmSDQKj9vBN2ZnQPCBvp2XFxornGb7lY4LNydWSEA==","shasum":"502b57b0a7449463ca4aff6e468890858379e8d7","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.0.6.tgz","fileCount":12,"unpackedSize":21582,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDsq5NtZaVu1nR+vdbdVPWhAgeqNYyKICMISN82VNasbwIgU1w6Iz9zPqUQTFBu/yziyns7kQ4xxO+V5EIzYxx+n3g="}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.0.6_1688222431556_0.1189713354258164"},"_hasShrinkwrap":false},"1.0.7":{"name":"tiled-property-flattener","version":"1.0.7","description":"Flattens the properties of the Tiled classes contained by any Tiled class, or Tiled object/layer, into the Tiled class's/object's/layer's own properties, as if it had inherited the properties. This allows easy access to each asset's custom properties. Add","main":"dist/tiled_property_flattener.min.js","types":"dist/tiled_property_flattener.d.ts","type":"module","scripts":{"start":"node ./flatten_cli.js","test":"jest --config jestconfig.json","build":"npm run bundle && tsc","bundle":"esbuild src/tiled_property_flattener.ts --bundle --minify --format=esm --outfile=dist/tiled_property_flattener.min.js","clean":"rm -rf dist/*"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/Tiled-Property-Flattener.git"},"keywords":["Tiled","Phaser","JSON","Parser"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/jest":"^29.5.2","@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","jest":"^29.5.0","prettier":"2.8.8","ts-jest":"^29.1.1","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","minimist":"^1.2.8"},"gitHead":"a76d8559e7ed85e8cf5da2919307cad05546e15c","bugs":{"url":"https://github.com/rui-han-crh/Tiled-Property-Flattener/issues"},"homepage":"https://github.com/rui-han-crh/Tiled-Property-Flattener#readme","_id":"tiled-property-flattener@1.0.7","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-N0eUAn21w+hfvoN7ibYRh9BFszVsRDVjLyYwvJp97+FG0t4ZuHv597Q5VIB+y+kLmOsvGmp4nwwWlzYgfcujSA==","shasum":"4a3dde3f3f04efda0aa300cb4e47cf1ea6a993bd","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.0.7.tgz","fileCount":12,"unpackedSize":21476,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5ntxhYaeou9TF+SY1I9ecmg/voMbwi05cgsKeSlxFCgIhAL58FWdKTXMl7pBwTZNE4AeO7YUvydnsLdE9YdUBwTPf"}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.0.7_1688222927140_0.05303312473372945"},"_hasShrinkwrap":false},"1.0.8":{"name":"tiled-property-flattener","version":"1.0.8","description":"Flattens the properties of the Tiled classes contained by any Tiled class, or Tiled object/layer, into the Tiled class's/object's/layer's own properties, as if it had inherited the properties. This allows easy access to each asset's custom properties. Add","main":"dist/tiled_property_flattener.min.js","types":"dist/tiled_property_flattener.d.ts","type":"module","scripts":{"start":"node ./flatten_cli.js","test":"jest --config jestconfig.json","build":"npm run bundle && tsc","bundle":"esbuild src/tiled_property_flattener.ts --bundle --minify --format=esm --outfile=dist/tiled_property_flattener.min.js","clean":"rm -rf dist/*"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/Tiled-Property-Flattener.git"},"keywords":["Tiled","Phaser","JSON","Parser"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/jest":"^29.5.2","@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","jest":"^29.5.0","prettier":"2.8.8","ts-jest":"^29.1.1","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","minimist":"^1.2.8"},"gitHead":"09fc633b40c0e39b9801a53f1c3b6a959fb2020b","bugs":{"url":"https://github.com/rui-han-crh/Tiled-Property-Flattener/issues"},"homepage":"https://github.com/rui-han-crh/Tiled-Property-Flattener#readme","_id":"tiled-property-flattener@1.0.8","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-Z75nJsB0BnZopReMBtAaC5vHG1bN0TbPmphMXrBFXQKkKiVH0jhZalQq29Zd4tfr3yPGj7sxGh2JACBChlDU1g==","shasum":"fa7aab6cac23b4f0cc34217e9bc619e0be0f10d9","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.0.8.tgz","fileCount":12,"unpackedSize":21629,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEJPYDhjpk6FnHVCVc3wGFYkXTAIBlIpP/56eLEEUQRQIgXQsjyYDZodlP/7UENVtajgIxvz+Xgbsxok6aV7VuHW4="}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.0.8_1688226509463_0.8224555645160629"},"_hasShrinkwrap":false},"1.0.9":{"name":"tiled-property-flattener","version":"1.0.9","description":"Provides a way to parse Tiled project files (.tiled-project) and maps into typescript usable format,. Additionally, it also flattens the properties of nested Tiled classes into the root Tiled class's/object's/layer's own properties, as if it had inherited","main":"dist/tiled_property_flattener.min.js","types":"dist/tiled_property_flattener.d.ts","type":"module","scripts":{"start":"node ./flatten_cli.js","test":"jest --config jestconfig.json","build":"npm run bundle && tsc","bundle":"esbuild src/tiled_property_flattener.ts --bundle --minify --format=esm --outfile=dist/tiled_property_flattener.min.js","clean":"rm -rf dist/*"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/Tiled-Property-Flattener.git"},"keywords":["Tiled Project","Tiled Map","Parser","Flattener","JSON"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/jest":"^29.5.2","@types/lodash":"^4.14.195","@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","jest":"^29.5.0","prettier":"2.8.8","ts-jest":"^29.1.1","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","lodash":"^4.17.21","minimist":"^1.2.8"},"gitHead":"9b79075fe4e19edd6f3359e0ed130ad22612cf8f","bugs":{"url":"https://github.com/rui-han-crh/Tiled-Property-Flattener/issues"},"homepage":"https://github.com/rui-han-crh/Tiled-Property-Flattener#readme","_id":"tiled-property-flattener@1.0.9","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-KfqjQGdHsxxGycnjbp0F6oWcDb4TqXEOIXtWDQcH1UVyyJbPQnktAxfkBHoEDyzZ498ekmeIgT1RzvpcpWvECw==","shasum":"bd749fbf1aaa3c490fe122df28d6458b208981aa","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.0.9.tgz","fileCount":16,"unpackedSize":107702,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJK9aSRW5hNc8MJF/wqxuHeXTbuy2NLHSqRc/W2Vuv+wIgY32tDs66zE7TQOyif/wG9V3gnL97pXB67PkYVU3Alok="}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.0.9_1688358327083_0.41762130161621935"},"_hasShrinkwrap":false},"1.0.10":{"name":"tiled-property-flattener","version":"1.0.10","description":"Provides a way to parse Tiled project files (.tiled-project) and maps into typescript usable format,. Additionally, it also flattens the properties of nested Tiled classes into the root Tiled class's/object's/layer's own properties, as if it had inherited","main":"dist/tiled_property_flattener.min.js","types":"dist/tiled_property_flattener.d.ts","type":"module","scripts":{"start":"node ./flatten_cli.js","test":"jest --config jestconfig.json","build":"npm run bundle && tsc","bundle":"esbuild src/tiled_property_flattener.ts --bundle --minify --format=esm --outfile=dist/tiled_property_flattener.min.js","clean":"rm -rf dist/*"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/Tiled-Property-Flattener.git"},"keywords":["Tiled Project","Tiled Map","Parser","Flattener","JSON"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/jest":"^29.5.2","@types/lodash":"^4.14.195","@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","jest":"^29.5.0","prettier":"2.8.8","ts-jest":"^29.1.1","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","lodash":"^4.17.21","minimist":"^1.2.8"},"gitHead":"1f29238d51e4399216de8ff71f129c52fddb5e47","bugs":{"url":"https://github.com/rui-han-crh/Tiled-Property-Flattener/issues"},"homepage":"https://github.com/rui-han-crh/Tiled-Property-Flattener#readme","_id":"tiled-property-flattener@1.0.10","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-az7K5+3qENtwdqtrcDcYkKCpt8NK4FhI7H5YDgQ+mcZQfBf0Je7AFNt2tNu00U3KXyX+SLbTGA4/hYNScdfbyQ==","shasum":"3a83cbdbc2a2dc55227171b801cf82962b0b7079","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.0.10.tgz","fileCount":18,"unpackedSize":108004,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAtYGPaTklwr1xrNXziZh+XQHcWfIBEXeWsUN8N/GZmAAiBCnuDluCshIzrDkj/RJ6kRIahUk2g/cVw2kx3mb3XySA=="}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.0.10_1688370851751_0.4662869546421551"},"_hasShrinkwrap":false},"1.1.0":{"name":"tiled-property-flattener","version":"1.1.0","description":"Provides a way to parse Tiled project files (.tiled-project) and maps into typescript usable format,. Additionally, it also flattens the properties of nested Tiled classes into the root Tiled class's/object's/layer's own properties, as if it had inherited","main":"dist/tiled_property_flattener.min.js","types":"dist/tiled_property_flattener.d.ts","type":"module","scripts":{"start":"node ./flatten_cli.js","test":"jest --config jestconfig.json","build":"npm run bundle && tsc","bundle":"esbuild src/tiled_property_flattener.ts --bundle --minify --format=esm --outfile=dist/tiled_property_flattener.min.js","clean":"rm -rf dist/*"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/tiled-property-flattener.git"},"keywords":["tiled","project","map","parser","flattener","json","property","types"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/jest":"^29.5.2","@types/lodash":"^4.14.195","@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-jest":"^27.2.2","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","jest":"^29.5.0","prettier":"2.8.8","ts-jest":"^29.1.1","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","lodash":"^4.17.21","minimist":"^1.2.8"},"gitHead":"8a5b46b086d29061104041ea00e1e10d987fdcad","bugs":{"url":"https://github.com/rui-han-crh/tiled-property-flattener/issues"},"homepage":"https://github.com/rui-han-crh/tiled-property-flattener#readme","_id":"tiled-property-flattener@1.1.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-D3NU4eyR4zbfAo53oikM96wfMyHR5G02SjXLViPNCNUCAUJuMniQivDrutavIlHAyfCpfoLDQ88MIwIPAiTytw==","shasum":"ecc4fdec1ba17fdd8d2ca6145c23362fbe89fa07","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.1.0.tgz","fileCount":23,"unpackedSize":193025,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD756G8P4/cJ2z4akxi87F7GO12rj1SQFxJwDCemPZ1EAIhAJjzoj1zh6wFNcPlJbp1rH2d5sCRzk2mtCFOmyrrvFwx"}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.1.0_1692026756948_0.8266045470361236"},"_hasShrinkwrap":false},"1.1.1":{"name":"tiled-property-flattener","version":"1.1.1","description":"Provides a way to parse Tiled project files (.tiled-project) and maps into typescript usable format,. Additionally, it also flattens the properties of nested Tiled classes into the root Tiled class's/object's/layer's own properties, as if it had inherited","main":"dist/tiled_property_flattener.min.js","types":"dist/tiled_property_flattener.d.ts","type":"module","scripts":{"start":"node ./flatten_cli.js","test":"jest --config jestconfig.json","build":"npm run bundle && tsc","bundle":"esbuild src/tiled_property_flattener.ts --bundle --minify --format=esm --outfile=dist/tiled_property_flattener.min.js","clean":"rm -rf dist/*"},"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/tiled-property-flattener.git"},"keywords":["tiled","project","map","parser","flattener","json","property","types"],"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"license":"MIT","devDependencies":{"@types/jest":"^29.5.2","@types/lodash":"^4.14.195","@types/node":"^20.3.2","@typescript-eslint/eslint-plugin":"^5.59.9","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-config-standard-with-typescript":"^35.0.0","eslint-plugin-import":"^2.27.5","eslint-plugin-jest":"^27.2.2","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","jest":"^29.5.0","prettier":"2.8.8","ts-jest":"^29.1.1","typescript":"^5.1.3"},"dependencies":{"@types/minimist":"^1.2.2","lodash":"^4.17.21","minimist":"^1.2.8"},"gitHead":"8a5b46b086d29061104041ea00e1e10d987fdcad","bugs":{"url":"https://github.com/rui-han-crh/tiled-property-flattener/issues"},"homepage":"https://github.com/rui-han-crh/tiled-property-flattener#readme","_id":"tiled-property-flattener@1.1.1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-Acj6WKbBkJlmqyDtlUIwvGHtNgopUmxYNZiLYWvgxWOTmtVubwskvOoZV3qqCGepBtL/18Fq/t4396n1NpqHng==","shasum":"62fd694f4857fae7018056b5679b9ca808c0d12f","tarball":"https://registry.npmjs.org/tiled-property-flattener/-/tiled-property-flattener-1.1.1.tgz","fileCount":20,"unpackedSize":112833,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFGxXttuvGLhVYRMBbAB0idHQwzg4EKlkyuB9y52hR0sAiBii7AiA0iubXoxNVlxvDDmW145xIxR7rjVDigqAdoy4A=="}]},"_npmUser":{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"},"directories":{},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tiled-property-flattener_1.1.1_1692026860870_0.7564129804998565"},"_hasShrinkwrap":false}},"time":{"created":"2023-06-30T20:18:26.968Z","1.0.0":"2023-06-30T20:18:27.125Z","modified":"2023-08-14T15:27:41.230Z","1.0.1":"2023-07-01T05:29:19.450Z","1.0.2":"2023-07-01T05:46:10.760Z","1.0.3":"2023-07-01T12:14:38.391Z","1.0.4":"2023-07-01T14:35:06.785Z","1.0.5":"2023-07-01T14:39:11.370Z","1.0.6":"2023-07-01T14:40:31.714Z","1.0.7":"2023-07-01T14:48:47.342Z","1.0.8":"2023-07-01T15:48:29.629Z","1.0.9":"2023-07-03T04:25:27.295Z","1.0.10":"2023-07-03T07:54:11.919Z","1.1.0":"2023-08-14T15:25:57.172Z","1.1.1":"2023-08-14T15:27:41.073Z"},"maintainers":[{"name":"rui-han-crh","email":"chen_ruihan@u.nus.edu"}],"description":"Provides a way to parse Tiled project files (.tiled-project) and maps into typescript usable format,. Additionally, it also flattens the properties of nested Tiled classes into the root Tiled class's/object's/layer's own properties, as if it had inherited","homepage":"https://github.com/rui-han-crh/tiled-property-flattener#readme","keywords":["tiled","project","map","parser","flattener","json","property","types"],"repository":{"type":"git","url":"git+https://github.com/rui-han-crh/tiled-property-flattener.git"},"author":{"name":"Chen Ruihan","url":"rui-han-crh"},"bugs":{"url":"https://github.com/rui-han-crh/tiled-property-flattener/issues"},"license":"MIT","readme":"# Overview\r\n\r\nThis package provides an easy way to parse information from entire Tiled projects, including the Tiled project file and the Tiled map files.\r\n\r\nIt also provides a way to mimic object-oriented inheritance and composition in Tiled custom types. The output of each parsed object is a flattened object that contains all the properties of the object, including the properties of the custom types that the object inherits from.\r\n\r\nIn addition, options can be specified to control the behavior of the parser, such as whether to flatten the properties of the custom types, or to keep them nested.\r\n\r\n## Problem\r\n\r\nIn the Tiled program, when a project is created, the data is saved separately:\r\n- The project file contains information about custom types as defined in the Custom Types Editor, which may compose other custom types within them.\r\n- The map file contains information about the map itself, including the layers, tilesets, and objects, which may be of the custom types defined in the project file.\r\n\r\nThe problem arises when you want to use the custom types in your game engine, such as within _Phaser_.\r\n\r\n_Phaser_ provides no easy way to read the project files, so you will need to parse both project and map files manually.\r\n\r\nHere is an example of an object with custom properties of a custom type defined in the project file:\r\n![Custom Properties Example](images/custom-properties-example.png)\r\n\r\nThe class field references a custom type declared in the project file.\r\n\r\nIn addition, when nesting types, if no custom property is overwritten, the value field of the nested type will be empty, as it assumes the default properties of the nested type referred to by name.\r\n\r\n![Empty Value in Nested Class](images/empty-value-in-nested-class.png)\r\n\r\nSo, resolving the references and overwritting the properties with the new properties defined on each object can be a tedious task.\r\n\r\nLastly, Tiled does not provide a way to extend custom types. To retrieve a property from an object, one would have to go through several nested properties, such as `audiA4.properties.car.motorVehicle.vehicle.amountofFuelLeft`. This is not ideal, as it is not intuitive to use nor easy to refactor.\r\n\r\n## Solution\r\n\r\nThis package solves these problems by providing a way to parse the project file and map file, and then resolve the references between the two. The output is a single object that contains all the information about the map, including the custom type properties of each object flattened into its own properties - as if the properties were declared on the object itself.\r\n\r\nThis is accomplished by mimicking the concept of inheritance in Tiled custom types - custom type A is defined to inherit another custom type B if custom type A has a member of type B. This is done recursively until the base type is reached. The properties of the base type are then copied into the properties of the derived type, and the modified properties of the derived type overwrite the default properties of the base type.\r\n\r\nComposition is also possible. This is done by defining a member of type B in custom type A with the prefix `@composite:`. Then, the member of type B remains a nested property of type A, but the nested properties of member B can still be flattened in itself. To better understand this feature, read the section on [Declaring composite properties](#declaring-composite-properties).\r\n\r\nWith this package, you can directly access the expected property via `.<PROPERTY_NAME>`, as if the property was directly declared on the object itself.\r\n\r\nIn the above example, one can access the `amountOfFuelLeft` property of the `audiA4` object by simply accessing `audiA4.amountOfFuelLeft`.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install tiled-property-flattener\r\n```\r\n\r\nThis project also supports TypeScript type definitions.\r\n\r\n## Usage\r\n\r\n---\r\n\r\nTo preview what the parsed map will look like:\r\n\r\nFirst, clone the project from GitHub and install the dependencies.\r\n\r\nFor single map files:\r\n```bash\r\nnpm start -p <PROJECT_FILE_PATH> [ -t <PROJECT_OUTPUT_PATH> ] [ -m <MAP_FILE_PATH> -o <OUTPUT_FILE> ]\r\n```\r\n\r\n| Option | Description |\r\n| --- | --- |\r\n| -p, --project-file | The path to the project file. |\r\n| -t, --output-project | The path to the output project file, if outputting the project file JSON is desired. |\r\n| -m, --map-file | The path to the map file. This must be specified together with the output file.|\r\n| -o, --output | The path to the output file. This must be specified together with the map file.|\r\n\r\nThis will output a single JSON file containing the parsed map.\r\n\r\nFor multiple map files (batch mode):\r\n```bash\r\nnpm start -- -b <path-to-project-directory> -o <path-to-output-directory>\r\n```\r\n\r\n| Option | Description |\r\n| --- | --- |\r\n| -b, --batch | The path to the project directory. |\r\n| -o, --output | The path to the output directory. Both the parsed project file and maps files will be output here. |\r\n\r\nThis will output a JSON file for each map file in the project directory to the specified output directory.\r\n\r\n---\r\n\r\nTo use in your code:\r\n\r\nFirst, run the npm install command above.\r\n\r\nThen, import the package and use the parsers:\r\n\r\n```typescript\r\nimport { TiledProjectParser, TiledMapParser, type TiledProjectParsedResult, type TiledMapParsedResult } from 'tiled-property-flattener';\r\n\r\n// Assuming you have the `projectFileData` ready as a JSON object...\r\nconst parsedProject = TiledProjectParser.parse(projectFileData);\r\n\r\n// You can read the properties of the custom types,\r\n// which is map of the custom type name to its flattened properties.\r\nconsole.log(\"Project types:\", parsedProject.getCustomTypesMap());\r\n// You can also read the enums, which are a map of the enum name to a Set of its values.\r\nconsole.log(\"Project enums:\", parsedProject.getEnumsMap());\r\n\r\n// Assuming you have the `mapFileData` ready as a JSON object...\r\nconst parsedMap = TiledMapParser.parse(mapFileData, parsedProject);\r\n\r\n// Now you can access the flattened properties,\r\n// which is a map of the object/layer/tileset id to its flattened properties.\r\nconsole.log(parsedMap.getObjectIdToPropertiesMap());\r\n\r\nconsole.log(parsedMap.getLayerIdToPropertiesMap());\r\n\r\nconsole.log(parsedMap.getTilesetIdToPropertiesMap());\r\n\r\n// Note: These accessors will copy the properties into a new object to prevent mutation, \r\n// so you should cache the result if you need to access it multiple times.\r\n```\r\n\r\nNote, every object contains the basic properties as defined in Tiled: ID, name, x and y. The objects and layers are inherently mapped by their IDs, because Tiled generates unique IDs for each object and layer (separately).\r\n\r\nYou may wish to transform this data into a format more suitable for your use.\r\n\r\nIn addition, enums are also supported. Enums are defined in the project file, and are used in the map file. The enums are resolved and flattened into the properties of the objects and layers that use them as a _Set_.\r\n\r\n## Declaring composite properties\r\n\r\nSometimes, it is desirable to maintain the nested properties of a custom type, instead of flattening them, such as one object possess two members of the same types. This is possible by declaring a member of type B in custom type A with the prefix `@composite:`. Then, the member of type B remains a nested property of type A, but the nested properties of member B can still be flattened.\r\n\r\nHere is an example - this Boeing737 has 2 engines. Each engine is declared as a composite property. Therefore, the members of type `Engine` are not flattened, but the nested properties of each engine are flattened.\r\n\r\n![Composite Properties of Boeing737](images/composite-properties-example.png)\r\n\r\nWhen the properties are parsed and flattened, we get the following result:\r\n![Parsed Result of Boeing737](images/parsed-result-of-boeing737.png)\r\n\r\nNote that all properties were flattened, except for the two engine marked with `@composite:`. However, as both engines extended from the the Matter class, the properties of the Matter parent class were flattened into each engine class.\r\n\r\nAdditionally, enums would be represented by the Set data structure, but as this is a parsed array, it is shown as an array in the image above.\r\n\r\n## Interpreting the data\r\n\r\n### Project Files\r\n\r\nBy default, project files are parsed into a `TiledProjectParsedResult` object, which contains two maps: one for the custom types and one for the enums.\r\n\r\nBoth maps will map the name of the custom type/enum to the properties of the custom type/enum.\r\n\r\n#### Custom Types\r\n\r\nIn the custom types map, the map directly maps the name of the custom type to the properties of the custom type as an object of key-value pairs. The keys are the names of the properties, and the values are the properties values themselves.\r\n\r\n#### Enums\r\n\r\nFor enums, since Tiled specifies an additional option to set enums as flags, the enum name is mapped to a EnumValues object. The EnumValues extend from Set, and contains the values of the enum.\r\nSince The EnumValues object also contains a `valuesAsFlags` property, which is true if the enum is a flag-like, and false otherwise.\r\n\r\nRegardless of whether the `valuesAsFlags` property is true or false, the values of the enum are always stored as a Set.\r\n\r\n### Map Files\r\n\r\nBy default, map files are parsed into a `TiledMapParsedResult` object, which contains three maps: one for the objects, one for the layers, and one for the tilesets.\r\n\r\n#### Object and Layer Properties\r\n\r\nThe object and layer maps will map the ID of the object/layer to the properties of the object/layer as an object of key-value pairs. The keys are the names of the properties, and the values are the properties values themselves.\r\n\r\n#### Tileset Properties\r\n\r\nThe tileset layer exhibits slightly different properties. Tilesets in tiled have no set ID, instead, they are identified by their first global tile ID (`firstgid`). Therefore, the tileset map will map the first global tile ID of the tileset to the properties of the tileset as an object of key-value pairs. The keys are the names of the properties, and the values are the properties values themselves.\r\n\r\nIn addition, within the tileset properties, there is a `tiles` property, which further maps the local tile ID to the properties of the tile as an object of key-value pairs. The keys are the names of the properties, and the values are the properties values themselves. This follows the layout of the map JSON file as specified by Tiled.\r\n\r\n#### Enums\r\n\r\nEnums may be the values of properties of objects, layers and tiles.\r\n\r\n#### Enums not as flags\r\n\r\nEnums that are not associated with flags will be set to the primitive value of the enum.\r\n\r\nFor example, if the enum, `Color`, is a string enum with the values `White`, `Red`, `Blue` and `Yellow`, then the value of the property will be one of these strings.\r\n\r\n![GUI enum no flags](images/gui-enum-no-flags.png)\r\n\r\n```json\r\n{\r\n    // ... other properties\r\n    \"color\": \"White\"\r\n    // ... more properties\r\n}\r\n```\r\n\r\n#### Enums as flags\r\n\r\nEnums that are set to be flags will be set to a Set of the values of the enum.\r\n\r\nFor example, if the enum, `Flavors` is a flag enum with the values `Vanilla`, `Chocolate Chip`, `Strawberry` and `Mint`, then the value of the property will be a Set of these strings, regardless of how many values are set.\r\n\r\n![GUI enum with flags](images/gui-enum-with-flags.png)\r\n\r\n```json\r\n{\r\n    // ... other properties\r\n    \"flavors\": Set<string> {\r\n        \"Vanilla\",\r\n        \"Chocolate Chip\"\r\n    }\r\n    // ... more properties\r\n}\r\n```","readmeFilename":"README.md"}