From dcc460d9e6cafaf5b9b71cfe4f455bf14032ff71 Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Wed, 28 Nov 2018 11:48:49 +0200 Subject: [PATCH] Migrations --- app/imports/api/creature/Actions.js | 11 +- app/imports/api/creature/Conditions.js | 3 + app/imports/api/creature/Creatures.js | 8 +- app/imports/api/creature/DamageMultipliers.js | 6 +- app/imports/api/library/Library.js | 6 +- app/imports/api/library/LibrarySpells.js | 6 +- .../server/publications/characterList.js | 2 +- .../server/publications/singleCharacter.js | 5 +- app/package-lock.json | 120 +++++++++--------- 9 files changed, 84 insertions(+), 83 deletions(-) diff --git a/app/imports/api/creature/Actions.js b/app/imports/api/creature/Actions.js index 7cf56831..8101f4a6 100644 --- a/app/imports/api/creature/Actions.js +++ b/app/imports/api/creature/Actions.js @@ -1,4 +1,5 @@ import SimpleSchema from 'simpl-schema'; +import {makeChild} from "/imports/api/parenting.js"; let Actions = new Mongo.Collection("actions"); @@ -28,17 +29,17 @@ let actionSchema = new SimpleSchema({ }, //the immediate impact of doing this action (eg. -1 rages) adjustments: { - type: [Schemas.Adjustment], + type: Array, defaultValue: [], }, + "adjustments.$": { + type: Object, + }, }); Actions.attachSchema(actionSchema); -Actions.attachBehaviour("softRemovable"); +// Actions.attachBehaviour("softRemovable"); makeChild(Actions); -Actions.allow(CHARACTER_SUBSCHEMA_ALLOW); -Actions.deny(CHARACTER_SUBSCHEMA_DENY); - export default Actions diff --git a/app/imports/api/creature/Conditions.js b/app/imports/api/creature/Conditions.js index b558cf2a..46aab834 100644 --- a/app/imports/api/creature/Conditions.js +++ b/app/imports/api/creature/Conditions.js @@ -20,6 +20,9 @@ conditionSchema = new SimpleSchema({ optional: true, trim: false, }, + lifeTime: { + type: Object, + }, "lifeTime.total": { type: Number, defaultValue: 0, //0 is infinite diff --git a/app/imports/api/creature/Creatures.js b/app/imports/api/creature/Creatures.js index a20bb0a0..b2ca6297 100644 --- a/app/imports/api/creature/Creatures.js +++ b/app/imports/api/creature/Creatures.js @@ -33,10 +33,10 @@ let creatureSchema = new SimpleSchema({ //permissions party: {type: String, regEx: SimpleSchema.RegEx.Id, optional: true}, owner: {type: String, regEx: SimpleSchema.RegEx.Id, index: 1}, - readers: {type: Array, defaultValue: []}, - "readers.$": {type: String, regEx: SimpleSchema.RegEx.Id, index: 1}, - writers: {type: Array, defaultValue: []}, - "writers.$": {type: String, regEx: SimpleSchema.RegEx.Id, index: 1}, + readers: {type: Array, defaultValue: [], index: 1}, + "readers.$": {type: String, regEx: SimpleSchema.RegEx.Id}, + writers: {type: Array, defaultValue: [], index: 1}, + "writers.$": {type: String, regEx: SimpleSchema.RegEx.Id}, settings: {type: Object}, //how many experiences to load at a time in XP table "settings.experiencesInc": {type: SimpleSchema.Integer, defaultValue: 20}, diff --git a/app/imports/api/creature/DamageMultipliers.js b/app/imports/api/creature/DamageMultipliers.js index e2027aaa..bf328d12 100644 --- a/app/imports/api/creature/DamageMultipliers.js +++ b/app/imports/api/creature/DamageMultipliers.js @@ -1,4 +1,5 @@ import SimpleSchema from 'simpl-schema'; +import {makeChild} from "/imports/api/parenting.js"; DamageMultipliers = new Mongo.Collection("damageMultipliers"); @@ -31,8 +32,5 @@ Schemas.DamageMultiplier = new SimpleSchema({ DamageMultipliers.attachSchema(Schemas.DamageMultiplier); -DamageMultipliers.attachBehaviour("softRemovable"); +// DamageMultipliers.attachBehaviour("softRemovable"); makeChild(DamageMultipliers, ["enabled"]); //children of lots of things - -DamageMultipliers.allow(CHARACTER_SUBSCHEMA_ALLOW); -DamageMultipliers.deny(CHARACTER_SUBSCHEMA_DENY); diff --git a/app/imports/api/library/Library.js b/app/imports/api/library/Library.js index 74ecbe95..66cd9e78 100644 --- a/app/imports/api/library/Library.js +++ b/app/imports/api/library/Library.js @@ -5,8 +5,10 @@ Libraries = new Mongo.Collection("library"); librarySchema = new SimpleSchema({ name: {type: String}, owner: {type: String, regEx: SimpleSchema.RegEx.Id}, - readers: {type: [String], regEx: SimpleSchema.RegEx.Id, defaultValue: []}, - writers: {type: [String], regEx: SimpleSchema.RegEx.Id, defaultValue: []}, + readers: {type: Array, defaultValue: []}, + "readers.$": {type: String, regEx: SimpleSchema.RegEx.Id}, + writers: {type: Array, defaultValue: []}, + "writers.$": {type: String, regEx: SimpleSchema.RegEx.Id}, public: {type: Boolean, defaultValue: false}, }); diff --git a/app/imports/api/library/LibrarySpells.js b/app/imports/api/library/LibrarySpells.js index e2a73a67..fc69d696 100644 --- a/app/imports/api/library/LibrarySpells.js +++ b/app/imports/api/library/LibrarySpells.js @@ -46,8 +46,10 @@ Schemas.LibrarySpells = new SimpleSchema({ allowedValues: magicSchools, }, library: {type: String, regEx: SimpleSchema.RegEx.Id, index: 1}, - effects: {type: [Schemas.LibraryEffects], defaultValue: []}, - attacks: {type: [Schemas.LibraryAttacks], defaultValue: []}, + effects: {type: Array}, + "effects.$": {type: Schemas.LibraryEffects, defaultValue: []}, + attacks: {type: Array}, + "attacks.$": {type: Schemas.LibraryAttacks, defaultValue: []}, }); LibrarySpells.attachSchema(Schemas.LibrarySpells); diff --git a/app/imports/server/publications/characterList.js b/app/imports/server/publications/characterList.js index 04420910..a3af66e7 100644 --- a/app/imports/server/publications/characterList.js +++ b/app/imports/server/publications/characterList.js @@ -8,7 +8,7 @@ Meteor.publish("characterList", function(){ return; } return [ - Characters.find( + Creatures.find( {$or: [{readers: userId}, {writers: userId}, {owner: userId}], type: "pc"}, { fields: { diff --git a/app/imports/server/publications/singleCharacter.js b/app/imports/server/publications/singleCharacter.js index 3c0cc4aa..b2a5ca93 100644 --- a/app/imports/server/publications/singleCharacter.js +++ b/app/imports/server/publications/singleCharacter.js @@ -5,19 +5,18 @@ import Attributes from "/imports/api/creature/Attributes.js"; import Buffs from "/imports/api/creature/Buffs.js"; import Classes from "/imports/api/creature/Classes.js"; import Conditions from "/imports/api/creature/Conditions.js"; -import Containers from "/imports/api/creature/Containers.js"; import CustomBuffs from "/imports/api/creature/CustomBuffs.js"; import DamageMultipliers from "/imports/api/creature/DamageMultipliers.js"; import Effects from "/imports/api/creature/Effects.js"; import Experiences from "/imports/api/creature/Experiences.js"; import Features from "/imports/api/creature/Features.js"; -import Items from "/imports/api/creature/Items.js"; import Notes from "/imports/api/creature/Notes.js"; import Skills from "/imports/api/creature/Skills.js"; import Spells from "/imports/api/creature/Spells.js"; import SpellLists from "/imports/api/creature/SpellLists.js"; -import TemporaryHitPoints from "/imports/api/creature/TemporaryHitPoints.js"; import Proficiencies from "/imports/api/creature/Proficiencies.js"; +import Containers from "/imports/api/inventory/Containers.js"; +import Items from "/imports/api/inventory/Items.js"; Meteor.publish("singleCharacter", function(characterId){ userId = this.userId; diff --git a/app/package-lock.json b/app/package-lock.json index eeef7df2..163b1de3 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -19,14 +19,14 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", + "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", + "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "animejs": { @@ -99,14 +99,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "optional": true, "requires": { "tweetnacl": "^0.14.3" } }, "block-stream": { "version": "0.0.9", - "resolved": false, + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { "inherits": "~2.0.0" @@ -169,11 +168,6 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, "code-point-at": { "version": "1.1.0", "resolved": false, @@ -262,7 +256,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "optional": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -301,9 +294,9 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-json-stable-stringify": { "version": "2.0.0", @@ -329,23 +322,13 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { "asynckit": "^0.4.0", - "combined-stream": "1.0.6", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" - }, - "dependencies": { - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "~1.0.0" - } - } } }, "fs.realpath": { @@ -431,11 +414,11 @@ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "requires": { - "ajv": "^5.3.0", + "ajv": "^6.5.5", "har-schema": "^2.0.0" } }, @@ -470,7 +453,7 @@ }, "inherits": { "version": "2.0.3", - "resolved": false, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { @@ -532,8 +515,7 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "json-schema": { "version": "0.2.3", @@ -541,9 +523,9 @@ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stringify-safe": { "version": "5.0.1", @@ -1564,16 +1546,16 @@ } }, "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" }, "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "requires": { - "mime-db": "~1.36.0" + "mime-db": "~1.37.0" } }, "mimic-fn": { @@ -1703,7 +1685,7 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { @@ -1718,7 +1700,7 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { @@ -1771,7 +1753,7 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { @@ -1818,9 +1800,9 @@ "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qrcode": { "version": "1.3.0", @@ -1859,7 +1841,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": false, + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } @@ -2049,9 +2031,9 @@ "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==" }, "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", + "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -2076,7 +2058,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" @@ -2107,7 +2089,7 @@ }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { "block-stream": "*", @@ -2137,6 +2119,13 @@ "requires": { "psl": "^1.1.24", "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } } }, "tunnel-agent": { @@ -2150,8 +2139,7 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "uid-number": { "version": "0.0.6", @@ -2163,6 +2151,14 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",