{"_id":"@campaign-buddy/json-schema-core","_rev":"5-82fa9a3136a791b65466f9938401f789","name":"@campaign-buddy/json-schema-core","dist-tags":{"latest":"3.0.1"},"versions":{"1.0.0":{"name":"@campaign-buddy/json-schema-core","version":"1.0.0","author":{"name":"Joseph Stewart"},"license":"MIT","_id":"@campaign-buddy/json-schema-core@1.0.0","maintainers":[{"name":"josephdangerstewart","email":"josephlikescode@gmail.com"}],"dist":{"shasum":"8e015f3f0f136aed7ab163bdf6a6074851dfbea9","tarball":"https://registry.npmjs.org/@campaign-buddy/json-schema-core/-/json-schema-core-1.0.0.tgz","fileCount":17,"integrity":"sha512-ix8UnTR2WaL2zef6RXgKfyuMcA0mX5EBBZjSXJG3QJOAXc0KrQYhaCt7hnrH5cJXhHIkm1kmPvpKPkppuMbMwA==","signatures":[{"sig":"MEUCIQCMOFUnNw6S9CiiD9d3bU6o+klvtClrokAdMplz3Fyh8AIgIXCJJhggwdw/e/j0Q5+ElUEeYEHayER2zYvuEcOl5k0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":65058,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkKL+pACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6/hAAjSJI95Mc4dkq1pF+AzP2uCMnv/6jQUFJDC5P3yxhv1d4AQ1n\r\ngYyOB3l2d19s8EuanG7YV63jFq3a7ws4UiW5FDiAQRnnYu89vsXC8ZRDmSGG\r\n1JGeIPdutSCkHybxhHaCcaTdZyZ5/2J9s5VdYMLrWtJXyi+fjDy03EAztlyB\r\nlrWwxk25FAHTZhRN7qsIMdnC35eZy+Ox2xXD6IdZRBpE8NFgzt6vgEZxuPvz\r\napDLdbNE62FA1wwHhVhPr6ZlSUJBECRv0ZAwlNuh7dcujAvKFAHpM2eSINNO\r\nQgtgJft/xV3CmOLgJlbRxArl2hbMQ2jgEGMwoYLckgCWTcY1YY1Z2+D+DKmz\r\nSO8w9kZ9+1XY1rv+3DZjex1pU7JROdSA39AmJzhHxDBd9g8djW9LDa60DIL1\r\nzG5bi7dwogkgki5+zus0GFSIROJLULGQ19r2Fk22qhBbNfWxij7TtMMKAJO+\r\nNUmXUpyl3hCBYNZ7cWD1Bp0h5wbTG2DTvugFB0GGpnLywwhULWVLuNzA1iml\r\nR7MIU9749QwyCSKtuR1TnB440txsmIwg0cNRC5sRKHfrKqcD6SkAhizsBXLZ\r\n3ZCxVYK2Fqa4UqJBLTe0Fdw+X3PcsZRTfM+9ezG8KoxL/YpUhKsn1T2FJIld\r\n3OTICeOwk8tBa7gbve0U4HKldlcjVmluoSI=\r\n=D71V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index","types":"dist/src/index","gitHead":"38ce438d19c64248504e52baf130577dc9292058","scripts":{"build":"tsc -b","add-local":"node ../../tools/addLocal","remove-local":"node ../../tools/removeLocal"},"_npmUser":{"name":"josephdangerstewart","email":"josephlikescode@gmail.com"},"_npmVersion":"7.24.2","description":"`@campaign-buddy/json-schema-core` is a utility for creating JSON Schema definitions compatible with the campaign buddy system. JSON Schema's created with the prop-types like API are guaranteed to be compatible with the campaign buddy system in that.","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.2.4","@types/json-schema":"^7.0.7"},"_npmOperationalInternal":{"tmp":"tmp/json-schema-core_1.0.0_1680392105508_0.6675372938664164","host":"s3://npm-registry-packages"}},"2.1.2":{"name":"@campaign-buddy/json-schema-core","version":"2.1.2","author":{"name":"Joseph Stewart"},"license":"MIT","_id":"@campaign-buddy/json-schema-core@2.1.2","maintainers":[{"name":"josephdangerstewart","email":"josephlikescode@gmail.com"}],"dist":{"shasum":"7197d097969ee0961a9fbbd1ae60caae22281128","tarball":"https://registry.npmjs.org/@campaign-buddy/json-schema-core/-/json-schema-core-2.1.2.tgz","fileCount":17,"integrity":"sha512-tpRERrzHcY9gg1LHyi9MBi4FDzECHySp5OEyb6/S3TIF0fCd3nSaqRuf5Rgip+l1m7eyBqAP1u3Lals5B+nKyw==","signatures":[{"sig":"MEUCIQDP1bOMYiFeL4Maozcgt3s+7RYM0m5ZFv34bJY5VwH/NQIgDnN/WdFra4D0FC7+IF7Kuuuhwr9q5h1DvdCaqz5rtFM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":65114,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOOxqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoUfBAAmL5XRVmvCzegjDHJFm3/uUi9WG5ppT9T5vBDokvYBIAVvgo4\r\nxjVCFd7mkqrQwxuSBzcFOfKCWvpjVKGmysxJZIzhuZ3wEOG3YHt2tfBOSmzv\r\neWSr2LLGv7WUQePtnt7Y854R4exBCCmBU2NQicE/bvPKssldUZEmfgGz3YTW\r\nzXnC8pDrFPfiobi0PyACG7+a+L+pLB+vrmwwgnO04t1aATW2Cf3nbvCExr19\r\ndrjjJwBM4F5hCwAjhR0UEQk02tpH4x7BvUHX+Ut0UTHpM3ORyJzsmi8D3m1Q\r\nWB1JWRIG6rlSLx0QODouEtN8ueN9R0V9dyBD0mmjJbkJoMGhoyRoCwLh0wvf\r\nUhPZIlJlx7HsmKuZnsYW2/BOaU3MinOBuoOdAmIptYKKqZG/iiQ/ptpPPFvq\r\neMRyFk9TtwHUzhcaFb3/XRgMOeMezQXLcKX6Ee7hKJmdZpQMJq/JlLc+O+uj\r\nLc49bF7y24UOIw5u4NtmGAD5cGqK70UZLEuYMeKRD2/qL8TbB4yq8eA2kcST\r\nQ9nAJLfUFpxAFjMgy4jHmhQThVqugN5NHjH8hXJja7eIoh6DEtryH8Uq76tz\r\n5OSlXi2j+8nujShd4Mid061PmYq4tjR1JQ8yk60nhbyoSkGayz9whcFm1uoB\r\nZey2RM+Q9mB9T/FOjzZt2UDxE86eNEuAMRQ=\r\n=ooDp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index","types":"dist/src/index","gitHead":"75100deef97cb60d59a4953e2e472d7ed27dc83c","scripts":{"build":"tsc -b","add-local":"node ../../tools/addLocal","remove-local":"node ../../tools/removeLocal"},"_npmUser":{"name":"josephdangerstewart","email":"josephlikescode@gmail.com"},"_npmVersion":"lerna/6.6.1/node@v18.15.0+x64 (linux)","description":"`@campaign-buddy/json-schema-core` is a utility for creating JSON Schema definitions compatible with the campaign buddy system. JSON Schema's created with the prop-types like API are guaranteed to be compatible with the campaign buddy system in that.","directories":{},"_nodeVersion":"18.15.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.2.4","@types/json-schema":"^7.0.7"},"_npmOperationalInternal":{"tmp":"tmp/json-schema-core_2.1.2_1681452138095_0.8404507102970775","host":"s3://npm-registry-packages"}},"2.1.4":{"name":"@campaign-buddy/json-schema-core","version":"2.1.4","author":{"name":"Joseph Stewart"},"license":"MIT","_id":"@campaign-buddy/json-schema-core@2.1.4","maintainers":[{"name":"josephdangerstewart","email":"josephlikescode@gmail.com"}],"dist":{"shasum":"2060ff0c14946c2aeea1da199bc9ab2421f8b972","tarball":"https://registry.npmjs.org/@campaign-buddy/json-schema-core/-/json-schema-core-2.1.4.tgz","fileCount":17,"integrity":"sha512-tZf6r3ddGynEzWOUoYGrBZB2ZVYG/iN1crt7ffpwE91QaYgTCzXgeeDjloXt70eOTH8QhiDRjY3V1+sO6TA4Ig==","signatures":[{"sig":"MEUCIQCiufak1w4+EUouLTM92wiI+bmt+K3mo3UB1wSxwLQ4RQIgDnaR/q9Jy4Dp+INHDR4SiiAJFVUiVj6lFSIOWx5WPes=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":65024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOkIsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmriiw//WIhWP11eEoH25Xvs27rvwWPWmY7Zb0vWZgg+xlv83hJuGpDf\r\ntlMtJh2nHTUlH55Cbj1MHfZeQpyyH4rkt5rfmqoowTeU4Jod8GvXxEXuCWq4\r\nu1QcyjtGFChauCpBTh8K6x/CFKxKB+5CXzenIPkF6cCWd6hfD4uDHmRxS2UV\r\n6oqqsz24EYLuVYG+5OAoZNysuIKXbu8qZOFVwEjTuZT0kqJDP7su+Y2HlgMF\r\nxyYEEcirn5GBDsm2cQWVTdhIBrK7Xux8AauR/gu6nYYtEiZFiB5lmIHFf6Dn\r\nFt6Or8pPE5hA0qKpmB7x/dkTGUDTQcVPhVbZ4YQxJmxwSsszhaIwfzjGpbuy\r\nIYzPWdm7LYgdIB/h1LgOFxd5IypjyucggloL+bxWqktd+S9MYs+Nhke8BKam\r\nT1dcN0yN5ONR76NzQb6OL319MdtBLQNb1KOEr6f9yjm6an9h5h0cellXJZy6\r\nvmcHvBgylc5kGmhzw1X0vCJiYpPog8Ol0sNzmQ65nUU14f+7pZNTXAVBQFN8\r\nd8UDXkSEIF5idq5aw7ga4gdFLOAisRxuhgn9zef7cw8tjtvqCdtJtYjNfN1U\r\nrNNrZCM+wQTEqQDHNPo68CLI5JRy1jJCqKbKpI/knFT7IfOi77dU6P18pq2o\r\nDVvw08hPeMnhCXDbSE2UM6f9CLU1QnjMgkI=\r\n=3Yrv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index","types":"dist/src/index","gitHead":"63f36e819c3326781abf7d0ec520566dcc7d49a0","scripts":{"build":"tsc -b","add-local":"node ../../tools/addLocal","remove-local":"node ../../tools/removeLocal"},"_npmUser":{"name":"josephdangerstewart","email":"josephlikescode@gmail.com"},"_npmVersion":"lerna/6.6.1/node@v18.15.0+x64 (linux)","description":"`@campaign-buddy/json-schema-core` is a utility for creating JSON Schema definitions compatible with the campaign buddy system. JSON Schema's created with the prop-types like API are guaranteed to be compatible with the campaign buddy system in that.","directories":{},"_nodeVersion":"18.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.2.4","@types/json-schema":"^7.0.7"},"_npmOperationalInternal":{"tmp":"tmp/json-schema-core_2.1.4_1681539628530_0.4418047897674373","host":"s3://npm-registry-packages"}},"2.1.5":{"name":"@campaign-buddy/json-schema-core","version":"2.1.5","author":{"name":"Joseph Stewart"},"license":"MIT","_id":"@campaign-buddy/json-schema-core@2.1.5","maintainers":[{"name":"josephdangerstewart","email":"josephlikescode@gmail.com"}],"dist":{"shasum":"01ab0079d045d92eaaa822b337540a5c8233bf15","tarball":"https://registry.npmjs.org/@campaign-buddy/json-schema-core/-/json-schema-core-2.1.5.tgz","fileCount":17,"integrity":"sha512-oC/yhnteOeJX5AFA9yDRfbJh0B82J865wmkWBdWcDDtJsHydpTlhCc2zIBZynOB+rnkHoTGIm+kup5kJXHArnw==","signatures":[{"sig":"MEYCIQDvl/YBcisKqOiCG3Own5sGujbzj6J+fyCY8QaL4+ZUSQIhALRUZebq/m8v+d3mbP9uMgUO5KwAj9XuUqwNGn683VJX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":65024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOkWyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpu0g/+OQWs+1uI7MhZW0UAe1ikIiveu65Y8iYtEmWKj7klgc0UqjzT\r\ncZX5UYl//IzkQ5pdG5L0iSMgK1qLVVwAboeV6Fm5Vq67IdvmBzMa5a7nP0VY\r\nOd5B8qm3D9maBPgZ67oH8rdPAVK8eIjvDT8TqsYaz/4AVEuqBLv24DO4xgca\r\nZ1a18Sdat85q+2Yfg0v5zPNJ7K6J909Fr+Pb5brZJXPcfnOg0eyXg4FyQ+6/\r\nElMOQ7PH8sxbaC/3AgXzOlTaWuBibFieAetvfo30JoWy6FCZaFQe4tae6pgZ\r\nS8KUKqYx4xp38QhMjFuUaVRxPludEk9HaIPNWfASMIYTonPFQoaBaUcz+seM\r\nMfOjCKkg/v7iuYE0aVTgenKW8G2FFfKHp3vlVRbrp3UkQJpuDl5FAHGvdxaf\r\nazyZgybXypK8t4+B0ILjYQALooUpwwIbxKmFDCHsgntWhwWW9lWiYxLXL+7b\r\n3bnxnDwdE2AflYehVSheiZeed48CXM8hXx6MRsaae6DPnpZ06b50dZshgOO+\r\n61C8e9cnyX4FVQks9GpdwV8o+CaW9tDsPZR5xV/Oi4imEe+9o18MCNSr5rey\r\njXfF57+fMMEzkRaIL3l/KWCJw7/TLljkJ47p1mwvCsJ1DWMCUGCn2uDgqHKW\r\n69LxqZ0rZAlBRKcSrVsWHjOOmKsKcFLu6Fc=\r\n=Cv1x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index","types":"dist/src/index","gitHead":"97b6f1ffde64804631dbb3d13638b2908d6e8bff","scripts":{"build":"tsc -b","add-local":"node ../../tools/addLocal","remove-local":"node ../../tools/removeLocal"},"_npmUser":{"name":"josephdangerstewart","email":"josephlikescode@gmail.com"},"_npmVersion":"lerna/6.6.1/node@v18.15.0+x64 (linux)","description":"`@campaign-buddy/json-schema-core` is a utility for creating JSON Schema definitions compatible with the campaign buddy system. JSON Schema's created with the prop-types like API are guaranteed to be compatible with the campaign buddy system in that.","directories":{},"_nodeVersion":"18.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.2.4","@types/json-schema":"^7.0.7"},"_npmOperationalInternal":{"tmp":"tmp/json-schema-core_2.1.5_1681540530627_0.4305002277809806","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"@campaign-buddy/json-schema-core","publishConfig":{"access":"public"},"version":"3.0.1","author":{"name":"Joseph Stewart"},"license":"MIT","devDependencies":{"@types/json-schema":"^7.0.7","typescript":"^5.8.3"},"scripts":{"build":"tsc -b","add-local":"node ../../tools/addLocal","remove-local":"node ../../tools/removeLocal"},"type":"module","main":"dist/src/index.js","module":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"d3273d9e8ebeb8ed5f5d320c16b3a7e767fe8206","description":"`@campaign-buddy/json-schema-core` is a utility for creating JSON Schema definitions compatible with the campaign buddy system. JSON Schema's created with the prop-types like API are guaranteed to be compatible with the campaign buddy system in that.","_id":"@campaign-buddy/json-schema-core@3.0.1","_nodeVersion":"22.16.0","_npmVersion":"lerna/6.6.1/node@v22.16.0+x64 (linux)","dist":{"integrity":"sha512-rRFj+Ya16L5jX+Fj+oThy7UW+50wOSbXcIizvBojC2BftGT5BselO5gKq68wll501QKS2xLYPIZfOQatbDHEEA==","shasum":"51176d7a7cdfb425ece15e31d62e0571313ddb9b","tarball":"https://registry.npmjs.org/@campaign-buddy/json-schema-core/-/json-schema-core-3.0.1.tgz","fileCount":17,"unpackedSize":74448,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCNDRTS84BOR2bCw8q9KxzmdwfmLOk/YSg/I0bShlbVQAIgCsw+6bydQFbv/1Cn36czNMI1pbf7Q4xz3TVul5J1kRQ="}]},"_npmUser":{"name":"josephdangerstewart","email":"josephlikescode@gmail.com"},"directories":{},"maintainers":[{"name":"josephdangerstewart","email":"josephlikescode@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/json-schema-core_3.0.1_1748933440699_0.22657441763438801"},"_hasShrinkwrap":false}},"time":{"created":"2023-04-01T23:35:05.429Z","modified":"2025-06-03T06:50:41.084Z","1.0.0":"2023-04-01T23:35:05.683Z","2.1.2":"2023-04-14T06:02:18.297Z","2.1.4":"2023-04-15T06:20:28.671Z","2.1.5":"2023-04-15T06:35:30.898Z","3.0.1":"2025-06-03T06:50:40.909Z"},"author":{"name":"Joseph Stewart"},"license":"MIT","description":"`@campaign-buddy/json-schema-core` is a utility for creating JSON Schema definitions compatible with the campaign buddy system. JSON Schema's created with the prop-types like API are guaranteed to be compatible with the campaign buddy system in that.","maintainers":[{"name":"josephdangerstewart","email":"josephlikescode@gmail.com"}],"readme":"# json-schema-core\n\n`@campaign-buddy/json-schema-core` is a utility for creating JSON Schema definitions compatible with the campaign buddy system. JSON Schema's created with the prop-types like API are guaranteed to be compatible with the campaign buddy system in that.\n\n1. They have widget implementations in [`@campaign-buddy/form-generator-widgets`](../form-generator-widgets/src/index.ts)\n2. They can be CRUD'ed in the API\n\n## Types (and when to use them)\n\n- String\n- Number\n- Bool\n- Select\n  - A single string value selected from a drop down, custom values are allowed.\n- Multi-select\n  - Multiple string values displayed in a multi-select (think react-select), custom values are allowed via aggregations.\n- Stat\n  - Stats are primitive skill types that players can modify dice rolls to help or hurt a player. Ex: Charisma in D&D\n- Numeric resource\n  - Numeric resources are numbers with some kind of maximum value. Both the value of the property and the maximum value of the property may be aggregated. Ex: HP or spell slots in D&D\n- Entity grid\n  - A grid of entities which represent a 1:N relationship between the source entity and the entity on the grid. The entity grid displays values in a configurable grid defaulting to generated configuration based on the definition of the displayed entity.\n- Entity list\n  - Similar to the entity grid in that it represents a 1:N relationship between the source entity and the listed entity, except values are displayed in a multi select input rather than a grid.\n- Rich text\n  - Rich text can contain references to other entities in the campaign and supports macros like rolling dice\n\n## WIP types\n\nThese types are either missing from `jsonSchemaTypes` or they're missing widget implementations in `@campaign-buddy/form-generator-widgets` and can't be used with `@campaign-buddy/form-generator`.\n\n- Generic array\n- Image\n- Choices\n  - Represents a decision to be made by the user. Ex: Class specialization in D&D\n- Schema\n  - A campaign buddy schemas that can be dynamically added into an entity by aggregation\n  - The widget for this is way to complex to be in scope\n\n## Planned types\n\nThese types need more consideration and design. They either need to be made more generic, certain parts of functionality are hand wavy, or they're lacking some UI design.\n\n- Spell slots\n  - D&D has a concept of spell slots although I haven't figured out if there's a way to abstract this or how to represent it in data. This could be a simple numeric resource although spell slots may require special functionality/UI.\n- Proficiency list\n  - Skill proficiencies are core to D&D and should have some special UI although I'm not sure how other systems handle this and I'd like the design of this data to be compatible with other systems.\n","readmeFilename":"README.md"}