UNPKG

1.04 kBJavaScriptView Raw
1/*!
2 * Copyright (c) 2012-2018 Digital Bazaar, Inc. All rights reserved.
3 */
4const bedrock = require('bedrock');
5
6const schemas = {};
7schemas.identifier = require('./identifier');
8schemas.jsonldContext = require('./jsonldContext');
9schemas.url = require('./url');
10schemas.w3cDateTime = require('./w3cDateTime');
11
12// TODO: Improve this schema
13const schema = {
14 type: 'object',
15 title: 'Credential',
16 properties: {
17 '@context': schemas.jsonldContext(),
18 // FIXME: improve credential context check
19 //'@context': schemas.jsonldContext([
20 // constants.IDENTITY_CONTEXT_V1_URL,
21 // constants.CREDENTIALS_CONTEXT_V1_URL
22 //]),
23 issuer: schemas.identifier(),
24 issued: schemas.w3cDateTime(),
25 claim: {
26 required: true,
27 properties: {
28 id: schemas.identifier()
29 },
30 required: ['id']
31 }
32 },
33 required: ['issuer', 'issued', 'claim']
34};
35
36module.exports = function(extend) {
37 if(extend) {
38 return bedrock.util.extend(true, bedrock.util.clone(schema), extend);
39 }
40 return schema;
41};