Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | import { baseVcJsonSchema, DefaultSchemaMetadata, JsonSchema, JsonSchemaNode } from "vc-schema-tools"; /** Metadata fields specific to our use-case, intended to be stored in the `$metadata` object in a JSON Schema. */ export interface SchemaMetadata extends DefaultSchemaMetadata { version: string; slug: string; icon?: string; discoverable?: boolean; } /** In-progress schema interface during CreateSchema flow. */ export type WorkingSchema = Partial<JsonSchema<Partial<SchemaMetadata>>>; export type CompletedSchema = JsonSchema<SchemaMetadata>; /** Data format expected by API. */ export interface SchemaDataInput extends SchemaMetadata { name: string; description?: string; jsonSchema: string; ldContext: string; /** DEPRECATED */ ldContextPlus?: string; } /** Data format returned by API. */ export interface SchemaDataResponse extends SchemaDataInput { id: string; created: string; updated: string; tenant: any; deleted?: string; favorite?: boolean; favoriteCount?: number; creator?: { name: string; /** username */ nickName: string; picture: string; /** JWT subject */ identifier: string; }; ipfsHash?: { jsonSchema?: string; ldContext?: string; }; } export const defaultSchemaProperties = [ { $linkedData: { term: "id", "@id": "@id", }, title: "Credential ID", type: "string", format: "uri", }, { $linkedData: { term: "issuanceDate", "@id": "http://schema.org/DateTime", }, title: "Issuance Date", type: "string", format: "date-time", }, { $linkedData: { term: "issuer", "@id": "@id", }, title: "Issuer ID", type: "string", format: "uri", }, ]; export const defaultSchemaPropertiesRequired = [false, true, true]; export const newSchemaAttribute: JsonSchemaNode = { $linkedData: { term: "", "@id": "http://schema.org/Text", }, title: "", description: "", type: "string", }; export const baseWorkingSchema: WorkingSchema = { $schema: "http://json-schema.org/draft-07/schema#", $metadata: { slug: "", version: "1.0", icon: "", discoverable: false, }, title: "", description: "", ...baseVcJsonSchema, properties: { ...baseVcJsonSchema.properties, credentialSubject: { type: "object", required: [], properties: { id: { $linkedData: { term: "id", "@id": "@id" }, title: "Credential Subject ID", type: "string", format: "uri", }, "": { ...newSchemaAttribute, }, }, }, }, }; |