Compare commits
26 Commits
Author | SHA1 | Date | |
---|---|---|---|
85cfac2493 | |||
b2b9d318cc | |||
af4b4407b8 | |||
7d2598efbd | |||
2990b32029 | |||
0566ba2f7f | |||
a2dc2e15f2 | |||
67cc3d9d74 | |||
bc039bbe5c | |||
0cb411c985 | |||
d9e3b8fbb8 | |||
3ea17ce47c | |||
e850c0be4c | |||
f7a8e72d56 | |||
e263406a0b | |||
85463cd9b1 | |||
a1fcea9bc9 | |||
9eba6cdec6 | |||
79426ca5e0 | |||
0678c3f4ea | |||
655e30227b | |||
300eb7f940 | |||
a41839ed09 | |||
d7dfb3dfd4 | |||
98f5c3d1a6 | |||
65f823b11c |
4
.github/release-drafter.yml
vendored
Normal file
4
.github/release-drafter.yml
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
template: |
|
||||
## Changes
|
||||
|
||||
$CHANGES
|
11
README.md
11
README.md
@ -1,5 +1,7 @@
|
||||
This repository/module contains JSON Schema definitions as well as examples for
|
||||
[Kosmos](https://kosmos.org) data formats.
|
||||
[](https://www.npmjs.com/package/@kosmos/schemas)
|
||||
|
||||
This repository/module contains [JSON Schema](https://json-schema.org/)
|
||||
definitions as well as examples for [Kosmos](https://kosmos.org) data formats.
|
||||
|
||||
## Usage
|
||||
|
||||
@ -24,8 +26,3 @@ if (result) {
|
||||
console.log(tv4.error);
|
||||
}
|
||||
```
|
||||
|
||||
## TODO
|
||||
|
||||
* Add script for publishing both human- and machine-readable schemas to
|
||||
https://schema.kosmos.org
|
||||
|
10
examples/expense.json
Normal file
10
examples/expense.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"title": "Server rent",
|
||||
"description": "Dedicated server: andromeda.kosmos.org, April 2020",
|
||||
"currency": "EUR",
|
||||
"amount": 39.00,
|
||||
"amountSats": 422966,
|
||||
"date": "2020-05-06",
|
||||
"url": "https://wiki.kosmos.org/Infrastructure#Hetzner",
|
||||
"tags": ["infrastructure", "server", "hetzner"]
|
||||
}
|
10
index.js
10
index.js
@ -1,7 +1,9 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const contribution = require('./schemas/contribution');
|
||||
const contributor = require('./schemas/contributor');
|
||||
const expense = require('./schemas/expense');
|
||||
|
||||
module.exports = {
|
||||
"contribution": JSON.parse(fs.readFileSync(path.join(__dirname, 'schemas', 'contribution.json'))),
|
||||
"contributor": JSON.parse(fs.readFileSync(path.join(__dirname, 'schemas', 'contributor.json')))
|
||||
contribution,
|
||||
contributor,
|
||||
expense
|
||||
};
|
||||
|
13
package-lock.json
generated
Normal file
13
package-lock.json
generated
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "@kosmos/schemas",
|
||||
"version": "3.2.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@kosmos/schemas",
|
||||
"version": "3.2.0",
|
||||
"license": "MIT"
|
||||
}
|
||||
}
|
||||
}
|
22
package.json
22
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "kosmos-schemas",
|
||||
"version": "2.1.0",
|
||||
"name": "@kosmos/schemas",
|
||||
"version": "3.2.0",
|
||||
"description": "JSON-LD schemas for Kosmos data formats",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
@ -9,24 +9,14 @@
|
||||
"keywords": [
|
||||
"ipfs",
|
||||
"kosmos",
|
||||
"kredits",
|
||||
"remotestorage"
|
||||
],
|
||||
"author": "Kosmos Contributors <mail@kosmos.org>",
|
||||
"contributors": [
|
||||
"Sebastian Kippe (https://sebastian.kip.pe)",
|
||||
"Garret Alfert (http://garretalfert.com)"
|
||||
],
|
||||
"author": "Kosmos Contributors",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/67P/kosmos-schemas.git"
|
||||
"url": "https://gitea.kosmos.org/kosmos/schemas.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"brfs-babel": "^1.0.0"
|
||||
},
|
||||
"browserify": {
|
||||
"transform": [
|
||||
"brfs-babel"
|
||||
]
|
||||
}
|
||||
"homepage": "https://gitea.kosmos.org/kosmos/schemas"
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
module.exports = {
|
||||
"$schema": "https://json-schema.org/draft-07/schema#",
|
||||
"id": "https://schema.kosmos.org/Contribution",
|
||||
"properties": {
|
||||
@ -43,12 +43,15 @@
|
||||
"title": "Kind",
|
||||
"description": "Type/category of contribution",
|
||||
"enum": [
|
||||
"bureaucracy",
|
||||
"dev",
|
||||
"design",
|
||||
"ops",
|
||||
"docs",
|
||||
"community",
|
||||
"special"
|
||||
"special",
|
||||
"qa",
|
||||
"outreach"
|
||||
]
|
||||
},
|
||||
"description": {
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
module.exports = {
|
||||
"$schema": "https://json-schema.org/draft-07/schema#",
|
||||
"id": "https://schema.kosmos.org/Contributor",
|
||||
"properties": {
|
114
schemas/expense.js
Normal file
114
schemas/expense.js
Normal file
@ -0,0 +1,114 @@
|
||||
module.exports = {
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"$id": "https://schema.kosmos.org/Expense",
|
||||
"type": "object",
|
||||
"title": "Expense",
|
||||
"description": "Record of costs expended",
|
||||
"default": {},
|
||||
"required": [
|
||||
"title",
|
||||
"currency",
|
||||
"amount"
|
||||
],
|
||||
"additionalProperties": true,
|
||||
"properties": {
|
||||
"@context": {
|
||||
"type": "string",
|
||||
"enum": [ "https://schema.kosmos.org" ],
|
||||
"default": "https://schema.kosmos.org"
|
||||
},
|
||||
"@type": {
|
||||
"type": "string",
|
||||
"enum": [ "Expense" ],
|
||||
"default": "Expense"
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"title": "Title",
|
||||
"description": "A short description of the expense",
|
||||
"default": "",
|
||||
"examples": [
|
||||
"Server rent"
|
||||
]
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"title": "Description",
|
||||
"description": "A longer description of the expense",
|
||||
"default": "",
|
||||
"examples": [
|
||||
"Dedicated server: andromeda.kosmos.org"
|
||||
]
|
||||
},
|
||||
"currency": {
|
||||
"type": "string",
|
||||
"title": "Currency",
|
||||
"description": "ISO 4217 (or other) code of the currency that the expense was paid with",
|
||||
"default": "",
|
||||
"examples": [
|
||||
"EUR",
|
||||
"USD",
|
||||
"BTC"
|
||||
]
|
||||
},
|
||||
"amount": {
|
||||
"type": "number",
|
||||
"title": "Amount",
|
||||
"description": "Expended amount of defined currency",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
42.0
|
||||
]
|
||||
},
|
||||
"amountSats": {
|
||||
"type": "number",
|
||||
"title": "Amount in sats",
|
||||
"description": "Amount in BTC satoshis",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
21000
|
||||
]
|
||||
},
|
||||
"date": {
|
||||
"type": "string",
|
||||
"format": "date",
|
||||
"title": "Date",
|
||||
"description": "Date when expense was logged/proposed (RFC 3339 full-date)"
|
||||
},
|
||||
"url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"title": "URL",
|
||||
"description": "A URL pointing to more information about the expense or related items",
|
||||
"default": "",
|
||||
"examples": [
|
||||
"https://wiki.kosmos.org/Infrastructure#Hetzner"
|
||||
]
|
||||
},
|
||||
"tags": {
|
||||
"type": "array",
|
||||
"title": "Tags",
|
||||
"description": "Tags for organizing, filtering, sorting, etc.",
|
||||
"default": [],
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"title": "Tag",
|
||||
"description": "A tag (lowercase dasherized)",
|
||||
"default": "",
|
||||
"examples": [
|
||||
"infrastructure",
|
||||
"server"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"type": "object",
|
||||
"title": "Tag",
|
||||
"properties": {}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user