Compare commits

...

26 Commits

Author SHA1 Message Date
85cfac2493
3.2.0 2025-01-20 12:44:19 -05:00
b2b9d318cc
Add amountSats to expense items 2025-01-20 12:44:04 -05:00
af4b4407b8
3.1.0 2022-04-27 15:50:16 +02:00
7d2598efbd
Update repo and homepage URLs (move to Gitea) 2022-04-27 15:49:55 +02:00
2990b32029
Remove obsolete browserify transform dependency 2022-04-27 15:42:13 +02:00
0566ba2f7f
3.0.0 2020-06-28 00:42:38 +02:00
a2dc2e15f2
Merge pull request #15 from 67P/feature/browser-compat
Use CommonJS exports/imports for schema files
2020-06-28 00:41:17 +02:00
67cc3d9d74
Use CommonJS for schema files
Instead of relying on `fs` and `path`, which are node-specific modules.
2020-06-27 16:19:03 +02:00
bc039bbe5c
2.2.1 2020-05-16 13:18:56 +02:00
0cb411c985
Merge pull request #12 from 67P/chore/move_to_org_repo
Move npm package to @kosmos namespace
2020-05-16 13:16:55 +02:00
d9e3b8fbb8
Add npm link/version to README 2020-05-16 13:11:50 +02:00
3ea17ce47c
Move package to @kosmos namespace 2020-05-16 13:05:43 +02:00
e850c0be4c
Update README 2020-05-13 17:03:26 +02:00
f7a8e72d56
Add release-drafter config 2020-05-13 17:01:52 +02:00
e263406a0b
2.2.0 2020-05-13 17:00:02 +02:00
85463cd9b1
Update author information
Make it less specific
2020-05-13 16:59:42 +02:00
a1fcea9bc9
Merge pull request #9 from 67P/feature/expenses
Initial expense schema
2020-05-13 16:58:21 +02:00
9eba6cdec6
Merge pull request #10 from 67P/feature/categories
Add more contribution categories
2020-05-13 16:58:04 +02:00
79426ca5e0
Moar kinds 2020-05-13 16:19:22 +02:00
0678c3f4ea
Add more contribution categories
Gotta do some testing and some business administration, too.

closes #7
2020-05-13 16:16:05 +02:00
655e30227b
Remove IDs 2020-05-13 16:13:39 +02:00
300eb7f940
Allow additional props, add details prop 2020-05-13 16:13:12 +02:00
a41839ed09
Fix description 2020-05-06 11:59:36 +02:00
d7dfb3dfd4
Initial expense schema 2020-05-06 11:24:02 +02:00
98f5c3d1a6
Merge pull request #8 from 67P/skddc-patch-1
Update README - add link to json schema
2019-11-17 13:46:21 +00:00
65f823b11c
Update README
Add link to JSON Schema website
2019-11-17 14:43:05 +01:00
9 changed files with 163 additions and 30 deletions

4
.github/release-drafter.yml vendored Normal file
View File

@ -0,0 +1,4 @@
template: |
## Changes
$CHANGES

View File

@ -1,5 +1,7 @@
This repository/module contains JSON Schema definitions as well as examples for
[Kosmos](https://kosmos.org) data formats.
[![npm](https://img.shields.io/npm/v/@kosmos/schemas)](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
View 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"]
}

View File

@ -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
View 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"
}
}
}

View File

@ -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"
}

View File

@ -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": {

View File

@ -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
View 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": {}
}
}
}