port schemas over
This commit is contained in:
parent
efe3f622b7
commit
1815bbe07d
@ -3,6 +3,11 @@
|
||||
"version": "0.0.1",
|
||||
"main": "src/index.ts",
|
||||
"scripts": {
|
||||
"schemas-compile": "node ./scripts/compile.js src",
|
||||
"schemas-docs": "node ./scripts/docs.js",
|
||||
"schemas-validate": "node ./scripts/validate.js",
|
||||
"schemas-ifaces": "node ./scripts/ifaces.js src/types",
|
||||
"schemas-build": "yarn schemas-compile && yarn schemas-ifaces",
|
||||
"prettier": "prettier --check src/",
|
||||
"prettier:fix": "prettier --write src/",
|
||||
"lint": "eslint . --ext .ts,.tsx",
|
||||
@ -14,5 +19,10 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@adxp/schemas": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"ajv": "^8.11.0",
|
||||
"ajv-formats": "^2.1.1",
|
||||
"json-schema-to-typescript": "^11.0.2"
|
||||
}
|
||||
}
|
||||
|
23
packages/microblog/scripts/_util.js
Normal file
23
packages/microblog/scripts/_util.js
Normal file
@ -0,0 +1,23 @@
|
||||
const fs = require('node:fs')
|
||||
const path = require('node:path')
|
||||
|
||||
exports.listAllNames = () => {
|
||||
return fs.readdirSync(path.join(__dirname, '..', 'src', 'schemas'))
|
||||
}
|
||||
|
||||
exports.readAll = () => {
|
||||
const objs = []
|
||||
for (const name of exports.listAllNames()) {
|
||||
try {
|
||||
const file = fs.readFileSync(
|
||||
path.join(__dirname, '..', 'src', 'schemas', name),
|
||||
'utf8'
|
||||
)
|
||||
objs.push(JSON.parse(file))
|
||||
} catch (e) {
|
||||
console.error(`Failed to read ${name}`)
|
||||
throw e
|
||||
}
|
||||
}
|
||||
return objs
|
||||
}
|
17
packages/microblog/scripts/compile.js
Normal file
17
packages/microblog/scripts/compile.js
Normal file
@ -0,0 +1,17 @@
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
const { readAll } = require('./_util')
|
||||
|
||||
|
||||
const schemas = readAll()
|
||||
const result = `export const schemas = [${schemas.map(
|
||||
(s) => `${JSON.stringify(s, null, 2)}`
|
||||
)}]`
|
||||
|
||||
const dirPath = process.argv[2]
|
||||
if(dirPath) {
|
||||
const p = path.join(path.resolve(dirPath), 'defs.ts')
|
||||
fs.writeFileSync(p, result)
|
||||
}else {
|
||||
console.log(result)
|
||||
}
|
91
packages/microblog/scripts/docs.js
Normal file
91
packages/microblog/scripts/docs.js
Normal file
@ -0,0 +1,91 @@
|
||||
const { readAll } = require('./_util')
|
||||
const toTs = require('json-schema-to-typescript')
|
||||
|
||||
;(async () => {
|
||||
const schemas = readAll()
|
||||
schemas.sort((a, b) => {
|
||||
if (a.$type === 'adxs-collection' && b.$type !== 'adxs-collection') {
|
||||
return -1
|
||||
}
|
||||
if (a.$type !== 'adxs-collection' && b.$type === 'adxs-collection') {
|
||||
return 1
|
||||
}
|
||||
if (a.$type === 'adxs-record' && b.$type !== 'adxs-record') {
|
||||
return -1
|
||||
}
|
||||
if (a.$type !== 'adxs-record' && b.$type === 'adxs-record') {
|
||||
return 1
|
||||
}
|
||||
return a.name.localeCompare(b.name)
|
||||
})
|
||||
|
||||
const out = []
|
||||
for (const s of schemas) {
|
||||
out.push(`## ${getType(s)}: ${s.name}`)
|
||||
out.push('')
|
||||
out.push(outJson(s, 'Full Definition'))
|
||||
out.push('')
|
||||
out.push(s.$comment ? `${s.$comment + '\n'}` : '')
|
||||
out.push('')
|
||||
if (s.$type === 'adxs-collection') {
|
||||
continue
|
||||
}
|
||||
out.push('**Interface**')
|
||||
if (s.parameters) out.push(await outTs(s.parameters, 'Params'))
|
||||
if (s.response) out.push(await outTs(s.response, 'Response'))
|
||||
if (s.schema) out.push(await outTs(s.schema, 'Record'))
|
||||
if (s.$ext?.['adxs-doc']?.examples) {
|
||||
out.push('**Examples**')
|
||||
for (const ex of s.$ext?.['adxs-doc']?.examples) {
|
||||
out.push('')
|
||||
out.push('```json')
|
||||
out.push(JSON.stringify(ex, null, 2))
|
||||
out.push('```')
|
||||
out.push('')
|
||||
}
|
||||
}
|
||||
out.push('')
|
||||
}
|
||||
console.log(out.join('\n'))
|
||||
})()
|
||||
|
||||
function getType(schema) {
|
||||
if (schema.$type === 'adxs-record') {
|
||||
return 'Record'
|
||||
}
|
||||
if (schema.$type === 'adxs-collection') {
|
||||
return 'Collection'
|
||||
}
|
||||
if (schema.$type === 'adxs-view') {
|
||||
return 'View'
|
||||
}
|
||||
}
|
||||
|
||||
function outJson(v, title) {
|
||||
if (v) {
|
||||
return `<details><summary>${title}</summary><pre><code>${JSON.stringify(
|
||||
v,
|
||||
null,
|
||||
2
|
||||
)}</code></pre></details>\n`
|
||||
}
|
||||
return ''
|
||||
}
|
||||
|
||||
async function outTs(v, title) {
|
||||
if (v) {
|
||||
if (v['$ref']) {
|
||||
// HACK to workaround an issue with cyclic refs
|
||||
Object.assign(v, v['$defs']['post'])
|
||||
delete v['$ref']
|
||||
}
|
||||
return `\`\`\`typescript\n${await toTs.compile(
|
||||
Object.assign({ title }, v),
|
||||
undefined,
|
||||
{
|
||||
bannerComment: '',
|
||||
}
|
||||
)}\`\`\``
|
||||
}
|
||||
return ''
|
||||
}
|
54
packages/microblog/scripts/ifaces.js
Normal file
54
packages/microblog/scripts/ifaces.js
Normal file
@ -0,0 +1,54 @@
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
const { readAll } = require('./_util')
|
||||
const toTs = require('json-schema-to-typescript')
|
||||
|
||||
let dirPath = process.argv[2]
|
||||
if (!dirPath) {
|
||||
throw new Error('Please specify the output folder')
|
||||
}
|
||||
dirPath = path.resolve(dirPath)
|
||||
|
||||
const files = []
|
||||
|
||||
;(async () => {
|
||||
const schemas = readAll()
|
||||
schemas.sort((a, b) => {
|
||||
return a.name.localeCompare(b.name)
|
||||
})
|
||||
|
||||
const indexJs = []
|
||||
for (const s of schemas) {
|
||||
if (s.$type === 'adxs-collection') {
|
||||
continue
|
||||
}
|
||||
const out = []
|
||||
if (s.parameters) out.push(await outTs(s.parameters, 'Params'))
|
||||
if (s.response) out.push(await outTs(s.response, 'Response'))
|
||||
if (s.schema) out.push(await outTs(s.schema, 'Record'))
|
||||
files.push({ name: `${s.name}.ts`, content: out.join('\n') })
|
||||
indexJs.push(`export * as ${s.name} from './${s.name}'`)
|
||||
}
|
||||
|
||||
console.log('writing', path.join(dirPath, 'index.ts'))
|
||||
fs.writeFileSync(path.join(dirPath, 'index.ts'), indexJs.join('\n'))
|
||||
for (const f of files) {
|
||||
console.log('writing', path.join(dirPath, f.name))
|
||||
fs.writeFileSync(path.join(dirPath, f.name), f.content)
|
||||
}
|
||||
})()
|
||||
|
||||
async function outTs(v, title) {
|
||||
if (v) {
|
||||
if (v['$ref']) {
|
||||
// HACK to workaround an issue with cyclic refs
|
||||
Object.assign(v, v['$defs']['post'])
|
||||
delete v['$ref']
|
||||
}
|
||||
return await toTs.compile(Object.assign({ title }, v), undefined, {
|
||||
bannerComment: '',
|
||||
additionalProperties: false,
|
||||
})
|
||||
}
|
||||
return ''
|
||||
}
|
46
packages/microblog/scripts/validate.js
Normal file
46
packages/microblog/scripts/validate.js
Normal file
@ -0,0 +1,46 @@
|
||||
const Ajv = require('ajv')
|
||||
const ajvAddFormats = require('ajv-formats')
|
||||
const { readAll } = require('./_util')
|
||||
|
||||
const ajv = new Ajv()
|
||||
ajvAddFormats(ajv)
|
||||
|
||||
const schemas = readAll()
|
||||
for (const schema of schemas) {
|
||||
// TODO use schemas package for this
|
||||
if (schema.params) {
|
||||
try {
|
||||
ajv.compile(schema.params)
|
||||
} catch (e) {
|
||||
console.error(`${schema.name} has an invalid .params`)
|
||||
throw e
|
||||
}
|
||||
}
|
||||
if (schema.response) {
|
||||
try {
|
||||
testExamples(ajv.compile(schema.response), schema)
|
||||
} catch (e) {
|
||||
console.error(`${schema.name} has an invalid .response`)
|
||||
throw e
|
||||
}
|
||||
}
|
||||
if (schema.schema) {
|
||||
try {
|
||||
testExamples(ajv.compile(schema.schema), schema)
|
||||
} catch (e) {
|
||||
console.error(`${schema.name} has an invalid .schema`)
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function testExamples(validate, schema) {
|
||||
const examples = schema.$ext?.['adxs-doc']?.examples || []
|
||||
for (const example of examples) {
|
||||
if (!validate(example)) {
|
||||
console.error(`Example failed validation`, example)
|
||||
console.error(validate.errors)
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
}
|
@ -15,7 +15,7 @@ import {
|
||||
UserFollowersView,
|
||||
UserFollowsView,
|
||||
} from '@adxp/microblog'
|
||||
import { schemas } from './schemas/defs'
|
||||
import { schemas } from './defs'
|
||||
|
||||
export class MicroblogClient {
|
||||
public client: AdxClient
|
||||
|
@ -1,3 +1,3 @@
|
||||
export * from './schemas/defs'
|
||||
export * from './defs'
|
||||
export * from './types'
|
||||
export * from './client'
|
||||
|
95
packages/microblog/src/schemas/Badge.json
Normal file
95
packages/microblog/src/schemas/Badge.json
Normal file
@ -0,0 +1,95 @@
|
||||
{
|
||||
"$type": "adxs-record",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "Badge",
|
||||
"$comment": "An assertion about the subject by this user.",
|
||||
"locale": {
|
||||
"en-US": {
|
||||
"nameSingular": "Badge",
|
||||
"namePlural": "Badges"
|
||||
}
|
||||
},
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["assertion", "subject", "createdAt"],
|
||||
"properties": {
|
||||
"assertion": {
|
||||
"oneOf": [
|
||||
{"$ref": "#/$defs/inviteAssertion"},
|
||||
{"$ref": "#/$defs/employeeAssertion"},
|
||||
{"$ref": "#/$defs/tagAssertion"},
|
||||
{"$ref": "#/$defs/unknownAssertion"}
|
||||
]
|
||||
},
|
||||
"subject": { "type": "string" },
|
||||
"createdAt": {"type": "string", "format": "date-time"}
|
||||
},
|
||||
"$defs": {
|
||||
"inviteAssertion": {
|
||||
"type": "object",
|
||||
"required": ["type"],
|
||||
"properties": {
|
||||
"type": {"const": "invite"}
|
||||
}
|
||||
},
|
||||
"employeeAssertion": {
|
||||
"type": "object",
|
||||
"required": ["type"],
|
||||
"properties": {
|
||||
"type": {"const": "employee"}
|
||||
}
|
||||
},
|
||||
"tagAssertion": {
|
||||
"type": "object",
|
||||
"required": ["type", "tag"],
|
||||
"properties": {
|
||||
"type": {"const": "tag"},
|
||||
"tag": {"type": "string", "maxLength": 64}
|
||||
}
|
||||
},
|
||||
"unknownAssertion": {
|
||||
"type": "object",
|
||||
"required": ["type"],
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"not": {"enum": ["invite", "employee", "tag"]}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"$type": "blueskyweb.xyz:Badge",
|
||||
"assertion": {"type": "employee"},
|
||||
"subject": {
|
||||
"did": "did:example:1234",
|
||||
"name": "alice.com"
|
||||
},
|
||||
"createdAt": "2010-01-01T19:23:24Z"
|
||||
},
|
||||
{
|
||||
"$type": "blueskyweb.xyz:Badge",
|
||||
"assertion": {"type": "tag", "tag": "tech"},
|
||||
"subject": {
|
||||
"did": "did:example:1234",
|
||||
"name": "alice.com"
|
||||
},
|
||||
"createdAt": "2010-01-01T19:23:24Z"
|
||||
},
|
||||
{
|
||||
"$type": "blueskyweb.xyz:Badge",
|
||||
"assertion": {"type": "something-else", "param": "allowed"},
|
||||
"subject": {
|
||||
"did": "did:example:1234",
|
||||
"name": "alice.com"
|
||||
},
|
||||
"createdAt": "2010-01-01T19:23:24Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
12
packages/microblog/src/schemas/Badges.json
Normal file
12
packages/microblog/src/schemas/Badges.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"$type": "adxs-collection",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "Badges",
|
||||
"$comment": "Where you put badges.",
|
||||
"locale": {
|
||||
"en-US": {
|
||||
"nameSingular": "Badges",
|
||||
"namePlural": "Badges Collections"
|
||||
}
|
||||
}
|
||||
}
|
54
packages/microblog/src/schemas/EmbeddedMedia.json
Normal file
54
packages/microblog/src/schemas/EmbeddedMedia.json
Normal file
@ -0,0 +1,54 @@
|
||||
{
|
||||
"$type": "adxs-record",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "EmbeddedMedia",
|
||||
"$comment": "A list of media embedded in a post or document.",
|
||||
"locale": {
|
||||
"en-US": {
|
||||
"nameSingular": "Embedded Media",
|
||||
"namePlural": "Embedded Media"
|
||||
}
|
||||
},
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["media"],
|
||||
"properties": {
|
||||
"media": {"type": "array", "items": {"$ref": "#/$defs/mediaEmbed"}}
|
||||
},
|
||||
"$defs": {
|
||||
"mediaEmbed": {
|
||||
"type": "object",
|
||||
"required": ["original"],
|
||||
"properties": {
|
||||
"alt": {"type": "string"},
|
||||
"thumb": {"$ref": "#/$defs/mediaEmbedBlob"},
|
||||
"original": {"$ref": "#/$defs/mediaEmbedBlob"}
|
||||
}
|
||||
},
|
||||
"mediaEmbedBlob": {
|
||||
"type": "object",
|
||||
"required": ["mimeType", "blobId"],
|
||||
"properties": {
|
||||
"mimeType": {"type": "string"},
|
||||
"blobId": {"type": "string"}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"$type": "blueskyweb.xyz:EmbeddedMedia",
|
||||
"media": [
|
||||
{
|
||||
"alt": "Me at the beach",
|
||||
"thumb": {"mimeType": "image/png", "blobId": "1234"},
|
||||
"original": {"mimeType": "image/png", "blobId": "1235"}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
184
packages/microblog/src/schemas/FeedView.json
Normal file
184
packages/microblog/src/schemas/FeedView.json
Normal file
@ -0,0 +1,184 @@
|
||||
{
|
||||
"$type": "adxs-view",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "FeedView",
|
||||
"$comment": "A computed view of the home feed or a user's feed",
|
||||
"reads": [
|
||||
"blueskyweb.xyz:Feed",
|
||||
"blueskyweb.xyz:SocialGraph"
|
||||
],
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"author": {"type": "string"},
|
||||
"limit": {"type": "number", "maximum": 100},
|
||||
"before": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
},
|
||||
"response": {
|
||||
"type": "object",
|
||||
"required": ["feed"],
|
||||
"properties": {
|
||||
"feed": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "#/$defs/feedItem"}
|
||||
}
|
||||
},
|
||||
"$defs": {
|
||||
"feedItem": {
|
||||
"type": "object",
|
||||
"required": ["uri", "author", "record", "replyCount", "repostCount", "likeCount", "indexedAt"],
|
||||
"properties": {
|
||||
"uri": {"type": "string"},
|
||||
"author": {"$ref": "#/$defs/user"},
|
||||
"repostedBy": {"$ref": "#/$defs/user"},
|
||||
"record": {"type": "object"},
|
||||
"embed": {
|
||||
"oneOf": [
|
||||
{"$ref": "#/$defs/recordEmbed"},
|
||||
{"$ref": "#/$defs/externalEmbed"},
|
||||
{"$ref": "#/$defs/unknownEmbed"}
|
||||
]
|
||||
},
|
||||
"replyCount": {"type": "number"},
|
||||
"repostCount": {"type": "number"},
|
||||
"likeCount": {"type": "number"},
|
||||
"indexedAt": {"type": "string", "format": "date-time"},
|
||||
"myState": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"repost": {"type": "string"},
|
||||
"like": {"type": "string"}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"user": {
|
||||
"type": "object",
|
||||
"required": ["did", "name"],
|
||||
"properties": {
|
||||
"did": {"type": "string"},
|
||||
"name": {"type": "string"},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 64
|
||||
}
|
||||
}
|
||||
},
|
||||
"recordEmbed": {
|
||||
"type": "object",
|
||||
"required": ["type", "author", "record"],
|
||||
"properties": {
|
||||
"type": {"const": "record"},
|
||||
"author": {"$ref": "#/$defs/user"},
|
||||
"record": {"type": "object"}
|
||||
}
|
||||
},
|
||||
"externalEmbed": {
|
||||
"type": "object",
|
||||
"required": ["type", "uri", "title", "description", "imageUri"],
|
||||
"properties": {
|
||||
"type": {"const": "external"},
|
||||
"uri": {"type": "string"},
|
||||
"title": {"type": "string"},
|
||||
"description": {"type": "string"},
|
||||
"imageUri": {"type": "string"}
|
||||
}
|
||||
},
|
||||
"unknownEmbed": {
|
||||
"type": "object",
|
||||
"required": ["type"],
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"not": {"enum": ["record", "external"]}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"feed": [{
|
||||
"uri": "adx://alice.com/blueskyweb.xyz:Feed/1",
|
||||
"author": {"did": "did:example:1234", "name": "alice.com", "displayName": "Alice"},
|
||||
"repostedBy": {"did": "did:example:1235", "name": "bob.com", "displayName": "Bob"},
|
||||
"record": {
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "Hello, world!",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
},
|
||||
"replyCount": 0,
|
||||
"repostCount": 0,
|
||||
"likeCount": 0,
|
||||
"indexedAt": "2022-07-11T21:55:36.553Z"
|
||||
}, {
|
||||
"uri": "adx://alice.com/blueskyweb.xyz:Feed/1",
|
||||
"author": {"did": "did:example:1234", "name": "alice.com", "displayName": "Alice"},
|
||||
"record": {
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "This is a link to a post adx://bob.com/blueskyweb.xyz:Feed/1",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
},
|
||||
"embed": {
|
||||
"type": "record",
|
||||
"author": {"did": "did:example:1235", "name": "bob.com", "displayName": "Bob"},
|
||||
"record": {
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "Hello, world!",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
}
|
||||
},
|
||||
"replyCount": 0,
|
||||
"repostCount": 0,
|
||||
"likeCount": 0,
|
||||
"indexedAt": "2022-07-11T21:55:36.553Z"
|
||||
}, {
|
||||
"uri": "adx://alice.com/blueskyweb.xyz:Feed/1",
|
||||
"author": {"did": "did:example:1234", "name": "alice.com", "displayName": "Alice"},
|
||||
"record": {
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "Check out my website alice.com",
|
||||
"entities": [
|
||||
{
|
||||
"index": [21, 30],
|
||||
"type": "link",
|
||||
"value": "https://alice.com"
|
||||
}
|
||||
],
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
},
|
||||
"embed": {
|
||||
"type": "external",
|
||||
"uri": "https://alice.com",
|
||||
"title": "Alice's personal website",
|
||||
"description": "Just a collection of my thoughts and feelings",
|
||||
"imageUri": "/cdn/cache/web/https-alice-com.jpeg"
|
||||
},
|
||||
"replyCount": 0,
|
||||
"repostCount": 0,
|
||||
"likeCount": 0,
|
||||
"indexedAt": "2022-07-11T21:55:36.553Z"
|
||||
}, {
|
||||
"uri": "adx://alice.com/blueskyweb.xyz:Feed/1",
|
||||
"author": {"did": "did:example:1234", "name": "alice.com", "displayName": "Alice"},
|
||||
"record": {
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "Another test"
|
||||
},
|
||||
"embed": {
|
||||
"type": "somethingelse",
|
||||
"embedIsFutureProof": true
|
||||
},
|
||||
"replyCount": 0,
|
||||
"repostCount": 0,
|
||||
"likeCount": 0,
|
||||
"indexedAt": "2022-07-11T21:55:36.553Z"
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
34
packages/microblog/src/schemas/Follow.json
Normal file
34
packages/microblog/src/schemas/Follow.json
Normal file
@ -0,0 +1,34 @@
|
||||
{
|
||||
"$type": "adxs-record",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "Follow",
|
||||
"$comment": "A social follow",
|
||||
"locale": {
|
||||
"en-US": {
|
||||
"nameSingular": "Follow",
|
||||
"namePlural": "Follows"
|
||||
}
|
||||
},
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["subject", "createdAt"],
|
||||
"properties": {
|
||||
"subject": { "type": "string" },
|
||||
"createdAt": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"$type": "blueskyweb.xyz:Follow",
|
||||
"subject": {
|
||||
"did": "did:example:1234",
|
||||
"name": "alice.com"
|
||||
},
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
12
packages/microblog/src/schemas/Follows.json
Normal file
12
packages/microblog/src/schemas/Follows.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"$type": "adxs-collection",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "Follows",
|
||||
"$comment": "Where you put follows.",
|
||||
"locale": {
|
||||
"en-US": {
|
||||
"nameSingular": "Follows",
|
||||
"namePlural": "Follows Collections"
|
||||
}
|
||||
}
|
||||
}
|
30
packages/microblog/src/schemas/Like.json
Normal file
30
packages/microblog/src/schemas/Like.json
Normal file
@ -0,0 +1,30 @@
|
||||
{
|
||||
"$type": "adxs-record",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "Like",
|
||||
"locale": {
|
||||
"en-US": {
|
||||
"nameSingular": "Like",
|
||||
"namePlural": "Likes"
|
||||
}
|
||||
},
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["subject", "createdAt"],
|
||||
"properties": {
|
||||
"subject": {"type": "string"},
|
||||
"createdAt": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"$type": "blueskyweb.xyz:Like",
|
||||
"subject": "adx://alice.com/blueskyweb.xyz:Feed/1234",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
60
packages/microblog/src/schemas/LikedByView.json
Normal file
60
packages/microblog/src/schemas/LikedByView.json
Normal file
@ -0,0 +1,60 @@
|
||||
{
|
||||
"$type": "adxs-view",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "LikedByView",
|
||||
"reads": [
|
||||
"blueskyweb.xyz:Feed",
|
||||
"blueskyweb.xyz:SocialGraph"
|
||||
],
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"required": ["uri"],
|
||||
"properties": {
|
||||
"uri": {"type": "string"},
|
||||
"limit": {"type": "number", "maximum": 100},
|
||||
"before": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
},
|
||||
"response": {
|
||||
"type": "object",
|
||||
"required": ["uri", "likedBy"],
|
||||
"properties": {
|
||||
"uri": {"type": "string"},
|
||||
"likedBy": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["did", "name", "indexedAt"],
|
||||
"properties": {
|
||||
"did": {"type": "string"},
|
||||
"name": {"type": "string"},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 64
|
||||
},
|
||||
"createdAt": {"type": "string", "format": "date-time"},
|
||||
"indexedAt": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"uri": "adx://alice.com/blueskyweb.xyz:Feed/1234",
|
||||
"likedBy": [
|
||||
{
|
||||
"did": "did:example:1234",
|
||||
"name": "bob.com",
|
||||
"displayName": "Bob",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z",
|
||||
"indexedAt": "2022-07-11T21:55:36.553Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
12
packages/microblog/src/schemas/Likes.json
Normal file
12
packages/microblog/src/schemas/Likes.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"$type": "adxs-collection",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "Likes",
|
||||
"$comment": "Where you put likes.",
|
||||
"locale": {
|
||||
"en-US": {
|
||||
"nameSingular": "Likes",
|
||||
"namePlural": "Likes Collections"
|
||||
}
|
||||
}
|
||||
}
|
50
packages/microblog/src/schemas/NotificationsView.json
Normal file
50
packages/microblog/src/schemas/NotificationsView.json
Normal file
@ -0,0 +1,50 @@
|
||||
{
|
||||
"$type": "adxs-view",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "NotificationsView",
|
||||
"reads": [
|
||||
"blueskyweb.xyz:Feed",
|
||||
"blueskyweb.xyz:SocialGraph"
|
||||
],
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limit": {"type": "number", "maximum": 100},
|
||||
"before": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
},
|
||||
"response": {
|
||||
"type": "object",
|
||||
"required": ["notifications"],
|
||||
"properties": {
|
||||
"notifications": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "#/$defs/notification"}
|
||||
}
|
||||
},
|
||||
"$defs": {
|
||||
"notification": {
|
||||
"type": "object",
|
||||
"required": ["uri", "author", "record", "isRead", "indexedAt"],
|
||||
"properties": {
|
||||
"uri": {"type": "string", "format": "uri"},
|
||||
"author": {
|
||||
"type": "object",
|
||||
"required": ["did", "name", "displayName"],
|
||||
"properties": {
|
||||
"did": {"type": "string"},
|
||||
"name": {"type": "string"},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 64
|
||||
}
|
||||
}
|
||||
},
|
||||
"record": {"type": "object"},
|
||||
"isRead": {"type": "boolean"},
|
||||
"indexedAt": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
109
packages/microblog/src/schemas/Post.json
Normal file
109
packages/microblog/src/schemas/Post.json
Normal file
@ -0,0 +1,109 @@
|
||||
{
|
||||
"$type": "adxs-record",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "Post",
|
||||
"locale": {
|
||||
"en-US": {
|
||||
"nameSingular": "Post",
|
||||
"namePlural": "Posts"
|
||||
}
|
||||
},
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["text", "createdAt"],
|
||||
"properties": {
|
||||
"text": {"type": "string", "maxLength": 256},
|
||||
"entities": {"$ref": "#/$defs/entity"},
|
||||
"reply": {
|
||||
"type": "object",
|
||||
"required": ["root"],
|
||||
"properties": {
|
||||
"root": {"type": "string"},
|
||||
"parent": {"type": "string"}
|
||||
}
|
||||
},
|
||||
"createdAt": {"type": "string", "format": "date-time"}
|
||||
},
|
||||
"$defs": {
|
||||
"entity": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["index", "type", "value"],
|
||||
"properties": {
|
||||
"index": {"$ref": "#/$defs/textSlice"},
|
||||
"type": {
|
||||
"type": "string",
|
||||
"$comment": "Expected values are 'mention', 'hashtag', and 'link'."
|
||||
},
|
||||
"value": {"type": "string"}
|
||||
}
|
||||
}
|
||||
},
|
||||
"textSlice": {
|
||||
"type": "array",
|
||||
"items": [{"type": "number"}, {"type": "number"}],
|
||||
"minItems": 2,
|
||||
"maxItems": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "Hello, world!",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
},
|
||||
{
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "This is a reply to a post",
|
||||
"reply": {
|
||||
"root": "adx://alice.com/blueskyweb.xyz:Feed/1",
|
||||
"parent": "adx://bob.com/blueskyweb.xyz:Feed/9"
|
||||
},
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
},
|
||||
{
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "Hey @bob.com, are we #CrushingIt or what? Check out my website alice.com",
|
||||
"entities": [
|
||||
{
|
||||
"index": [4, 12],
|
||||
"type": "mention",
|
||||
"value": "did:example:1234"
|
||||
},
|
||||
{
|
||||
"index": [21, 32],
|
||||
"type": "hashtag",
|
||||
"value": "CrushingIt"
|
||||
},
|
||||
{
|
||||
"index": [63, 72],
|
||||
"type": "link",
|
||||
"value": "https://alice.com"
|
||||
}
|
||||
],
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
},
|
||||
{
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "This post embeds an image!",
|
||||
"$ext": {
|
||||
"blueskyweb.xyz:EmbeddedMedia": {
|
||||
"media": [
|
||||
{
|
||||
"alt": "Me at the beach",
|
||||
"thumb": {"mimeType": "image/png", "blobId": "1234"},
|
||||
"original": {"mimeType": "image/png", "blobId": "1235"}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
189
packages/microblog/src/schemas/PostThreadView.json
Normal file
189
packages/microblog/src/schemas/PostThreadView.json
Normal file
@ -0,0 +1,189 @@
|
||||
{
|
||||
"$type": "adxs-view",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "PostThreadView",
|
||||
"reads": [
|
||||
"blueskyweb.xyz:Feed",
|
||||
"blueskyweb.xyz:SocialGraph"
|
||||
],
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"required": ["uri"],
|
||||
"properties": {
|
||||
"uri": {"type": "string"},
|
||||
"depth": {"type": "number"}
|
||||
}
|
||||
},
|
||||
"response": {
|
||||
"type": "object",
|
||||
"required": ["thread"],
|
||||
"properties": {
|
||||
"thread": {"$ref": "#/$defs/post"}
|
||||
},
|
||||
"$defs": {
|
||||
"post": {
|
||||
"type": "object",
|
||||
"required": ["uri", "author", "record", "replyCount", "likeCount", "repostCount", "indexedAt"],
|
||||
"properties": {
|
||||
"uri": {"type": "string"},
|
||||
"author": {"$ref": "#/$defs/user"},
|
||||
"record": {"type": "object"},
|
||||
"embed": {
|
||||
"oneOf": [
|
||||
{"$ref": "#/$defs/recordEmbed"},
|
||||
{"$ref": "#/$defs/externalEmbed"},
|
||||
{"$ref": "#/$defs/unknownEmbed"}
|
||||
]
|
||||
},
|
||||
"parent": {"$ref": "#/$defs/post"},
|
||||
"replyCount": {"type": "number"},
|
||||
"replies": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "#/$defs/post"}
|
||||
},
|
||||
"likeCount": {"type": "number"},
|
||||
"repostCount": {"type": "number"},
|
||||
"indexedAt": {"type": "string", "format": "date-time"},
|
||||
"myState": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"repost": {"type": "string"},
|
||||
"like": {"type": "string"}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"user": {
|
||||
"type": "object",
|
||||
"required": ["did", "name"],
|
||||
"properties": {
|
||||
"did": {"type": "string"},
|
||||
"name": {"type": "string"},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 64
|
||||
}
|
||||
}
|
||||
},
|
||||
"recordEmbed": {
|
||||
"type": "object",
|
||||
"required": ["type", "author", "record"],
|
||||
"properties": {
|
||||
"type": {"const": "record"},
|
||||
"author": {"$ref": "#/$defs/user"},
|
||||
"record": {"type": "object"}
|
||||
}
|
||||
},
|
||||
"externalEmbed": {
|
||||
"type": "object",
|
||||
"required": ["type", "uri", "title", "description", "imageUri"],
|
||||
"properties": {
|
||||
"type": {"const": "external"},
|
||||
"uri": {"type": "string"},
|
||||
"title": {"type": "string"},
|
||||
"description": {"type": "string"},
|
||||
"imageUri": {"type": "string"}
|
||||
}
|
||||
},
|
||||
"unknownEmbed": {
|
||||
"type": "object",
|
||||
"required": ["type"],
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"not": {"enum": ["record", "external"]}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [{
|
||||
"thread": {
|
||||
"uri": "adx://alice.com/blueskyweb.xyz:Feed/1",
|
||||
"author": {"did": "did:example:1234", "name": "alice.com", "displayName": "Alice"},
|
||||
"repostedBy": {"did": "did:example:1235", "name": "bob.com", "displayName": "Bob"},
|
||||
"record": {
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "Hello, world!",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
},
|
||||
"replyCount": 3,
|
||||
"repostCount": 0,
|
||||
"likeCount": 0,
|
||||
"indexedAt": "2022-07-11T21:55:36.553Z",
|
||||
"replies": [
|
||||
{
|
||||
"uri": "adx://alice.com/blueskyweb.xyz:Feed/2",
|
||||
"author": {"did": "did:example:1234", "name": "alice.com", "displayName": "Alice"},
|
||||
"record": {
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "This is a link to a post adx://bob.com/blueskyweb.xyz:Feed/1",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
},
|
||||
"embed": {
|
||||
"type": "record",
|
||||
"author": {"did": "did:example:1235", "name": "bob.com", "displayName": "Bob"},
|
||||
"record": {
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "Hello, world!",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
}
|
||||
},
|
||||
"replyCount": 1,
|
||||
"repostCount": 0,
|
||||
"likeCount": 0,
|
||||
"indexedAt": "2022-07-11T21:55:36.553Z",
|
||||
"replies": [
|
||||
{
|
||||
"uri": "adx://alice.com/blueskyweb.xyz:Feed/3",
|
||||
"author": {"did": "did:example:1234", "name": "alice.com", "displayName": "Alice"},
|
||||
"record": {
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "Another test"
|
||||
},
|
||||
"embed": {
|
||||
"type": "somethingelse",
|
||||
"embedIsFutureProof": true
|
||||
},
|
||||
"replyCount": 0,
|
||||
"repostCount": 0,
|
||||
"likeCount": 0,
|
||||
"indexedAt": "2022-07-11T21:55:36.553Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"uri": "adx://alice.com/blueskyweb.xyz:Feed/4",
|
||||
"author": {"did": "did:example:1234", "name": "alice.com", "displayName": "Alice"},
|
||||
"record": {
|
||||
"$type": "blueskyweb.xyz:Post",
|
||||
"text": "Check out my website alice.com",
|
||||
"entities": [
|
||||
{
|
||||
"index": [21, 30],
|
||||
"type": "link",
|
||||
"value": "https://alice.com"
|
||||
}
|
||||
],
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
},
|
||||
"embed": {
|
||||
"type": "external",
|
||||
"uri": "https://alice.com",
|
||||
"title": "Alice's personal website",
|
||||
"description": "Just a collection of my thoughts and feelings",
|
||||
"imageUri": "/cdn/cache/web/https-alice-com.jpeg"
|
||||
},
|
||||
"replyCount": 0,
|
||||
"repostCount": 0,
|
||||
"likeCount": 0,
|
||||
"indexedAt": "2022-07-11T21:55:36.553Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
}
|
12
packages/microblog/src/schemas/Posts.json
Normal file
12
packages/microblog/src/schemas/Posts.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"$type": "adxs-collection",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "Posts",
|
||||
"$comment": "Where you put posts and reposts.",
|
||||
"locale": {
|
||||
"en-US": {
|
||||
"nameSingular": "Posts",
|
||||
"namePlural": "Posts Collections"
|
||||
}
|
||||
}
|
||||
}
|
49
packages/microblog/src/schemas/Profile.json
Normal file
49
packages/microblog/src/schemas/Profile.json
Normal file
@ -0,0 +1,49 @@
|
||||
{
|
||||
"$type": "adxs-record",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "Profile",
|
||||
"locale": {
|
||||
"en-US": {
|
||||
"nameSingular": "Profile",
|
||||
"namePlural": "Profiles"
|
||||
}
|
||||
},
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["displayName"],
|
||||
"properties": {
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 64
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"maxLength": 256
|
||||
},
|
||||
"badges": {"type": "array", "items": {"$ref": "#/$defs/badgeRef"}}
|
||||
},
|
||||
"$defs": {
|
||||
"badgeRef": {
|
||||
"type": "object",
|
||||
"required": ["uri"],
|
||||
"properties": {
|
||||
"uri": {"type": "string"}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"$type": "blueskyweb.xyz:Profile",
|
||||
"displayName": "Alice",
|
||||
"description": "A cool hacker chick",
|
||||
"badges": [{
|
||||
"uri": "adx://bob.com/blueskyweb.xyz:Social/1234"
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
109
packages/microblog/src/schemas/ProfileView.json
Normal file
109
packages/microblog/src/schemas/ProfileView.json
Normal file
@ -0,0 +1,109 @@
|
||||
{
|
||||
"$type": "adxs-view",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "ProfileView",
|
||||
"reads": [
|
||||
"blueskyweb.xyz:Feed",
|
||||
"blueskyweb.xyz:SocialGraph"
|
||||
],
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"required": ["user"],
|
||||
"properties": {
|
||||
"user": {"type": "string"}
|
||||
}
|
||||
},
|
||||
"response": {
|
||||
"type": "object",
|
||||
"required": ["did", "name", "followersCount", "followsCount", "postsCount", "badges"],
|
||||
"properties": {
|
||||
"did": {"type": "string"},
|
||||
"name": {"type": "string"},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 64
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"maxLength": 256
|
||||
},
|
||||
"followersCount": {"type": "number"},
|
||||
"followsCount": {"type": "number"},
|
||||
"postsCount": {"type": "number"},
|
||||
"badges": {"type": "array", "items": {"$ref":"#/$defs/badge"}},
|
||||
"myState": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"follow": {"type": "string"}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$defs": {
|
||||
"badge": {
|
||||
"type": "object",
|
||||
"required": ["uri"],
|
||||
"properties": {
|
||||
"uri": {"type": "string"},
|
||||
"error": {"type": "string"},
|
||||
"issuer": {
|
||||
"type": "object",
|
||||
"required": ["did", "name", "displayName"],
|
||||
"properties": {
|
||||
"did": {"type": "string"},
|
||||
"name": {"type": "string"},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 64
|
||||
}
|
||||
}
|
||||
},
|
||||
"assertion": {
|
||||
"type": "object",
|
||||
"required": ["type"],
|
||||
"properties": {
|
||||
"type": {"type": "string"}
|
||||
}
|
||||
},
|
||||
"createdAt": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"did": "did:example:1234",
|
||||
"name": "alice.com",
|
||||
"displayName": "Alice",
|
||||
"description": "A cool hacker chick",
|
||||
"followersCount": 1000,
|
||||
"followsCount": 100,
|
||||
"postsCount": 250,
|
||||
"badges": [
|
||||
{
|
||||
"uri": "adx://work.com/blueskyweb.xyz:Social/1234",
|
||||
"issuer": {
|
||||
"did": "did:example:4321",
|
||||
"name": "work.com",
|
||||
"displayName": "Work"
|
||||
},
|
||||
"assertion": {"type": "employee"},
|
||||
"createdAt": "2010-01-01T19:23:24Z"
|
||||
},
|
||||
{
|
||||
"uri": "adx://bob.com/blueskyweb.xyz:Social/2222",
|
||||
"issuer": {
|
||||
"did": "did:example:5555",
|
||||
"name": "bob.com",
|
||||
"displayName": "Bob"
|
||||
},
|
||||
"assertion": {"type": "tag", "tag": "tech"},
|
||||
"createdAt": "2010-01-01T19:23:24Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
12
packages/microblog/src/schemas/Profiles.json
Normal file
12
packages/microblog/src/schemas/Profiles.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"$type": "adxs-collection",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "Profiles",
|
||||
"$comment": "Where you put your profile.",
|
||||
"locale": {
|
||||
"en-US": {
|
||||
"nameSingular": "Profiles",
|
||||
"namePlural": "Profiles Collections"
|
||||
}
|
||||
}
|
||||
}
|
30
packages/microblog/src/schemas/Repost.json
Normal file
30
packages/microblog/src/schemas/Repost.json
Normal file
@ -0,0 +1,30 @@
|
||||
{
|
||||
"$type": "adxs-record",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "Repost",
|
||||
"locale": {
|
||||
"en-US": {
|
||||
"nameSingular": "Repost",
|
||||
"namePlural": "Reposts"
|
||||
}
|
||||
},
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": ["subject", "createdAt"],
|
||||
"properties": {
|
||||
"subject": {"type": "string"},
|
||||
"createdAt": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"$type": "blueskyweb.xyz:Repost",
|
||||
"subject": "adx://alice.com/blueskyweb.xyz:Feed/1234",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
60
packages/microblog/src/schemas/RepostedByView.json
Normal file
60
packages/microblog/src/schemas/RepostedByView.json
Normal file
@ -0,0 +1,60 @@
|
||||
{
|
||||
"$type": "adxs-view",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "RepostedByView",
|
||||
"reads": [
|
||||
"blueskyweb.xyz:Feed",
|
||||
"blueskyweb.xyz:SocialGraph"
|
||||
],
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"required": ["uri"],
|
||||
"properties": {
|
||||
"uri": {"type": "string"},
|
||||
"limit": {"type": "number", "maximum": 100},
|
||||
"before": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
},
|
||||
"response": {
|
||||
"type": "object",
|
||||
"required": ["uri", "repostedBy"],
|
||||
"properties": {
|
||||
"uri": {"type": "string"},
|
||||
"repostedBy": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["did", "name", "indexedAt"],
|
||||
"properties": {
|
||||
"did": {"type": "string"},
|
||||
"name": {"type": "string"},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 64
|
||||
},
|
||||
"createdAt": {"type": "string", "format": "date-time"},
|
||||
"indexedAt": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"uri": "adx://alice.com/blueskyweb.xyz:Feed/1234",
|
||||
"repostedBy": [
|
||||
{
|
||||
"did": "did:example:1234",
|
||||
"name": "bob.com",
|
||||
"displayName": "Bob",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z",
|
||||
"indexedAt": "2022-07-11T21:55:36.553Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
75
packages/microblog/src/schemas/UserFollowersView.json
Normal file
75
packages/microblog/src/schemas/UserFollowersView.json
Normal file
@ -0,0 +1,75 @@
|
||||
{
|
||||
"$type": "adxs-view",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "UserFollowersView",
|
||||
"$comment": "Who is following a user?",
|
||||
"reads": [
|
||||
"blueskyweb.xyz:SocialGraph"
|
||||
],
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"required": ["user"],
|
||||
"properties": {
|
||||
"user": {"type": "string"},
|
||||
"limit": {"type": "number", "maximum": 100},
|
||||
"before": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
},
|
||||
"response": {
|
||||
"type": "object",
|
||||
"required": ["subject", "followers"],
|
||||
"properties": {
|
||||
"subject": {
|
||||
"type": "object",
|
||||
"required": ["did", "name"],
|
||||
"properties": {
|
||||
"did": {"type": "string"},
|
||||
"name": {"type": "string"},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 64
|
||||
}
|
||||
}
|
||||
},
|
||||
"followers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["did", "name", "indexedAt"],
|
||||
"properties": {
|
||||
"did": {"type": "string"},
|
||||
"name": {"type": "string"},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 64
|
||||
},
|
||||
"createdAt": {"type": "string", "format": "date-time"},
|
||||
"indexedAt": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"subject": {
|
||||
"did": "did:example:1235",
|
||||
"name": "alice.com",
|
||||
"displayName": "Alice"
|
||||
},
|
||||
"followers": [
|
||||
{
|
||||
"did": "did:example:1234",
|
||||
"name": "bob.com",
|
||||
"displayName": "Bob",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z",
|
||||
"indexedAt": "2022-07-11T21:55:36.553Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
75
packages/microblog/src/schemas/UserFollowsView.json
Normal file
75
packages/microblog/src/schemas/UserFollowsView.json
Normal file
@ -0,0 +1,75 @@
|
||||
{
|
||||
"$type": "adxs-view",
|
||||
"author": "blueskyweb.xyz",
|
||||
"name": "UserFollowsView",
|
||||
"$comment": "Who is a user following?",
|
||||
"reads": [
|
||||
"blueskyweb.xyz:SocialGraph"
|
||||
],
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"required": ["user"],
|
||||
"properties": {
|
||||
"user": {"type": "string"},
|
||||
"limit": {"type": "number", "maximum": 100},
|
||||
"before": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
},
|
||||
"response": {
|
||||
"type": "object",
|
||||
"required": ["subject", "follows"],
|
||||
"properties": {
|
||||
"subject": {
|
||||
"type": "object",
|
||||
"required": ["did", "name"],
|
||||
"properties": {
|
||||
"did": {"type": "string"},
|
||||
"name": {"type": "string"},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 64
|
||||
}
|
||||
}
|
||||
},
|
||||
"follows": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["did", "name", "indexedAt"],
|
||||
"properties": {
|
||||
"did": {"type": "string"},
|
||||
"name": {"type": "string"},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 64
|
||||
},
|
||||
"createdAt": {"type": "string", "format": "date-time"},
|
||||
"indexedAt": {"type": "string", "format": "date-time"}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$ext": {
|
||||
"adxs-doc": {
|
||||
"examples": [
|
||||
{
|
||||
"subject": {
|
||||
"did": "did:example:1235",
|
||||
"name": "alice.com",
|
||||
"displayName": "Alice"
|
||||
},
|
||||
"follows": [
|
||||
{
|
||||
"did": "did:example:1234",
|
||||
"name": "bob.com",
|
||||
"displayName": "Bob",
|
||||
"createdAt": "2022-07-11T21:55:36.553Z",
|
||||
"indexedAt": "2022-07-11T21:55:36.553Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
190
yarn.lock
190
yarn.lock
@ -965,6 +965,16 @@
|
||||
"@babel/helper-validator-identifier" "^7.18.6"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@bcherny/json-schema-ref-parser@9.0.9":
|
||||
version "9.0.9"
|
||||
resolved "https://registry.yarnpkg.com/@bcherny/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#09899d405bc708c0acac0066ae8db5b94d465ca4"
|
||||
integrity sha512-vmEmnJCfpkLdas++9OYg6riIezTYqTHpqUTODJzHLzs5UnXujbOJW9VwcVCnyo1mVRt32FRr23iXBx/sX8YbeQ==
|
||||
dependencies:
|
||||
"@jsdevtools/ono" "^7.1.3"
|
||||
"@types/json-schema" "^7.0.6"
|
||||
call-me-maybe "^1.0.1"
|
||||
js-yaml "^4.1.0"
|
||||
|
||||
"@bcoe/v8-coverage@^0.2.3":
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
||||
@ -1360,6 +1370,11 @@
|
||||
"@jridgewell/resolve-uri" "^3.0.3"
|
||||
"@jridgewell/sourcemap-codec" "^1.4.10"
|
||||
|
||||
"@jsdevtools/ono@^7.1.3":
|
||||
version "7.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796"
|
||||
integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
|
||||
|
||||
"@lerna/add@4.0.0":
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@lerna/add/-/add-4.0.0.tgz#c36f57d132502a57b9e7058d1548b7a565ef183f"
|
||||
@ -2712,6 +2727,14 @@
|
||||
"@types/minimatch" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/glob@^7.1.3":
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb"
|
||||
integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==
|
||||
dependencies:
|
||||
"@types/minimatch" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/graceful-fs@^4.1.3":
|
||||
version "4.1.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15"
|
||||
@ -2754,11 +2777,16 @@
|
||||
jest-matcher-utils "^28.0.0"
|
||||
pretty-format "^28.0.0"
|
||||
|
||||
"@types/json-schema@^7.0.7":
|
||||
"@types/json-schema@^7.0.11", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7":
|
||||
version "7.0.11"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
|
||||
integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
|
||||
|
||||
"@types/lodash@^4.14.182":
|
||||
version "4.14.185"
|
||||
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.185.tgz#c9843f5a40703a8f5edfd53358a58ae729816908"
|
||||
integrity sha512-evMDG1bC4rgQg4ku9tKpuMh5iBNEwNa3tf9zRHdP1qlv+1WUg44xat4IxCE14gIpZRGUUWAx2VhItCZc25NfMA==
|
||||
|
||||
"@types/mime@^1":
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a"
|
||||
@ -2817,6 +2845,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.3.tgz#68ada76827b0010d0db071f739314fa429943d0a"
|
||||
integrity sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==
|
||||
|
||||
"@types/prettier@^2.6.1":
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc"
|
||||
integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==
|
||||
|
||||
"@types/prompt@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/prompt/-/prompt-1.1.2.tgz#e9191350fe2c0035c22fef1235b1b09f26e5645a"
|
||||
@ -3850,6 +3883,11 @@ call-bind@^1.0.0, call-bind@^1.0.2:
|
||||
function-bind "^1.1.1"
|
||||
get-intrinsic "^1.0.2"
|
||||
|
||||
call-me-maybe@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
|
||||
integrity sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==
|
||||
|
||||
callsites@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
|
||||
@ -4037,6 +4075,17 @@ clean-stack@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
|
||||
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
|
||||
|
||||
cli-color@^2.0.2:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-2.0.3.tgz#73769ba969080629670f3f2ef69a4bf4e7cc1879"
|
||||
integrity sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==
|
||||
dependencies:
|
||||
d "^1.0.1"
|
||||
es5-ext "^0.10.61"
|
||||
es6-iterator "^2.0.3"
|
||||
memoizee "^0.4.15"
|
||||
timers-ext "^0.1.7"
|
||||
|
||||
cli-cursor@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
|
||||
@ -4471,6 +4520,14 @@ cycle@1.0.x:
|
||||
resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2"
|
||||
integrity sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA==
|
||||
|
||||
d@1, d@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
|
||||
integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
|
||||
dependencies:
|
||||
es5-ext "^0.10.50"
|
||||
type "^1.0.1"
|
||||
|
||||
dargs@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc"
|
||||
@ -4916,6 +4973,42 @@ es-to-primitive@^1.2.1:
|
||||
is-date-object "^1.0.1"
|
||||
is-symbol "^1.0.2"
|
||||
|
||||
es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@^0.10.61, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46:
|
||||
version "0.10.62"
|
||||
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5"
|
||||
integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==
|
||||
dependencies:
|
||||
es6-iterator "^2.0.3"
|
||||
es6-symbol "^3.1.3"
|
||||
next-tick "^1.1.0"
|
||||
|
||||
es6-iterator@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
|
||||
integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "^0.10.35"
|
||||
es6-symbol "^3.1.1"
|
||||
|
||||
es6-symbol@^3.1.1, es6-symbol@^3.1.3:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
|
||||
integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
|
||||
dependencies:
|
||||
d "^1.0.1"
|
||||
ext "^1.1.2"
|
||||
|
||||
es6-weak-map@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
|
||||
integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "^0.10.46"
|
||||
es6-iterator "^2.0.3"
|
||||
es6-symbol "^3.1.1"
|
||||
|
||||
esbuild-android-64@0.14.48:
|
||||
version "0.14.48"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.48.tgz#7e6394a0e517f738641385aaf553c7e4fb6d1ae3"
|
||||
@ -5203,6 +5296,14 @@ etag@~1.8.1:
|
||||
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
|
||||
integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
|
||||
|
||||
event-emitter@^0.3.5:
|
||||
version "0.3.5"
|
||||
resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
|
||||
integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "~0.10.14"
|
||||
|
||||
eventemitter3@^4.0.4:
|
||||
version "4.0.7"
|
||||
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
|
||||
@ -5281,6 +5382,13 @@ express@^4.17.2, express@^4.18.1:
|
||||
utils-merge "1.0.1"
|
||||
vary "~1.1.2"
|
||||
|
||||
ext@^1.1.2:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"
|
||||
integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==
|
||||
dependencies:
|
||||
type "^2.7.2"
|
||||
|
||||
extend@~3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
||||
@ -5784,6 +5892,13 @@ glob-parent@^6.0.2:
|
||||
dependencies:
|
||||
is-glob "^4.0.3"
|
||||
|
||||
glob-promise@^4.2.2:
|
||||
version "4.2.2"
|
||||
resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-4.2.2.tgz#15f44bcba0e14219cd93af36da6bb905ff007877"
|
||||
integrity sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==
|
||||
dependencies:
|
||||
"@types/glob" "^7.1.3"
|
||||
|
||||
glob@^6.0.4:
|
||||
version "6.0.4"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
|
||||
@ -6425,6 +6540,11 @@ is-plain-object@^5.0.0:
|
||||
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
|
||||
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
|
||||
|
||||
is-promise@^2.2.2:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
|
||||
integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
|
||||
|
||||
is-regex@^1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
|
||||
@ -6989,6 +7109,26 @@ json-parse-even-better-errors@^2.3.0:
|
||||
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
|
||||
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
|
||||
|
||||
json-schema-to-typescript@^11.0.2:
|
||||
version "11.0.2"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-11.0.2.tgz#80348391abb4ffb75daf312380c2f01c552ffba8"
|
||||
integrity sha512-XRyeXBJeo/IH4eTP5D1ptX78vCvH86nMDt2k3AxO28C3uYWEDmy4mgPyMpb8bLJ/pJMElOGuQbnKR5Y6NSh3QQ==
|
||||
dependencies:
|
||||
"@bcherny/json-schema-ref-parser" "9.0.9"
|
||||
"@types/json-schema" "^7.0.11"
|
||||
"@types/lodash" "^4.14.182"
|
||||
"@types/prettier" "^2.6.1"
|
||||
cli-color "^2.0.2"
|
||||
get-stdin "^8.0.0"
|
||||
glob "^7.1.6"
|
||||
glob-promise "^4.2.2"
|
||||
is-glob "^4.0.3"
|
||||
lodash "^4.17.21"
|
||||
minimist "^1.2.6"
|
||||
mkdirp "^1.0.4"
|
||||
mz "^2.7.0"
|
||||
prettier "^2.6.2"
|
||||
|
||||
json-schema-traverse@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
||||
@ -7294,6 +7434,13 @@ lru-cache@^6.0.0:
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
lru-queue@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3"
|
||||
integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==
|
||||
dependencies:
|
||||
es5-ext "~0.10.2"
|
||||
|
||||
lunr@^2.3.9:
|
||||
version "2.3.9"
|
||||
resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1"
|
||||
@ -7389,6 +7536,20 @@ media-typer@0.3.0:
|
||||
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
|
||||
integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
|
||||
|
||||
memoizee@^0.4.15:
|
||||
version "0.4.15"
|
||||
resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72"
|
||||
integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==
|
||||
dependencies:
|
||||
d "^1.0.1"
|
||||
es5-ext "^0.10.53"
|
||||
es6-weak-map "^2.0.3"
|
||||
event-emitter "^0.3.5"
|
||||
is-promise "^2.2.2"
|
||||
lru-queue "^0.1.0"
|
||||
next-tick "^1.1.0"
|
||||
timers-ext "^0.1.7"
|
||||
|
||||
memory-pager@^1.0.2:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5"
|
||||
@ -7733,7 +7894,7 @@ mute-stream@0.0.8, mute-stream@~0.0.4:
|
||||
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
|
||||
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
|
||||
|
||||
mz@^2.4.0:
|
||||
mz@^2.4.0, mz@^2.7.0:
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
|
||||
integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
|
||||
@ -7798,6 +7959,11 @@ neon-cli@0.4.0:
|
||||
validate-npm-package-license "^3.0.1"
|
||||
validate-npm-package-name "^3.0.0"
|
||||
|
||||
next-tick@1, next-tick@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
|
||||
integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
|
||||
|
||||
nice-try@^1.0.4:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
|
||||
@ -8634,7 +8800,7 @@ prettier-config-standard@^4.0.0:
|
||||
resolved "https://registry.yarnpkg.com/prettier-config-standard/-/prettier-config-standard-4.1.0.tgz#2e37187b68e31fd35aae559d48e8793854ddfd9f"
|
||||
integrity sha512-ZTIjjxurdZfrRHlWPLVXwutC+28zLbdoUQ58V2XcsqBUYFQZFwlt6quKY7aOVRYuV4F2wDqRNFlcS7MlkVkmwg==
|
||||
|
||||
prettier@^2.3.0:
|
||||
prettier@^2.3.0, prettier@^2.6.2:
|
||||
version "2.7.1"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64"
|
||||
integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==
|
||||
@ -10129,6 +10295,14 @@ time-span@3.1.0:
|
||||
dependencies:
|
||||
convert-hrtime "^2.0.0"
|
||||
|
||||
timers-ext@^0.1.7:
|
||||
version "0.1.7"
|
||||
resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6"
|
||||
integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==
|
||||
dependencies:
|
||||
es5-ext "~0.10.46"
|
||||
next-tick "1"
|
||||
|
||||
tmp@^0.0.33:
|
||||
version "0.0.33"
|
||||
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
|
||||
@ -10324,6 +10498,16 @@ type-is@~1.6.18:
|
||||
media-typer "0.3.0"
|
||||
mime-types "~2.1.24"
|
||||
|
||||
type@^1.0.1:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
|
||||
integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
|
||||
|
||||
type@^2.7.2:
|
||||
version "2.7.2"
|
||||
resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0"
|
||||
integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==
|
||||
|
||||
typedarray-to-buffer@^3.1.5:
|
||||
version "3.1.5"
|
||||
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
|
||||
|
Loading…
x
Reference in New Issue
Block a user