Closed saptaru closed 5 years ago
@saptaru You do need to api.use
both 3.0.0 packages. I don't know why it wouldn't work. Can you put together a minimal package in a public repo that shows the issue (or link to yours if it's public)?
Hi, I'm getting this error on a new build for a Meteor project:
I'm using simpl-schema as an npm package. Adding aldeed:schema-index worked after a restart.
Here's the schema:
const schema = new SimpleSchema({
'name': { type: String, max: 40, },
'orgId': { type: String, index: true, },
});
And the error:
W20180920-15:22:21.288(-7)? (STDERR) Error: Invalid definition for orgId field: "index" is not a supported property
W20180920-15:22:21.288(-7)? (STDERR) at /home/app/backstage/node_modules/simpl-schema/dist/SimpleSchema.js:1121:13
W20180920-15:22:21.289(-7)? (STDERR) at Array.forEach (<anonymous>)
W20180920-15:22:21.289(-7)? (STDERR) at checkAndScrubDefinition (/home/app/backstage/node_modules/simpl-schema/dist/SimpleSchema.js:1119:27)
☔ meteor list --tree A1Mod dev
accounts-base@1.4.2
├─┬ callback-hook@1.1.0
│ └── ecmascript@0.11.1 (top level)
├─┬ check@1.3.1
│ ├── ecmascript@0.11.1 (top level)
│ └─┬ ejson@1.1.0
│ ├─┬ base64@1.0.11
│ │ └── ecmascript@0.11.1 (top level)
│ └── ecmascript@0.11.1 (top level)
├─┬ ddp@1.4.0
│ ├─┬ ddp-client@2.3.3
│ │ ├── callback-hook@1.1.0 (expanded above)
│ │ ├── check@1.3.1 (expanded above)
│ │ ├─┬ ddp-common@1.4.0
│ │ │ ├── check@1.3.1 (expanded above)
│ │ │ ├── ecmascript@0.11.1 (top level)
│ │ │ ├── ejson@1.1.0 (expanded above)
│ │ │ ├─┬ random@1.1.0
│ │ │ │ └── ecmascript@0.11.1 (top level)
│ │ │ ├─┬ retry@1.1.0
│ │ │ │ ├── ecmascript@0.11.1 (top level)
│ │ │ │ └── random@1.1.0 (expanded above)
│ │ │ └── tracker@1.2.0 (top level)
│ │ ├─┬ diff-sequence@1.1.0
│ │ │ ├── ecmascript@0.11.1 (top level)
│ │ │ └── ejson@1.1.0 (expanded above)
│ │ ├── ecmascript@0.11.1 (top level)
│ │ ├── ejson@1.1.0 (expanded above)
│ │ ├─┬ id-map@1.1.0
│ │ │ ├── ecmascript@0.11.1 (top level)
│ │ │ └── ejson@1.1.0 (expanded above)
│ │ ├─┬ mongo-id@1.0.7
│ │ │ ├── ecmascript@0.11.1 (top level)
│ │ │ ├── ejson@1.1.0 (expanded above)
│ │ │ ├── id-map@1.1.0 (expanded above)
│ │ │ └── random@1.1.0 (expanded above)
│ │ ├── random@1.1.0 (expanded above)
│ │ ├─┬ reload@1.2.0
│ │ │ └── ecmascript@0.11.1 (top level)
│ │ ├── retry@1.1.0 (expanded above)
│ │ ├─┬ socket-stream-client@0.2.2
│ │ │ ├─┬ dynamic-import@0.4.2
│ │ │ │ ├─┬ http@1.4.1
│ │ │ │ │ ├─┬ modules@0.12.2
│ │ │ │ │ │ └── modules-runtime@0.10.2
│ │ │ │ │ └─┬ url@1.2.0
│ │ │ │ │ └── modules@0.12.2 (expanded above)
│ │ │ │ ├─┬ modern-browsers@0.1.2
│ │ │ │ │ └── modules@0.12.2 (expanded above)
│ │ │ │ ├── modules@0.12.2 (expanded above)
│ │ │ │ └─┬ promise@0.11.1
│ │ │ │ ├── modern-browsers@0.1.2 (expanded above)
│ │ │ │ └── modules@0.12.2 (expanded above)
│ │ │ ├── ecmascript@0.11.1 (top level)
│ │ │ ├── modern-browsers@0.1.2 (expanded above)
│ │ │ └── retry@1.1.0 (expanded above)
│ │ └── tracker@1.2.0 (top level)
│ └─┬ ddp-server@2.2.0
│ ├── callback-hook@1.1.0 (expanded above)
│ ├── check@1.3.1 (expanded above)
│ ├── ddp-client@2.3.3 (expanded above)
│ ├── ddp-common@1.4.0 (expanded above)
│ ├── diff-sequence@1.1.0 (expanded above)
│ ├── ecmascript@0.11.1 (top level)
│ ├── ejson@1.1.0 (expanded above)
│ ├─┬ minimongo@1.4.4
│ │ ├── diff-sequence@1.1.0 (expanded above)
│ │ ├── ecmascript@0.11.1 (top level)
│ │ ├── ejson@1.1.0 (expanded above)
│ │ ├─┬ geojson-utils@1.0.10
│ │ │ └── modules@0.12.2 (expanded above)
│ │ ├── id-map@1.1.0 (expanded above)
│ │ ├── mongo-id@1.0.7 (expanded above)
│ │ ├─┬ ordered-dict@1.1.0
│ │ │ └── ecmascript@0.11.1 (top level)
│ │ ├── random@1.1.0 (expanded above)
│ │ └── tracker@1.2.0 (top level)
│ ├── mongo-id@1.0.7 (expanded above)
│ ├── random@1.1.0 (expanded above)
│ ├── retry@1.1.0 (expanded above)
│ ├─┬ routepolicy@1.0.13
│ │ ├── ecmascript@0.11.1 (top level)
│ │ ├── underscore@1.0.10
│ │ └─┬ webapp@1.6.2
│ │ ├─┬ boilerplate-generator@1.5.0
│ │ │ ├── ecmascript@0.11.1 (top level)
│ │ │ └── underscore@1.0.10
│ │ ├── ecmascript@0.11.1 (top level)
│ │ ├─┬ logging@1.1.20
│ │ │ ├── ecmascript@0.11.1 (top level)
│ │ │ ├─┬ ecmascript-runtime-client@0.7.2
│ │ │ │ ├── modern-browsers@0.1.2 (expanded above)
│ │ │ │ ├── modules@0.12.2 (expanded above)
│ │ │ │ └── promise@0.11.1 (expanded above)
│ │ │ └── ejson@1.1.0 (expanded above)
│ │ ├── modern-browsers@0.1.2 (expanded above)
│ │ ├── routepolicy@1.0.13 (expanded above)
│ │ ├── underscore@1.0.10
│ │ └─┬ webapp-hashing@1.0.9
│ │ ├── ecmascript@0.11.1 (top level)
│ │ └── underscore@1.0.10
│ ├── underscore@1.0.10
│ └── webapp@1.6.2 (expanded above)
├─┬ ddp-rate-limiter@1.0.7
│ └─┬ rate-limit@1.0.9
│ ├── ecmascript@0.11.1 (top level)
│ └── random@1.1.0 (expanded above)
├── ecmascript@0.11.1 (top level)
├── ejson@1.1.0 (expanded above)
├─┬ localstorage@1.2.0
│ └── random@1.1.0 (expanded above)
├── mongo@1.5.1 (top level)
├── random@1.1.0 (expanded above)
├── reactive-var@1.0.11 (top level)
├─┬ service-configuration@1.0.11
│ ├── accounts-base@1.4.2 (top level)
│ └── mongo@1.5.1 (top level)
├── tracker@1.2.0 (top level)
└── underscore@1.0.10
accounts-password@1.5.1
├── accounts-base@1.4.2 (top level)
├── check@1.3.1 (expanded above)
├── ddp@1.4.0 (expanded above)
├── ecmascript@0.11.1 (top level)
├── ejson@1.1.0 (expanded above)
├── email@1.2.3
├─┬ npm-bcrypt@0.9.3
│ └── modules@0.12.2 (expanded above)
├── random@1.1.0 (expanded above)
├── sha@1.0.9
├─┬ srp@1.0.12
│ ├── check@1.3.1 (expanded above)
│ ├── ecmascript@0.11.1 (top level)
│ ├── random@1.1.0 (expanded above)
│ └── sha@1.0.9
└── underscore@1.0.10
accounts-ui@1.3.0
├── accounts-base@1.4.2 (top level)
├─┬ accounts-ui-unstyled@1.4.1
│ ├── accounts-base@1.4.2 (top level)
│ ├─┬ less@2.7.12
│ │ ├─┬ caching-compiler@1.1.12
│ │ │ ├── ecmascript@0.11.1 (top level)
│ │ │ └── random@1.1.0 (expanded above)
│ │ ├── ecmascript@0.11.1 (top level)
│ │ └── underscore@1.0.10
│ ├── service-configuration@1.0.11 (expanded above)
│ ├─┬ session@1.1.8
│ │ ├── ejson@1.1.0 (expanded above)
│ │ └─┬ reactive-dict@1.2.1
│ │ ├── ecmascript@0.11.1 (top level)
│ │ ├── ejson@1.1.0 (expanded above)
│ │ └── tracker@1.2.0 (top level)
│ ├─┬ templating@1.3.2
│ │ ├─┬ templating-compiler@1.3.3
│ │ │ ├─┬ caching-html-compiler@1.1.3
│ │ │ │ ├── caching-compiler@1.1.12 (expanded above)
│ │ │ │ ├── ecmascript@0.11.1 (top level)
│ │ │ │ ├─┬ templating-tools@1.1.2
│ │ │ │ │ ├── ecmascript@0.11.1 (top level)
│ │ │ │ │ ├─┬ spacebars-compiler@1.1.3
│ │ │ │ │ │ ├─┬ blaze-tools@1.0.10
│ │ │ │ │ │ │ ├─┬ htmljs@1.0.11
│ │ │ │ │ │ │ │ └─┬ deps@1.0.12
│ │ │ │ │ │ │ │ └── tracker@1.2.0 (top level)
│ │ │ │ │ │ │ └── underscore@1.0.10
│ │ │ │ │ │ ├─┬ html-tools@1.0.11
│ │ │ │ │ │ │ └── htmljs@1.0.11 (expanded above)
│ │ │ │ │ │ ├── htmljs@1.0.11 (expanded above)
│ │ │ │ │ │ └── underscore@1.0.10
│ │ │ │ │ └── underscore@1.0.10
│ │ │ │ └── underscore@1.0.10
│ │ │ ├── ecmascript@0.11.1 (top level)
│ │ │ └── templating-tools@1.1.2 (expanded above)
│ │ └─┬ templating-runtime@1.3.2
│ │ ├─┬ blaze@2.3.3
│ │ │ ├── check@1.3.1 (expanded above)
│ │ │ ├── htmljs@1.0.11 (expanded above)
│ │ │ ├─┬ jquery@1.11.11
│ │ │ │ └── modules@0.12.2 (expanded above)
│ │ │ ├─┬ observe-sequence@1.0.16
│ │ │ │ ├── diff-sequence@1.1.0 (expanded above)
│ │ │ │ ├── mongo-id@1.0.7 (expanded above)
│ │ │ │ ├── random@1.1.0 (expanded above)
│ │ │ │ ├── tracker@1.2.0 (top level)
│ │ │ │ └── underscore@1.0.10
│ │ │ ├── ordered-dict@1.1.0 (expanded above)
│ │ │ ├── reactive-var@1.0.11 (top level)
│ │ │ ├── tracker@1.2.0 (top level)
│ │ │ └── underscore@1.0.10
│ │ ├─┬ spacebars@1.0.15
│ │ │ ├── blaze@2.3.3 (expanded above)
│ │ │ ├── htmljs@1.0.11 (expanded above)
│ │ │ ├── observe-sequence@1.0.16 (expanded above)
│ │ │ ├── tracker@1.2.0 (top level)
│ │ │ └── underscore@1.0.10
│ │ ├── templating-compiler@1.3.3 (expanded above)
│ │ └── underscore@1.0.10
│ ├── tracker@1.2.0 (top level)
│ └── underscore@1.0.10
└── less@2.7.12 (expanded above)
alanning:roles@1.2.16
├── accounts-base@1.4.2 (top level)
├── check@1.3.1 (expanded above)
├── mongo@1.5.1 (top level)
├── tracker@1.2.0 (top level)
└── underscore@1.0.10
aldeed:collection2@3.0.0
├── ecmascript@0.11.1 (top level)
├── minimongo@1.4.4 (expanded above)
├── mongo@1.5.1 (top level)
├─┬ raix:eventemitter@0.1.3
│ └── underscore@1.0.10
└─┬ tmeasday:check-npm-versions@0.3.2
└── ecmascript@0.11.1 (top level)
blaze-html-templates@1.1.2
├── blaze@2.3.3 (expanded above)
├── spacebars@1.0.15 (expanded above)
├── templating@1.3.2 (expanded above)
└─┬ ui@1.0.13
└── blaze@2.3.3 (expanded above)
browser-policy@1.1.0
├─┬ browser-policy-common@1.0.11
│ └── webapp@1.6.2 (expanded above)
├─┬ browser-policy-content@1.1.0
│ ├── browser-policy-common@1.0.11 (expanded above)
│ ├── modules@0.12.2 (expanded above)
│ ├── underscore@1.0.10
│ └── webapp@1.6.2 (expanded above)
├─┬ browser-policy-framing@1.1.0
│ ├── browser-policy-common@1.0.11 (expanded above)
│ ├── modules@0.12.2 (expanded above)
│ └── underscore@1.0.10
└── modules@0.12.2 (expanded above)
dburles:collection-helpers@1.1.0
├── mongo@1.5.1 (top level)
└── underscore@1.0.10
ecmascript@0.11.1
├─┬ babel-compiler@7.1.1
│ ├─┬ ecmascript-runtime@0.7.0
│ │ ├── ecmascript-runtime-client@0.7.2 (expanded above)
│ │ └─┬ ecmascript-runtime-server@0.7.1
│ │ └── modules@0.12.2 (expanded above)
│ └── modern-browsers@0.1.2 (expanded above)
├─┬ babel-runtime@1.2.4_1
│ ├── modules@0.12.2 (expanded above)
│ └── promise@0.11.1 (expanded above)
├── dynamic-import@0.4.2 (expanded above)
├── ecmascript-runtime@0.7.0 (expanded above)
├── modules@0.12.2 (expanded above)
└── promise@0.11.1 (expanded above)
es5-shim@4.8.0
└── modules@0.12.2 (expanded above)
meteor-base@1.4.0
├── ddp@1.4.0 (expanded above)
├── es5-shim@4.8.0 (top level)
├─┬ hot-code-push@1.0.4
│ ├─┬ autoupdate@1.4.1
│ │ ├── check@1.3.1 (expanded above)
│ │ ├── ddp@1.4.0 (expanded above)
│ │ ├── ecmascript@0.11.1 (top level)
│ │ ├── mongo@1.5.1 (top level)
│ │ ├── retry@1.1.0 (expanded above)
│ │ ├── tracker@1.2.0 (top level)
│ │ └── webapp@1.6.2 (expanded above)
│ └── reload@1.2.0 (expanded above)
├─┬ livedata@1.0.18
│ └── ddp@1.4.0 (expanded above)
└── webapp@1.6.2 (expanded above)
meteoreact:accounts@1.2.3
├── accounts-base@1.4.2 (top level)
├── accounts-password@1.5.1 (top level)
├── ecmascript@0.11.1 (top level)
├── http@1.4.1 (expanded above)
├─┬ mdg:validated-method@1.1.0
│ ├── check@1.3.1 (expanded above)
│ ├── ddp@1.4.0 (expanded above)
│ ├── ecmascript@0.11.1 (top level)
│ └── underscore@1.0.10
└── react-meteor-data@0.2.16 (top level)
meteoreact:accounts-unstyled@1.0.0
└── ecmascript@0.11.1 (top level)
mobile-experience@1.0.5
├── launch-screen@1.1.1
└── mobile-status-bar@1.0.14
mongo@1.5.1
├─┬ allow-deny@1.1.0
│ ├── check@1.3.1 (expanded above)
│ ├── ddp@1.4.0 (expanded above)
│ ├── ecmascript@0.11.1 (top level)
│ ├── ejson@1.1.0 (expanded above)
│ └── minimongo@1.4.4 (expanded above)
├─┬ binary-heap@1.0.10
│ ├── id-map@1.1.0 (expanded above)
│ └── underscore@1.0.10
├── callback-hook@1.1.0 (expanded above)
├── check@1.3.1 (expanded above)
├── ddp@1.4.0 (expanded above)
├── diff-sequence@1.1.0 (expanded above)
├── ecmascript@0.11.1 (top level)
├── ejson@1.1.0 (expanded above)
├── minimongo@1.4.4 (expanded above)
├─┬ mongo-dev-server@1.1.0
│ └── modules@0.12.2 (expanded above)
├── mongo-id@1.0.7 (expanded above)
├── npm-mongo@3.0.11
├── random@1.1.0 (expanded above)
├── tracker@1.2.0 (top level)
└── underscore@1.0.10
msavin:mongol@7.0.1
├── check@1.3.1 (expanded above)
├── jquery@1.11.11 (expanded above)
├─┬ meteortoys:toykit@4.0.2
│ ├── check@1.3.1 (expanded above)
│ ├── ddp@1.4.0 (expanded above)
│ ├── jquery@1.11.11 (expanded above)
│ ├── minimongo@1.4.4 (expanded above)
│ ├── mongo@1.5.1 (top level)
│ ├── random@1.1.0 (expanded above)
│ ├── reactive-dict@1.2.1 (expanded above)
│ ├── reactive-var@1.0.11 (top level)
│ ├── session@1.1.8 (expanded above)
│ ├── templating@1.3.2 (expanded above)
│ ├── tracker@1.2.0 (top level)
│ ├── underscore@1.0.10
│ └── webapp@1.6.2 (expanded above)
├── mongo@1.5.1 (top level)
├── templating@1.3.2 (expanded above)
├── tracker@1.2.0 (top level)
└── underscore@1.0.10
nitrolabs:cdn@1.3.0
├── templating@1.3.2 (expanded above)
└── webapp@1.6.2 (expanded above)
react-meteor-data@0.2.16
├── ecmascript@0.11.1 (top level)
├── tmeasday:check-npm-versions@0.3.2 (expanded above)
└── tracker@1.2.0 (top level)
reactive-var@1.0.11
└── tracker@1.2.0 (top level)
shell-server@0.3.1
└── ecmascript@0.11.1 (top level)
standard-minifier-css@1.4.1
└─┬ minifier-css@1.3.1
└── ecmascript@0.11.1 (top level)
standard-minifier-js@2.3.4
├── babel-compiler@7.1.1 (expanded above)
├── ecmascript@0.11.1 (top level)
└─┬ minifier-js@2.3.5
└── babel-compiler@7.1.1 (expanded above)
tracker@1.2.0
└── ecmascript@0.11.1 (top level)
Snap! It works locally, but not on a meteor build
.
Can you put
@aldeed Thank you, I've figured it out in the end, sorry I didn't reply earlier. Bellow is my package.js example:
Package.onUse(function (api) {
const use = [
'ecmascript',
'mongo',
'aldeed:collection2@3.0.0',
'aldeed:schema-index@3.0.0',
'aldeed:autoform@6.3.0',
],
imply = [
'mongo'
];
api.versionsFrom('1.6.1');
api.use(use);
api.imply(imply);
api.mainModule('my-app-server.js', 'server');
api.mainModule('my-app-client.js', 'client');
});
I am also using "meteor/tmeasday:check-npm-versions" to check for the "simpl-schema" package like so:
import {checkNpmVersions} from 'meteor/tmeasday:check-npm-versions';
checkNpmVersions({'simpl-schema': '>=1.4.2'}, 'my-package');
for me I have the same problem, but don't know how to make it work.
I have no idea how to make it work too, sadly.
I think you need to extend the schema ... SimpleSchema.extendOptions(['index', 'unique', 'denyInsert', 'denyUpdate']); (from here: https://github.com/aldeed/simple-schema-js#extending-the-schema-options) . I am past this error now but I can't figure out if an index should be created by the simple fact that I added index: 1 or I need to so something else. I can see no index in my DB
Correct. You need to call SimpleSchema.extendOptions(['index', 'unique'])
somewhere in server code before defining any schemas. Then you need index: 1
or whatever options in some schema fields. Then you need to use attachSchema
to attach to some collection. Then on startup it should create those indexes in the background.
You may not need to call SimpleSchema.extendOptions
because schema-index
package does it, but if that package loads after some of the schemas are created, then you'll need to call it in some code that will load earlier than that.
Hi, I am currently developing a meteor package which is using the aldeed:collection2@3.0.0 like so:
From the docs I am a bit confused as I cannot tell if the aldeed:collection2 version 3.0.0 it should automatically install aldeed:schema-index and aldeed:schema-deny, or do I need to install them separately?
However, even if I do:
the following error occurs: Error: Invalid definition for isDeleted field: "index" is not a supported property
Here is a snapshot with that field definition from my schema:
I even tried to install the aldeed:schema-index in my app but the same happens. Please note that before every try I first do a meteor reset and I also remove the above packages version from .meteor/versions just to be sure everything is installed correctly. Also having the simpl-schema npm package installed.
Thank you!